Ich habe einen Datensatz X mit 10 Dimensionen, von denen 4 diskrete Werte sind. Tatsächlich sind diese 4 diskreten Variablen ordinal, dh ein höherer Wert impliziert eine höhere / bessere Semantik.
2 dieser diskreten Variablen sind in dem Sinne kategorisch, dass für jede dieser Variablen der Abstand, z. B. von 11 bis 12, nicht dem Abstand von 5 bis 6 entspricht. Während ein höherer Variablenwert in der Realität einen höheren impliziert, ist der Maßstab gleich nicht unbedingt linear (in der Tat ist es nicht wirklich definiert).
Meine Frage ist:
- Ist es eine gute Idee, einen gemeinsamen Clustering-Algorithmus (z. B. K-Means und dann Gaussian Mixture (GMM)) auf diesen Datensatz anzuwenden, der sowohl diskrete als auch kontinuierliche Variablen enthält?
Wenn nicht:
- Sollte ich die diskreten Variablen entfernen und mich nur auf die kontinuierlichen konzentrieren?
- Sollte ich die kontinuierlichen besser diskretisieren und einen Clustering-Algorithmus für diskrete Daten verwenden?
Antworten:
Sie haben also erfahren, dass Sie ein angemessenes Entfernungsmaß benötigen. Hier sind einige Hinweise:
und natürlich: Mahalanobis Entfernung .
quelle
Ich habe mich in der Vergangenheit mit solchen Problemen befasst und denke, dass es zwei interessante Ansätze geben könnte:
Continuousification: Transformiere symbolische Attribute mit einer Folge von ganzen Zahlen. Hierzu gibt es verschiedene Möglichkeiten, die in diesem Dokument beschrieben werden . Sie können NBF-, VDM- und MDV-Algorithmen ausprobieren.
Diskretisierung: Wandeln Sie fortlaufende Attribute in symbolische Werte um. Auch hier wären viele Algorithmen und ein guter Vortrag dazu dieser Artikel . Ich glaube, die am häufigsten verwendete Methode ist Holtes 1R, aber der beste Weg, dies sicher zu wissen, besteht darin, die ROC-Kurven mit Algorithmen wie EWD, EFD, ID, LD oder NDD abzugleichen.
Sobald Sie alle Funktionen im selben Bereich haben, wird dies zu einem üblichen Clustering-Problem.
Die Wahl zwischen Continuification oder Discretization hängt von Ihrem Dataset ab und davon, wie Ihre Funktionen aussehen. Es ist also etwas schwierig zu sagen, aber ich rate Ihnen, die Artikel zu lesen, die ich Ihnen zu diesem Thema gegeben habe.
quelle
K-means ergibt offensichtlich keinen Sinn, da es die Mittelwerte berechnet (die unsinnig sind). Gleiches gilt für GMM.
Möglicherweise möchten Sie entfernungsbasierte Clustering-Algorithmen mit geeigneten Entfernungsfunktionen ausprobieren, z. B. DBSCAN.
Die größte Herausforderung besteht darin, eine Distanzfunktion zu finden!
Während Sie eine andere Distanzfunktion in k-means einfügen könnten, wird dennoch der Mittelwert berechnet, der wahrscheinlich nicht viel Sinn macht (und wahrscheinlich mit einer Distanzfunktion für diskrete Werte durcheinanderbringt).
Konzentrieren Sie sich zunächst darauf , was "ähnlich" ist . Dann Cluster mit dieser Definition von ähnlich!
quelle
Wenn Sie gerne mit einer Distanzmatrix arbeiten
num_of_samples x num_of_samples
, können Sie diese auch verwendenrandom forests
.Klicken Sie hier, um ein Referenzpapier mit dem Titel zu erhalten
Unsupervised learning with random forest predictors
.Die Idee besteht darin, einen synthetischen Datensatz anhand der
shuffling
Werte im ursprünglichen Datensatz zu erstellen und einen Klassifikator zur Trennung beider Werte zu trainieren. Während der Klassifizierung erhalten Sie eineinter-sample distance matrix
, auf der Sie Ihren bevorzugten Clustering-Algorithmus testen können.quelle
Zu verwendender gemischter Ansatz: 1) Verwenden Sie die Klassifizierungstechnik (C4.5-Entscheidungsbaum), um den Datensatz in 2 Klassen zu klassifizieren. 2) Verlassen Sie anschließend kategoriale Variablen und fahren Sie mit fortlaufenden Variablen für das Clustering fort.
quelle