Müssen Ihre Daten vor dem Clustering standardisiert werden?

23

Müssen Ihre Daten vor dem Cluster standardisiert werden? Im Beispiel von scikit learnetwa 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?

Candic3
quelle
Vielen Dank für die ausführlichen Antworten! Als Follow-up zu all Ihren Antworten: Ich verstehe, dass dies ein Problem darstellen könnte, wenn sich die Funktionen in verschiedenen Maßstäben befinden. Wenn die Distanzmetrik jedoch auf die Varianz normiert ist, wird dann dasselbe Ergebnis wie bei der Standardskalierung vor dem Clustering erzielt? dh ich in der Regel eine normalisierte euklidischen Abstand bezogen - tut dies auch mitigate Skalierungseffekte?
Candic3

Antworten:

19

Normalisierung ist nicht immer erforderlich, tut aber selten weh.

Einige Beispiele:

K-bedeutet :

K-bedeutet, dass die Clusterbildung in allen Raumrichtungen "isotrop" ist und daher dazu neigt, mehr oder weniger runde (anstatt langgestreckte) Cluster zu erzeugen. In dieser Situation bedeutet die Ungleichheit der Varianzen, dass Variablen mit geringerer Varianz stärker gewichtet werden.

Beispiel in Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

(Zu Ihrer Information : Wie kann ich feststellen, ob mein Dataset geclustert oder nicht geclustert ist (dh einen einzelnen Cluster bildet ) ?

Verteiltes Clustering :

Die vergleichende Analyse zeigt, dass die Ergebnisse der verteilten Clusterung von der Art des Normalisierungsverfahrens abhängen.

Künstliches neuronales Netzwerk (Eingänge) :

Wenn die Eingangsvariablen wie in einem MLP linear kombiniert werden, ist es zumindest theoretisch selten zwingend erforderlich, die Eingänge zu standardisieren. Der Grund dafür ist, dass jede Neuskalierung eines Eingabevektors durch Ändern der entsprechenden Gewichte und Vorspannungen effektiv rückgängig gemacht werden kann, sodass Sie genau die gleichen Ausgaben wie zuvor erhalten. Es gibt jedoch eine Reihe praktischer Gründe, warum die Vereinheitlichung der Eingaben das Training beschleunigen und die Wahrscheinlichkeit verringern kann, in lokalen Optima stecken zu bleiben. Auch Gewichtsabnahme und Bayes'sche Schätzung können mit standardisierten Eingaben bequemer durchgeführt werden.

Künstliches neuronales Netzwerk (Ein- / Ausgänge)

Sollten Sie mit Ihren Daten eines dieser Dinge tun? Die Antwort ist, es kommt darauf an.

Das Standardisieren von Eingabe- oder Zielvariablen führt zu einem besseren Verhalten des Trainingsprozesses, indem die numerischen Bedingungen (siehe ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) des Optimierungsproblems verbessert und verschiedene Standardeinstellungen sichergestellt werden An der Initialisierung und Beendigung beteiligte Werte sind angemessen. Die Standardisierung von Zielen kann sich auch auf die Zielfunktion auswirken.

Die Standardisierung von Fällen sollte mit Vorsicht angegangen werden, da sie Informationen verwirft. Wenn diese Informationen irrelevant sind, kann die Standardisierung von Fällen sehr hilfreich sein. Wenn diese Informationen wichtig sind, kann die Standardisierung von Fällen katastrophal sein.


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).

In einigen Anwendungen kann eine Änderung der Maßeinheiten sogar zu einer sehr unterschiedlichen Clusterstruktur führen. Zum Beispiel sind das Alter (in Jahren) und die Größe (in Zentimetern) von vier imaginären Personen in Tabelle 3 angegeben und in Abbildung 3 dargestellt. Es scheint, dass {A, B) und {C, 0) zwei gut getrennte Cluster sind . Wenn andererseits die Höhe in Fuß ausgedrückt wird, erhält man die Tabellen 4 und 4, in denen die offensichtlichen Cluster nun {A, C} und {B, D} sind. Diese Partition unterscheidet sich grundlegend von der ersten, da jedes Thema einen anderen Begleiter erhalten hat. (Abbildung 4 wäre noch mehr abgeflacht, wenn das Alter in Tagen gemessen worden wäre.)

Um diese Abhängigkeit von der Wahl der Maßeinheiten zu vermeiden, besteht die Möglichkeit, die Daten zu standardisieren. Dadurch werden die ursprünglichen Messwerte in einheitenlose Variablen konvertiert.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Kaufman et al. Fahren Sie mit einigen interessanten Überlegungen fort (Seite 11):

Aus philosophischer Sicht löst die Normung das Problem nicht wirklich. In der Tat führt die Wahl der Maßeinheiten zu relativen Gewichten der Variablen. Das Ausdrücken einer Variablen in kleineren Einheiten führt zu einem größeren Bereich für diese Variable, was sich dann erheblich auf die resultierende Struktur auswirkt. Auf der anderen Seite versucht man durch Standardisierung, allen Variablen ein gleiches Gewicht zu geben, in der Hoffnung, Objektivität zu erreichen. Als solches kann es von einem Praktiker verwendet werden, der keine Vorkenntnisse besitzt. Es kann jedoch durchaus sein, dass einige Variablen in einer bestimmten Anwendung von sich aus wichtiger sind als andere, und die Zuweisung von Gewichten sollte dann auf dem Fachwissen basieren (siehe z. B. Abrahamowicz, 1985). Auf der anderen Seite, Es gab Versuche, Clustering-Techniken zu entwickeln, die unabhängig von der Größe der Variablen sind (Friedman und Rubin, 1967). Der Vorschlag von Hardy und Rasson (1982) ist die Suche nach einer Partition, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer. Der Vorschlag von Hardy und Rasson (1982) ist die Suche nach einer Partition, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer. Der Vorschlag von Hardy und Rasson (1982) besteht darin, nach einer Partition zu suchen, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer.

Franck Dernoncourt
quelle
1
Diese Antwort ist phänomenal
Candic3
6

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) - euclideanauch 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:

>>> import numpy as np
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.metrics.pairwise import euclidean_distances
>>> 
>>> X = np.array([[1,2,100],[4,3,50],[1,1,75]])
>>> 
>>> print X
[[  1   2 100]
 [  4   3  50]
 [  1   1  75]]
>>> 
>>> print euclidean_distances(X)
[[  0.          50.0999002   25.01999201]
 [ 50.0999002    0.          25.25866188]
 [ 25.01999201  25.25866188   0.        ]]
>>> print euclidean_distances(StandardScaler().fit_transform(X))
[[ 0.          3.46410162  1.73205081]
 [ 3.46410162  0.          3.46410162]
 [ 1.73205081  3.46410162  0.        ]]

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.

David
quelle
1

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.

image_doctor
quelle
0

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.

Marmite Bomber
quelle
Aber können Sie das dann nicht einfach als zusätzliches Feature einbinden, auf das Sie sich konzentrieren? dh der Preis wird ein Feature, auf das gruppiert werden soll?
Candic3