Funktionsauswahl für Clustering-Probleme

9

Ich versuche, verschiedene Datensätze mit unbeaufsichtigten Algorithmen (Clustering) zu gruppieren. Das Problem ist, dass ich viele Funktionen (~ 500) und eine kleine Anzahl von Fällen (200-300) habe.

Bisher habe ich nur Klassifizierungsprobleme gemacht, für die ich Daten immer als Trainingssätze gekennzeichnet hatte. Dort habe ich ein Kriterium (dh random.forest.importance oder information.gain) für die Vorauswahl der Merkmale verwendet und dann eine sequentielle Vorwärtsauswahl für verschiedene Lernende verwendet, um die relevanten Merkmale zu finden.

Jetzt sehe ich, dass ich im Falle eines unbeaufsichtigten Lernens weder ein Kriterium für die Vorauswahl habe noch die sequentielle Vorauswahl verwenden kann (zumindest nicht im mlr-Paket).

Ich habe mich gefragt, ob ich vorher eine Hauptkomponentenanalyse durchführen könnte, um eine kleine Anzahl von Funktionen zu finden, die für meinen Clustering-Algorithmus geeignet sind. Oder hast du eine andere Idee?

Vielen Dank

bearbeiten:

Ok, nach einigen Online-Recherchen kann ich meine Frage ein wenig aktualisieren: Zunächst habe ich einige Artikel gelesen, die aus zwei Gründen von der Verwendung von PCA vor dem Clustering von Algorithmen abraten:

  • Die PCs sind Funktionen aller Funktionen, daher ist es schwierig, das Ergebnis mit dem ursprünglichen Datensatz in Beziehung zu setzen, und daher ist es schwieriger zu interpretieren

  • Wenn Sie das Problem haben, dass in Wahrheit nur ein sehr kleiner Teil Ihrer Funktionen für das Clustering hilfreich ist, wird nicht gesagt, dass diese Funktionen auch die größte Varianz unter den Stichproben beschreiben (was die PCs tun).

PCA ist also vom Tisch ...

Jetzt bin ich wieder bei meiner ursprünglichen Idee, eine sequentielle Vorwärtsauswahl für das Clustering vorzunehmen.

Welches Leistungsmaß würden Sie empfehlen? (Ich dachte über den Dunn-Index nach) Welcher Clustering-Algorithmus würde zu Clustern führen, die mehr oder weniger gleich groß sind? (Für hierarchisches Clustering bekomme ich normalerweise einen Cluster mit einem einzelnen Ausreißer und einen anderen mit dem Rest -> also würde ich etwas brauchen, das irgendwie vor Ausreißern schützt)

Hoffe ihr könnt mir helfen ...

John Doe
quelle
Zufällige Wälder können bei unbeaufsichtigten Problemen angewendet werden. Und ich denke, Sie können dabei noch einige informative Funktionen extrahieren.
Amanita Kiki

Antworten:

11

Ich möchte einige Gedanken zur Dimensionsreduzierung bei unbeaufsichtigten Lernproblemen teilen. Bei der Beantwortung bin ich davon ausgegangen, dass Ihr Interesse an "High-Touch", menschlicher Beteiligung an der Clusterinterpretation liegt, im Gegensatz zu einem automatisierten, schlüsselfertigen, Black-Box- und "Low-Touch" -Maschinellen Lernansatz, bei dem die Interpretation bewusst herabgesetzt wird . Wenn es das letztere wäre, warum würden Sie die Frage überhaupt stellen? Beachten Sie auch, dass ich im Laufe der Jahre eine Menge Erfahrung mit der Ausführung von Clusterlösungen in einer Vielzahl von Geschäftsumgebungen gesammelt habe, einschließlich strategischem B2C-Marketing, B2B-Technologiebereichen und Bildungspolitik (Clustering von Schülern und Schulen).

