Czy przed klastrowaniem konieczna jest standaryzacja danych? W przykładzie z scikit learn
około DBSCAN tutaj robią to w wierszu:
X = StandardScaler().fit_transform(X)
Ale nie rozumiem, dlaczego jest to konieczne. W końcu klastrowanie nie zakłada żadnej szczególnej dystrybucji danych - jest to metoda uczenia się bez nadzoru, więc jej celem jest eksploracja danych.
Dlaczego konieczne byłoby przekształcenie danych?
python
clustering
clusters
anomaly-detection
Candic3
źródło
źródło
Odpowiedzi:
Normalizacja nie zawsze jest wymagana, ale rzadko boli.
Kilka przykładów:
K oznacza :
Przykład w Matlabie:
(FYI: Jak mogę wykryć, czy mój zestaw danych jest klastrowany czy nieklastrowany (tj. Tworzy jeden klaster )
Klaster rozproszony :
Sztuczna sieć neuronowa (wejścia) :
Sztuczna sieć neuronowa (wejścia / wyjścia)
Co ciekawe, zmiana jednostek miary może nawet doprowadzić do powstania zupełnie innej struktury klastrowania: Kaufman, Leonard i Peter J. Rousseeuw .. „Znajdowanie grup w danych: wprowadzenie do analizy skupień”. (2005).
Kaufman i in. kontynuuje kilka interesujących uwag (strona 11):
źródło
Zalecana jest standaryzacja danych, ponieważ w przeciwnym razie zakres wartości w każdej funkcji będzie odgrywać rolę przy określaniu sposobu grupowania danych, co zwykle jest niepożądane.
Weźmy na przykład standardową metrykę dla większości algorytmów klastrowych (w tym DBSCAN w uczeniu się sci-kit) -
euclidean
znaną również jako norma L2. Jeśli jedna z twoich funkcji ma zakres wartości znacznie większy od innych, klastrowanie zostanie całkowicie zdominowane przez tę jedną cechę. Aby to zilustrować, spójrz na prosty przykład poniżej:Z tego wynika, że odległości euklidesowe między wersjami niestandardowymi są zdominowane przez trzecią kolumnę, ponieważ jej zakres wartości jest znacznie większy niż pozostałych dwóch. Jednak gdy dane są znormalizowane, nie staje się to już problemem i waży każdą cechę jako równą przy obliczaniu odległości między każdym punktem danych.
źródło
Standaryzacja nie jest absolutnie konieczna, niezależnie od tego, czy jest to wymagane, czy nie, może zależeć od wybranej metryki odległości.
Na przykład, jeśli zdecydujesz się na odległość Mahalanobisa, wówczas separacja będzie oparta na liczbie standardowych odchyleń oddzielających punkty, a nie na bezwzględnej odległości między nimi, ponieważ jest to metryka niezmienna w skali.
Podobnie jak w przypadku wielu rzeczy w uczeniu maszynowym, nie ma twardej i szybkiej odpowiedzi, a jedynym sposobem, aby się upewnić, jest zastosowanie różnych technik, które dadzą najbardziej odpowiednie wyniki dla twoich danych.
źródło
Uznałem, że w niektórych przypadkach przydatne jest zdefiniowanie funkcji „oceny biznesowej”, określającej „ważność” wymiarów używanych do tworzenia klastrów. Np. W przypadku grupowania klientów w warzywniaku, jeśli jabłka są dwa razy droższe niż pomarańcze, liczba jabłek zostanie podwojona.
źródło