Clustering eines Datensatzes mit diskreten und kontinuierlichen Variablen


33

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?

3
Sie müssen ein gutes Entfernungsmaß finden (häufig die schwierigste Aufgabe beim Clustering): Wenn Sie ein Entfernungsmaß finden, das korrekt und genau beschreibt, wie ähnlich Ihre Datenelemente sind (oder nicht), sollten Sie keine Probleme haben.
Andrew

Wenn Sie über diese beiden kategorialen Variablen sprechen, haben Sie sie tatsächlich als ordinal bezeichnet. Was ist nun mit den restlichen 2 "ordinalen" Variablen? Wie unterscheiden sie sich von denen?
TTNPHNS

Sie sind auch diskret, aber beide haben eine sinnvolle Distanzfunktion, dh sie sind intervallbasiert (wenn ich die Definition von intervallbasiert nicht durcheinander bringe).
ptikobj

Antworten:


14

7

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.


4

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!


2

Wenn Sie gerne mit einer Distanzmatrix arbeiten num_of_samples x num_of_samples, können Sie diese auch verwenden random 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 shufflingWerte im ursprünglichen Datensatz zu erstellen und einen Klassifikator zur Trennung beider Werte zu trainieren. Während der Klassifizierung erhalten Sie eine inter-sample distance matrix, auf der Sie Ihren bevorzugten Clustering-Algorithmus testen können.


-2

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.


Ich konnte Ihrem Vorschlag nicht folgen. Welche beiden Klassen und wie hilft das?
KarthikS

Ich denke, was Swapnil Soni zu sagen hat, ist, dass wir, sobald wir die Klassifikationstechnik anwenden, diese in zwei Klassen klassifizieren. Wir können dann das Etikett der Klassifizierungsausgabe als binäre Variable verwenden. Anstelle aller kategorialen Variablen erhalten Sie eine indikative Binärvariable, und Ihr Clustering-Algorithmus kann dann mit den Daten fortfahren (bestehend aus allen kontinuierlichen plus 1 Binärvariablen). Meine Interpretation kann jedoch falsch sein.
Tusharshar

vollkommen in Ordnung!
Swapnil Soni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.