Zunächst habe ich jedoch eine Frage zu Ihrem Kommentar zum Thema "Gruppieren verschiedener Datensätze". Ich wusste nicht, was Sie damit meinten oder wie sich dies auf den Ansatz auswirken könnte, und hoffte, dass Sie dies näher erläutern könnten.

Ich möchte Ihre Annahme in Nr. 1 oben in Frage stellen, dass auf PCAs basierende Lösungen "schwer zu interpretieren" sind. Die Gründe, selbst eine PCA als vorläufigen Schritt beim Clustering auszuführen, hängen hauptsächlich mit der Hygiene der resultierenden Lösung zusammen, da viele Clustering-Algorithmen empfindlich auf Merkmalsredundanz reagieren. PCA reduziert diese Redundanz auf eine überschaubare Handvoll Komponenten und minimiert so die Herausforderungen und Schwierigkeiten, die Sie bei der Funktionsauswahl feststellen. Zwar verwischen die von einer PCA ausgegebenen Komponenten die Granularität und Spezifität der einzelnen Funktionen, dies ist jedoch ein Problem, wenn Sie sich ausschließlich darauf verlassenauf diese Komponenten bei der Analyse der Ergebnisse. Mit anderen Worten, Sie sind in keiner Weise daran gebunden, nur die Komponenten für die Clusterinterpretation zu verwenden. Darüber hinaus müssen Sie sich nicht unbedingt darum kümmern, was die Faktordimensionen "bedeuten". Sie sind nur ein Zwischen- und (letztendlich) verfügbares Mittel, um eine umsetzbare Lösung zu ermöglichen. Aber in diesem Punkt unterscheide ich mich von vielen Praktikern, da Teams Wochen damit verbringen können, werden und sorgfältig eine "sinnvolle" Faktorlösung entwickeln. Für mich ist dies eine ineffiziente Verschwendung von Zeit und Geld für den Kunden.

An diesem Punkt wird es eine Menge technischer Überlegungen geben, die berücksichtigt werden müssen. Zum einen wird jede resultierende PCA-Lösung verzerrt, wenn Ihr PCA-Algorithmus nicht skalierungsinvariant ist (z. B. OLS vs ML), wodurch die Merkmale mit hoher Varianz stärker belastet werden. In diesen Fällen müssen Ihre Features vorverarbeitet oder auf irgendeine Weise transformiert werden, um diese Varianz zu verringern. Hier gibt es eine Vielzahl von Möglichkeiten, einschließlich Mittelwertstandardisierung, Bereichs- oder IQR-Standardisierung, ipsative Skalierung und so weiter. Nutzen Sie diese Transformation und liefern Sie die beste und am besten interpretierbare Lösung.

Sobald eine Clusterlösung generiert wurde, ist die Interpretation (meiner Erfahrung nach) am besten motiviert, indem die Komponenten ignoriert und die ursprünglichen Funktionen zusammen mit zusätzlichen beschreibenden Informationen, die nicht direkt in der Lösung verwendet werden, zurückgeklappt werden. An dieser Stelle sind einige Heuristiken die besten Leitfäden für qualitative Einsichten. Dies kann so einfach sein wie das Generieren einer Tabelle, in der Ihre Cluster anhand von Durchschnittswerten oder Medianen für jedes Feature (die Zeilen des Blattes), für jeden Cluster (die Spalten) sowie eine zusätzliche Spalte dargestellt werden, die den Mittelwert für Ihre Gesamtstichprobe darstellt . Durch Indizieren der Cluster-Durchschnittswerte für jedes Merkmal gegen den Gesamtmittelwert (und Multiplizieren mit 100) wird dann eine Heuristik erstellt, die einem IQ-Score ähnelt, sofern etwa "100" "normaler" IQ oder durchschnittliches Verhalten ist. Indizes von 120+ weisen auf eine hohe Wahrscheinlichkeit hin, dass ein Merkmal hinsichtlich des Verhaltens eines Clusters "wahr" ist, und Indizes von 80 oder weniger weisen auf Merkmale hin, die für ein Cluster "nicht wahr" sind. Diese Indizes von 120+ und 80 oder weniger sind wie Proxy-T-Tests für die Signifikanz eines bestimmten Merkmals bei der Steuerung der Lösung. Natürlich können Sie zwischen Gruppentests von Bedeutung laufen und erhalten je nach Stichprobengröße Antworten, die sich nach diesen schnellen und schmutzigen Faustregeln unterscheiden.

