2012-04-14 8 views
0

Ich habe Code in Python geschrieben, um den DBSCAN-Clustering-Algorithmus zu implementieren. Mein Datensatz besteht aus 14.000 Benutzern, wobei jeder Benutzer durch 10 Funktionen repräsentiert wird. Ich kann nicht entscheiden, was genau als Wert von Min_samples und epsilon als Eingabe Wie sollte ich das entscheiden? Ähnlichkeitsmaß ist euklidischer Abstand (daher wird es noch schwieriger zu entscheiden.) Irgendwelche Hinweise?Eingabewerte für den DBSCAN-Algorithmus definieren

+0

Werten Sie die euklidische Distanz auf Ihrem Datensatz aus. Funktioniert es? Was ist eine sinnvolle Ähnlichkeitsschwelle? Verwenden Sie dann diesen Schwellenwert als epsilon für DBSCAN. –

+0

Wie soll ich die euklidische Distanz in meinem Datensatz auswerten? – Maxwell

+0

@ Anony-Mousse: Ich dachte darüber nach: Wäre es sinnvoll, die euklidischen Entfernungen innerhalb von 0-1 zu normalisieren. Jetzt können die Entfernungen bis zu 10k + steigen, was es schwierig macht, die Schwelle zu bestimmen. Aber ich bin mir nicht sicher, wie ich es normalisieren soll. Irgendwelche Ideen? – Maxwell

Antwort

0

DBSCAN ist oft schwer zu schätzen seine Parameter.

Haben Sie an den OPTICS-Algorithmus gedacht? Sie benötigen in diesem Fall nur Min_samples, die der minimalen Clustergröße entsprechen würden.

Ansonsten für DBSCAN Ich habe es in der Vergangenheit durch Versuch und Irrtum getan: einige Werte versuchen und sehen, was passiert. Eine allgemeine Regel, die zu befolgen ist, besteht darin, dass wenn Ihr Dataset laut ist, Sie einen größeren Wert haben sollten und dass dieser auch mit der Anzahl der Dimensionen korreliert (in diesem Fall 10).

Verwandte Themen