Ich habe einen Datensatz mit 10.000 Genen wie unten
person gene1 gene2 ... gene10000 ethnic
1 0 1 1 asian
2 1 0 1 European
Jede Zeile bedeutet, ob eine Person ein Gen in ihrer DNA hat oder nicht. Wir versuchen, verschiedene ethnische Gruppen anhand der obigen Daten zu klassifizieren. Aber zuerst möchten wir einige Clustering-Algorithmen verwenden, um zu visualisieren, wie der Cluster für verschiedene ethnische Gruppen aussehen würde. Wir werden diese Clustering-Algorithmen nicht zum Klassifizieren von Gruppen verwenden, sondern nur, um zu visualisieren, wie es aussehen würde, wenn wir schöne separate Cluster oder überlappende Cluster usw. haben.
Bitte empfehlen Sie einige Clustering-Algorithmen für diesen Dataset-Typ. Die Dimension ist außerdem 10000. Wird dies ein Problem für das Clustering sein? Sollte ich zuerst einige Algorithmen zur Dimensionsreduzierung verwenden? Wenn ja, geben Sie bitte Ihre Empfehlungen. Danke im Voraus.
quelle
Antworten:
Wie viele ethnische Gruppen haben Sie identifiziert?
Wenn ich Ihr Problem visualisieren müsste, würde ich die wichtigsten Einflussfaktoren für jede der ethnischen Gruppen in einem Naive Bayes-ähnlichen Ansatz bestimmen. Diese Gene (Genkombinationen?!) (Einschließlich ihrer Werte) können stark mit einer ethnischen Gruppe korrelieren, während sie nicht (oder umgekehrt) mit einer anderen korrelieren.
Platzieren Sie sie auf einem Pyramidendiagramm. Platzieren Sie die Balken für die Korrelationswerte links und rechts.
quelle
"Clustering verschiedener ethnischer Gruppen zur Visualisierung" scheint eher so, als würden Sie versuchen, eine überwachte Dimensionsreduktion durchzuführen, da Sie die Zielvariablen in diesem Fall bereits kennen.
Da Sie es später für die Klassifizierung verwenden werden, gehe ich davon aus, dass Sie die Anzahl der ethnischen Gruppen bereits kennen. Dies kann mithilfe der linearen Diskriminanzanalyse (LDA) erfolgen. Schauen Sie sich diesen Beitrag an: /stats/161362/supervised-dimensionality-reduction
quelle
Verfahren-1 :
Ich denke, es wäre besser, wenn Sie versuchen könnten, einige Gener zu kombinieren. Es ist sehr wahrscheinlich, dass einige einem ähnlichen Trend folgen, sobald Sie sie identifiziert haben, versuchen Sie, sie zu kombinieren.
Sie können eine gewisse Dimensionsreduzierung verwenden, dann können Sie die Daten sinnvoller nutzen. Selbst wenn Sie direkt angeben, kann es ab sofort einige Zeit dauern, bis das Modell einige nützliche Ergebnisse versteht und liefert.
Sobald Sie das Ergebnis der Dimensionsreduzierung erhalten haben, können Sie direkt Klassifizierungsalgorithmen für mehrere Klassen wie SVM , RF und viele mehr anwenden .
Verfahren-2 :
Eine andere Sache, die Sie ausprobieren können, ist: Sie können alle Funktionen (Gener) zu einer einzigen Funktion zusammenfassen und versuchen, zu verstehen, ob dies sinnvoll ist, oder einige gute Erkenntnisse zu gewinnen (explorative Analyse).
Lassen Sie mich wissen, wenn Sie Fragen haben.
SVM: Support Vector Machine
RF: Zufälliger Wald
quelle
Ich vermute, dass die Anzahl der ethnischen Gruppen groß ist und Sie eine ausreichend große Stichprobe von zufälligen Personen mit unterschiedlichem ethnischem Hintergrund erhalten, mit denen Sie arbeiten können. Also schlage ich folgendes vor:
Anstatt Clustering (unbeaufsichtigte Segmentierung) zu verwenden, könnten Sie eine vorhandene, weniger granulare ethnische Gruppierung verwenden. Angenommen, Ihre eindeutigen ethnischen Gruppen in Ihrem Rohdatensatz ähneln denen in https://en.wikipedia.org/wiki/List_of_contemporary_ethnic_groups. Dann können Sie eine Gruppierung auf höherer Ebene mit kleineren Gruppen wie der in https://www.google verwenden. com / search? q = ethnische + Gruppierung + in + der + Welt & rlz = 1C1CHBF_enUS810US810 & oq = ethnische + Gruppierung + in + der + Welt & aqs = chrome..69i57.10445j0j8 & sourceid = chrome & ie = UTF-8 zum Verständnis der Gruppenprofile auf hoher Ebene : Zum Beispiel durch Analyse des absteigenden Ranges der Häufigkeit von Genmerkmalen, die in jeder Gruppe häufiger vorkommen. Technisch gesehen können Sie dasselbe mit den ursprünglich detaillierteren ethnischen Gruppen tun.
Normalerweise können Sie keine herkömmliche Hauptkomponentenanalyse auf die Genmerkmale anwenden, da diese mit den Werten 0 oder 1 kategorisch sind. Sie können jedoch eine geeignetere Methode anwenden, für die keine kontinuierlichen Variableneingaben erforderlich sind, z. B. die in diesem R-Paket verwendete Methode: https: //cran.r-project.org/web/packages/FactoMineR/index.html
Clustering und Empfehlung auf einen Schlag:
Sie können auch eine explizite kollaborative Filterung versuchen, bei der Daten im Format Benutzer nach Element vorliegen müssen:
quelle
Wenn Sie die Grundwahrheit von Daten kennen, ist die ethnische hier. Sie können Ihren Binärcluster wie folgt visualisieren. Berechnen Sie die Prototypen jedes Clusters mit der Mehrheit der Stimmen pro Merkmal, die eine lineare Komplexität in Bezug auf die Anzahl der Beobachtungen und die Anzahl der Merkmale aufweisen. Visualisieren Sie dann jeden binären Prototyp als ein binäres Größenraster100 × 100 für dein 10000 Eigenschaften. Wählen Sie zwei Ihrer Lieblingsfarben und genießen Sie. Sie werden sehen, ob sich Zentroide mit anderen überlappen, wenn sie dieselbe Farbe bei denselben Pixeln haben. Wenn Sie Ihre Daten schnell gruppieren möchten, empfehle ich Ihnen, mit zu beginnenK. - -M.o de s Das ist das binäre Äquivalent von K. - -M.e a n s sind beide in O ( n ) , einstellen K. Entsprechend Ihrer Anzahl von ethnischen Gruppen und sobald Sie Cluster haben, beantragen Sie erneut die Mehrheit, um Prototypen zu extrahieren, sie zu visualisieren und zu beobachten, ob sie mit der Grundwahrheit vergleichbar sind. Eine benutzerfreundliche Version des Algorithmus finden Sie hier mit einem praktischen Bootstrap-Beispiel mit Visualisierung in diesem SparkNotebook.
quelle
Sie wissen bereits, zu welchem Cluster jede Person gehört, daher müssen Sie einen Clustering-Algorithmus ausführen, der diese Vorhersage für Sie erstellt. Ihre Frage bezieht sich auf die Datenexploration: Sie versuchen, Ihre Daten zu verstehen. Ihr eigentliches Problem ist ein überwachtes (Mehrklassen-) Klassifizierungsproblem, und Clustering-Algorithmen sind dafür nicht geeignet, da sie nicht überwacht werden.
Ich würde empfehlen, zwei Dinge zu tun: Erstens die Dimensionalität reduzieren, um visualisieren zu können. Zweitens berechnen Sie Metriken für den ursprünglichen hochdimensionalen Datensatz, um ein besseres Verständnis zu erhalten.
Um die Daten zu visualisieren, empfehle ich , t-SNE zu verwenden, um die ethnische Gruppe in zwei Dimensionen und Farben zu visualisieren . Dies gibt Ihnen eine Vorstellung davon, ob Ihre Daten Cluster im 10k-dimensionalen Raum bilden.
Wenn Sie dann Ihr Gefühl oder Ihre Intuition für Ihre Daten weiter verbessern möchten, indem Sie in Form von Clustern im 10k-dimensionalen Raum darüber nachdenken, können Sie Cluster-Metriken wie den Silhouette-Score und die Cluster-Kompaktheit (durchschnittliche Entfernung zum.) Berechnen Mitte) oder zeigen Sie den Abstand zwischen Clustern in einer Heatmap an . Sie können zwei Cluster zusammenführen, indem Sie ihnen dieselbe Bezeichnung geben und sehen, wie sich Ihre Ergebnisse ändern.
Ich kann die Ergebnisse, die Sie möglicherweise erhalten, nicht vorhersehen, daher kann es sehr aufschlussreich sein, was bedeutet, dass Sie feststellen können, dass bestimmte Cluster sehr kompakt sind, andere sehr umfangreich, einige anderen sehr ähnlich sind und so weiter. Aber vielleicht können Sie mit den oben genannten Methoden Ihre Daten überhaupt nicht verstehen. Wenn das passiert, würde ich sagen, dass es Zeit ist, Ihre Daten nicht mehr als Punkte im "Genraum" zu betrachten, wobei Unterschiede zwischen Personen eine "Entfernung" usw. anzeigen. In diesem Fall kann es sein, dass die Zuordnung von Genen zu ethnischen Gruppen erfolgt Die Gruppierung ist komplexer (nicht linear) als eine räumliche Clusterbildung. Daher müssen Sie einen Klassifizierungsalgorithmus verwenden, der diese Nichtlinearität codieren kann.
Deep Learning hat nicht viele Voraussetzungen, aber eine davon ist, dass es nur kontinuierliche Funktionen codieren kann. Neuronale Netze erfordern auch numerische, reelle Eingabemerkmale. Da Ihr Problem binäre Daten enthält und es keinen Grund zu der Annahme gibt, dass die Zuordnung von Gen zu Ethnizität eine reibungslose Funktion ist, sind Algorithmen, die auf Entscheidungsbäumen basieren, möglicherweise ein guter Ausgangspunkt.
Viel Glück! :-)
quelle