Ok ... Angenommen, Sie sind immer noch gegen die Verwendung von PCA als direkte Eingabe in einen Clustering-Algorithmus. Das Problem bleibt jedoch bei der Auswahl eines reduzierten Satzes von Funktionen. PCA kann hier immer noch nützlich sein, da PCAs wie das Ausführen einer Regression ohne abhängige Variable sind. Die Top-Loading-Funktionen für jede Komponente können zu Eingaben in den Cluster-Algorithmus werden.

In Bezug auf die große Anzahl von Merkmalen und die relativ kleine Stichprobengröße Ihrer Daten ist die typische Faustregel bei vielen multivariaten Analysen mit "vollständigen Informationen" ein Minimum von etwa 10 Beobachtungen pro Merkmal. Es gibt einige spezielle Methoden, die eingesetzt werden können, um diese Herausforderung zu umgehen. Zum Beispiel wurde Partial Least Squares (PLS) erstmals von Herman Wold in seinem 1990 erschienenen Buch Theoretical Empiricism für den Einsatz in Bereichen wie der Chemometrie entwickelt, in denen genau dieses Problem auftritt. Es ist faktoranalytischer Natur, erfordert jedoch weniger strenge n, um die Dimensionen zu erzeugen. Andere Lösungen umfassen die zufälligen waldähnlichen "Teilen und Erobern" -Maschinellen Lernansätze, die mit riesigen Informationsmengen verwendet werden. Diese Methoden werden in diesem PDF besprochenhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Angenommen, Sie haben entschieden, dass Sie immer noch nichts mit der Faktorenanalyse zu tun haben möchten, und sind fest entschlossen, einen überwachten, "sequentiellen" Auswahlprozess durchzuführen. Meiner Ansicht nach geht es weniger darum, eine Post-hoc-Leistungsmetrik (Dunn-Index) zu finden, als vielmehr darum, einen geeigneten Proxy - eine abhängige Variable - zu identifizieren, um diesen Ansatz überhaupt zu ermöglichen. Diese Entscheidung hängt ganz von Ihrem Urteilsvermögen und dem KMU-Status Ihrer Daten ab. Es gibt keine "Best Practices", viel weniger einfache Antworten darauf und angesichts der Beschreibung Ihrer Daten keine kleine Herausforderung.

Sobald diese Entscheidung getroffen ist, stehen buchstäblich Hunderte von möglichen Lösungen zur Variablenauswahl zur Auswahl. Die Variablenauswahl ist ein Themenbereich, zu dem jeder Statistiker und sein Bruder einen Artikel veröffentlicht haben. Ihr bevorzugter Ansatz scheint "sequentielle Vorwärtsauswahl" zu sein, ist in Ordnung.

Es ist erwähnenswert, dass überwachte Lernmodelle existieren, die sich als Teil des Algorithmus in einer Clusterlösung zusammenfalten. Beispiele hierfür sind die großen und hochflexiblen Ansätze, die als latente Klassenmodelle bekannt sind. Das Wesentliche an LC-Modellen ist, dass sie zweistufig sind: In der ersten Stufe wird ein DV definiert und ein Regressionsmodell erstellt. In der zweiten Stufe wird jede Heterogenität in der Restausgabe des Modells - ein einzelner latenter Vektor - in latente "Klassen" unterteilt. In dieser CV-Diskussion finden Sie hier einen Überblick über die LC-Modellierung ... Zweifel an multinomialen Logit-Modellen der latenten Klasse

