Müssen Ihre Daten vor dem Cluster standardisiert werden? Im Beispiel von scikit learn
etwa DBSCAN, hier tun sie dies in der Zeile:
X = StandardScaler().fit_transform(X)
Aber ich verstehe nicht, warum es notwendig ist. Schließlich setzt Clustering keine bestimmte Verteilung von Daten voraus - es ist eine unbeaufsichtigte Lernmethode, deren Ziel es ist, die Daten zu untersuchen.
Warum müssten die Daten transformiert werden?
python
clustering
clusters
anomaly-detection
Candic3
quelle
quelle
Antworten:
Normalisierung ist nicht immer erforderlich, tut aber selten weh.
Einige Beispiele:
K-bedeutet :
Beispiel in Matlab:
(Zu Ihrer Information : Wie kann ich feststellen, ob mein Dataset geclustert oder nicht geclustert ist (dh einen einzelnen Cluster bildet ) ?
Verteiltes Clustering :
Künstliches neuronales Netzwerk (Eingänge) :
Künstliches neuronales Netzwerk (Ein- / Ausgänge)
Interessanterweise kann eine Änderung der Maßeinheiten sogar zu einer sehr unterschiedlichen Clusterstruktur führen: Kaufman, Leonard und Peter J. Rousseeuw. "Auffinden von Gruppen in Daten: Eine Einführung in die Clusteranalyse." (2005).
Kaufman et al. Fahren Sie mit einigen interessanten Überlegungen fort (Seite 11):
quelle
Es wird empfohlen, Daten zu standardisieren, da sonst der Wertebereich in jedem Feature als Gewichtung für die Clusterbildung von Daten fungiert, was normalerweise unerwünscht ist.
Betrachten Sie zum Beispiel die Standardmetrik für die meisten Clustering-Algorithmen (einschließlich DBSCAN in sci-kit learn) -
euclidean
auch bekannt als L2-Norm. Wenn eines Ihrer Features einen Wertebereich aufweist, der viel größer ist als der der anderen, wird das Clustering vollständig von diesem einen Feature dominiert. Um dies zu veranschaulichen, schauen Sie sich das folgende einfache Beispiel an:Daraus sollte hervorgehen, dass die euklidischen Abstände zwischen den nicht standardisierten Versionen von der dritten Spalte dominiert werden, da ihr Wertebereich viel größer ist als der der beiden anderen. Wenn die Daten jedoch standardisiert sind, wird dies kein Problem mehr und gewichtet jedes Merkmal als gleich, wenn der Abstand zwischen den einzelnen Datenpunkten berechnet wird.
quelle
Es ist nicht unbedingt erforderlich zu standardisieren, ob dies erforderlich ist oder nicht, hängt möglicherweise von der gewählten Distanzmetrik ab.
Wenn Sie sich zum Beispiel für die Mahalanobis-Entfernung entscheiden, basiert die Trennung auf der Anzahl der Standardabweichungen, die die Punkte trennen, und nicht auf der absoluten Entfernung zwischen ihnen, da es sich um eine skalierungsinvariante Metrik handelt.
Wie bei vielen Dingen des maschinellen Lernens gibt es keine eindeutige Antwort. Die einzige Möglichkeit, dies mit Sicherheit zu wissen, besteht darin, eine Vielzahl von Techniken anzuwenden, um die für Ihre Daten am besten geeigneten Ergebnisse zu erzielen.
quelle
Ich fand es in einigen Fällen nützlich, eine "Unternehmensbewertung" zu definieren, die die "Wichtigkeit" der Dimensionen definiert, die für das Clustering verwendet werden. ZB für das Gemüsehändlerclustering der Kunden, wenn Äpfel doppelt so teuer sind wie Orangen, wird die Anzahl der Äpfel verdoppelt.
quelle