Hoffe das hilft.

Mike Hunter
quelle
Vielen Dank, dass Sie sich die Zeit genommen haben, meine Frage so ausführlich zu beantworten. Zuallererst ist es lustig, dass Sie die Chemometrie erwähnt haben, denn genau auf diesem Gebiet arbeite ich. Ich versuche, Cluster in Messungen verschiedener Proben zu finden, und meine Merkmale sind Signale in einem NMR-Spektrum. Dies ist auch der Hauptgrund, warum ich so früh darüber nachgedacht habe, PCA zu verwerfen, da das Ziel meiner Analyse darin besteht, die Cluster mit einer Handvoll tatsächlicher Merkmale (Signale) in Beziehung zu setzen. Ich bin nicht fest entschlossen, eine sequentielle Auswahl zu verwenden, es ist genau das, was ich bisher verwendet habe. Ich werde mir die Links ansehen, die Sie gegeben haben.
JohnDoe
Das ist lustig über Chemometrie. Wolds Buch ist im Allgemeinen eine gute Lektüre. Welche Art von "Probanden" umfassen die Proben? Und was sind die nmrs-Bilder?
Mike Hunter
Die Proben sind wässrige Pflanzenextrakte und nehmen 1H-nmr-Spektren auf. Meine Aufgabe ist rein explorativ. Ich soll jeden Cluster finden, den wir später entweder mit verschiedenen Genotypen oder mit verschiedenen Merkmalen der Pflanze wie Trockenstressresistenz usw. in Verbindung bringen wollen. Es ist nicht einfach, einen guten Ausgangspunkt zu finden, um den richtigen Satz von Metaboliten zu finden / Funktionen, die beim Teilen der Cluster helfen, da für die verschiedenen Fragen unterschiedliche Cluster mit unterschiedlichen Funktionen erstellt werden.
JohnDoe
Daher dachte ich, dass der sequentielle Ansatz am besten funktionieren könnte: - Suchen Sie eine Reihe von Funktionen, um die Daten zu gruppieren. - Entfernen Sie dann diese Funktionen aus der gesamten Gruppe und beginnen Sie von vorne. Auf diese Weise hoffe ich, mehrere Gruppen von Clustern zu finden, auf die ich mich später beziehen kann die verschiedenen Fragen
JohnDoe
1
Zu berücksichtigen ist der Vergleich von Explorationsarbeiten mit einer vordefinierten oder definierten Gruppe von Clustern, die auch als "bestätigende" Clusteranalyse bezeichnet wird. Ich schlage dies vor, weil es so klingt, als hätten Sie und Ihr Team einige starke Hypothesen über die Clusterbildung als Funktion von beispielsweise "Trockenstressresistenz" von Pflanzen. Ich denke, Sie werden feststellen, dass die Erkundungsarbeit überlegene Erkenntnisse und Ergebnisse liefert. Exploratory Clustering nutzt die vollständigen Informationen, die in Ihren Daten verfügbar sind, während "bestätigende" Zuweisungsregeln normalerweise eine relative Handvoll Funktionen nutzen
Mike Hunter,
1

Sie benötigen lediglich ein Kriterium für die Clusterqualität. Hier ist die Idee: Sie teilen die Daten in Zug und Test auf, bauen Clustering im Zugteil auf; Verwenden Sie dieses Clustering, um jedes Element des Testsatzes (nach dem nächstgelegenen Cluster) zu gruppieren. Erstellen Sie ein separates Clustering auf dem Testsatz. Finden Sie die Ähnlichkeit des Clusters im Test mit dem vorhergesagten Clustering. Diese Ähnlichkeit ist das Kriterium für die Clusterqualität. Nun liegt es an Ihnen, wie Sie diese Ähnlichkeit messen können. Sobald Sie es erhalten haben, wählen Sie die Teilmenge der Funktionen aus, um diese Ähnlichkeit zu maximieren.

Yachthafen
quelle