Udostępnij za pośrednictwem


Klastrowanie metodą k-średnich

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Konfiguruje i inicjuje model klastrowania języka K-średnich

Kategoria: Uczenie maszynowe/Inicjowanie modelu/Klastrowanie

Uwaga

Dotyczy: tylko usługa Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie usługi Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób używania modułu klastrowania języka K-Średnich w usłudze Machine Learning Studio (klasycznym), aby utworzyć nietrenowany model klastrowania języka K.

K-średnich jest jednym z najprostszych i najbardziej znanych algorytmów uczenia nienadzorowanego i może służyć do różnych zadań uczenia maszynowego, takich jak wykrywanie nietypowych danych, klastrowanie dokumentów tekstowych i analiza zestawu danych przed użyciem innych metod klasyfikacji lub regresji. Aby utworzyć model klastrowania, dodasz ten moduł do eksperymentu, połącz zestaw danych i ustawisz parametry, takie jak oczekiwana liczba klastrów, metryka odległości do użycia podczas tworzenia klastrów itd.

Po skonfigurowaniu hiperparametrów modułu połącz nietrenowany model z modułami Train Clustering Model (Trenowanie modelu klastrowania ) lub Sweep Clustering (Zamiatanie klastrowania ), aby wytrenować model na udostępnionych danych wejściowych. Ponieważ algorytm K-średnich jest metodą uczenia nienadzorowanego, kolumna etykiety jest opcjonalna.

  • Jeśli dane zawierają etykietę, możesz użyć wartości etykiet do kierowania wyborem klastrów i optymalizowania modelu.
  • Jeśli dane nie mają etykiety, algorytm tworzy klastry reprezentujące możliwe kategorie wyłącznie na podstawie danych.

Porada

Jeśli dane szkoleniowe mają etykiety, rozważ użycie jednej z nadzorowanych metod klasyfikacji dostępnych w usłudze Machine Learning. Na przykład można porównać wyniki klastrowania z wynikami przy użyciu jednego z wieloklasowych algorytmów drzewa decyzyjnego.

Opis klastrowania k-średnich

Ogólnie rzecz biorąc, klasterowanie używa technik iteracyjnych do grupowania przypadków w zestawie danych w klastrach, które zawierają podobne cechy. Te grupowania są przydatne do eksplorowania danych, identyfikowania anomalii w danych i ostatecznie do przewidywania. Modele klastrowania mogą również pomóc zidentyfikować relacje w zestawie danych, który może nie być logicznie uzyskiwany przez przeglądanie lub prostą obserwację. Z tych powodów klastrowanie jest często używane w wczesnych fazach zadań uczenia maszynowego w celu eksplorowania danych i odnajdywania nieoczekiwanych korelacji.

Podczas konfigurowania modelu klastrowania przy użyciu metody k-średnich należy określić liczbę docelową k wskazującą liczbę centroidów , które mają być w modelu. Centroid jest punktem, który jest reprezentatywny dla każdego klastra. Algorytm K-średnich przypisuje każdy przychodzący punkt danych do jednego z klastrów, minimalizując sumę w obrębie klastra kwadratów.

Podczas przetwarzania danych treningowych algorytm K-średnich zaczyna się od początkowego zestawu losowo wybranych centroidów, które służą jako punkty początkowe dla każdego klastra i stosuje algorytm Lloyda do iteracyjnego uściślinia lokalizacji centroidów. Algorytm K-średnich przestaje tworzyć i udoskonalać klastry, gdy spełnia co najmniej jeden z następujących warunków:

  • Centroidy stabilizują się, co oznacza, że przypisania klastrów dla poszczególnych punktów nie ulegają już zmianie, a algorytm zbieżny z rozwiązaniem.

  • Algorytm zakończył uruchamianie określonej liczby iteracji.

Po zakończeniu fazy trenowania użyjesz modułu Assign Data to Clusters (Przypisywanie danych do klastrów ), aby przypisać nowe przypadki do jednego z klastrów znalezionych przez algorytm k-średnich. Przypisanie klastra jest wykonywane przez obliczenie odległości między nowym przypadkiem a centroidem każdego klastra. Każdy nowy przypadek jest przypisywany do klastra przy użyciu najbliższego centroidu.

Jak skonfigurować klaster K-Średnich

  1. Dodaj moduł klastrowania K-Średnich do eksperymentu.

  2. Określ sposób trenowania modelu, ustawiając opcję Utwórz tryb trenera .

    • Pojedynczy parametr: jeśli znasz dokładne parametry, których chcesz użyć w modelu klastrowania, możesz podać określony zestaw wartości jako argumenty.

    • Zakres parametrów: jeśli nie masz pewności co do najlepszych parametrów, możesz znaleźć optymalne parametry, określając wiele wartości i używając modułu Sweep Clustering (Zamiatanie klastrowania ), aby znaleźć optymalną konfigurację.

      Trener iteruje wiele kombinacji podanych ustawień i określa kombinację wartości, które generują optymalne wyniki klastrowania.

  3. W polu Liczba centroidów wpisz liczbę klastrów, od których ma zaczynać się algorytm.

    Model nie jest gwarantowany, aby utworzyć dokładnie tę liczbę klastrów. Algorithn zaczyna się od tej liczby punktów danych i iteruje znalezienie optymalnej konfiguracji, zgodnie z opisem w sekcji Uwagi techniczne .

    Jeśli wykonujesz zamiatanie parametrów, nazwa właściwości zmienia się na Zakres liczby Centroids. Możesz użyć narzędzia Range Builder do określenia zakresu lub wpisać serię liczb reprezentujących różne liczby klastrów do utworzenia podczas inicjowania każdego modelu.

  4. Właściwości Inicjowanie lub Inicjowanie dla zamiatania służą do określania algorytmu używanego do definiowania początkowej konfiguracji klastra.

    • Pierwszy N: niektóre początkowe punkty danych są wybierane z zestawu danych i używane jako początkowe środki.

      Nazwana również metodą Forgy.

    • Losowe: algorytm losowo umieszcza punkt danych w klastrze, a następnie oblicza początkową średnią jako centroid losowo przypisanych punktów klastra.

      Nazywana również metodą partycji losowej .

    • K-Średnich++: jest to domyślna metoda inicjowania klastrów.

      Algorytm K-średnich ++ został zaproponowany w 2007 roku przez David Arthur i Sergei Vassilvitskii, aby uniknąć słabego klastrowania przez standardowy algorytm k-średnich. Język K-średnich ++ ulepsza standardowe metody K-średnich przy użyciu innej metody wybierania początkowych centrów klastrów.

    • K-Średnich++Fast: wariant algorytmu K-średnich ++ zoptymalizowany pod kątem szybszego klastrowania.

    • Równomiernie: Centroidy znajdują się równo od siebie w przestrzeni d-wymiarowej n punktów danych.

    • Użyj kolumny etykiet: wartości w kolumnie etykiety są używane do kierowania wyborem centroidów.

  5. W przypadku inicjacji losowej liczby opcjonalnie wpisz wartość, która ma być używana jako inicjacja klastra. Ta wartość może mieć znaczący wpływ na wybór klastra.

    Jeśli używasz zamiatania parametrów, możesz określić, że zostanie utworzonych wiele początkowych nasion, aby wyszukać najlepszą początkową wartość nasion. W polu Liczba nasion do zamiatania wpisz całkowitą liczbę losowych wartości nasion do użycia jako punkty początkowe.

  6. W obszarze Metryka wybierz funkcję do mierzenia odległości między wektorami klastra lub między nowymi punktami danych a losowo wybranym centroidem. Usługa Machine Learning obsługuje następujące metryki odległości klastra:

    • Euclidean: Odległość Euclidean jest często używana jako miara punktów klastra dla klastrowania metodą K-średnich. Ta metryka jest preferowana, ponieważ minimalizuje średnią odległość między punktami a centroidami.

    • Cosine: Funkcja cosinus służy do mierzenia podobieństwa klastra. Podobieństwo cosinus jest przydatne w przypadkach, gdy nie dbasz o długość wektora, tylko jego kąt.

  7. W przypadku iteracji wpisz liczbę iteracji algorytmu przed sfinalizowaniem wyboru centroidów.

    Ten parametr można dostosować, aby równoważyć dokładność i czas trenowania.

  8. W obszarze Przypisz tryb etykiety wybierz opcję określającą sposób obsługi kolumny etykiety, jeśli znajduje się w zestawie danych.

    Ponieważ klaster K-średnich jest nienadzorowaną metodą uczenia maszynowego, etykiety są opcjonalne. Jeśli jednak zestaw danych ma już kolumnę etykiety, możesz użyć tych wartości do kierowania wyborem klastrów lub określić, że wartości zostaną zignorowane.

    • Ignoruj kolumnę etykiet: wartości w kolumnie etykiety są ignorowane i nie są używane w tworzeniu modelu.

    • Wypełnij brakujące wartości: wartości kolumn etykiety są używane jako funkcje ułatwiające tworzenie klastrów. Jeśli w niektórych wierszach brakuje etykiety, wartość jest przypisywana przy użyciu innych funkcji.

    • Zastąp od najbliższego środka: wartości kolumn etykiety są zastępowane wartościami przewidywanych etykiet przy użyciu etykiety punktu znajdującego się najbliżej bieżącego centroidu.

  9. Trenowanie modelu.

    • Jeśli ustawisz opcję Utwórz tryb trenera na pojedynczy parametr, dodaj otagowany zestaw danych i wytrenuj model przy użyciu modułu Train Clustering Model (Trenowanie modelu klastrowania ).

    • Jeśli ustawisz opcję Utwórz tryb trenera na wartość Zakres parametrów, dodaj otagowany zestaw danych i wytrenuj model przy użyciu funkcji Zamiatanie klastra. Możesz użyć modelu wytrenowanego przy użyciu tych parametrów lub zanotować ustawienia parametrów do użycia podczas konfigurowania ucznia.

Wyniki

Po zakończeniu konfigurowania i trenowania modelu masz model, którego można użyć do generowania wyników. Istnieje jednak wiele sposobów trenowania modelu oraz wiele sposobów wyświetlania i używania wyników:

Przechwytywanie migawki modelu w obszarze roboczym

Zapisany model będzie reprezentować dane treningowe podczas zapisywania modelu. Jeśli później zaktualizujesz dane treningowe używane w eksperymencie, nie zaktualizujesz zapisanego modelu.

Wyświetlanie wizualnej reprezentacji klastrów w modelu

Wykres jest generowany przy użyciu analizy głównych składników, która jest techniką nauki o danych w celu skompresowania przestrzeni funkcji modelu. Wykres przedstawia zestaw funkcji skompresowanych na dwa wymiary, które najlepiej scharakteryzują różnicę między klastrami. Wizualnie przeglądając ogólny rozmiar przestrzeni funkcji dla każdego klastra i ilości nakładających się klastrów, możesz dowiedzieć się, jak dobrze może działać model.

Na przykład następujące wykresy PCA reprezentują wyniki z dwóch modeli wytrenowanych przy użyciu tych samych danych: pierwszy został skonfigurowany do wyprowadzania dwóch klastrów, a drugi został skonfigurowany do wyprowadzania trzech klastrów. Na tych wykresach widać, że zwiększenie liczby klastrów niekoniecznie poprawiło rozdzielenie klas.

Porównanie klastrów PCA

Porada

Użyj modułu Sweep Clustering (Zamiatanie klastrowania), aby wybrać optymalny zestaw hiperparametrów, łącznie z losowym inicjatorem i liczbą początkowych centroidów.

Wyświetlanie listy punktów danych i klastrów, do których należą

Istnieją dwie opcje wyświetlania zestawu danych z wynikami, w zależności od sposobu wytrenowanego modelu:

  • Jeśli użyto modułu Zamiatanie klastrowania do wytrenowania modelu

    1. Użyj pola wyboru w module Zamiatanie klastrowania , aby określić, czy chcesz wyświetlić dane wejściowe razem z wynikami, czy zobaczyć tylko wyniki.
    2. Po zakończeniu trenowania kliknij prawym przyciskiem myszy moduł i wybierz pozycję Zestaw danych wyników (numer wyjściowy 2)
    3. Kliknij pozycję Visualize (Wizualizacja).
  • Jeśli użyto modułu Train Clustering Model (Trenowanie modelu klastrowania )

    1. Dodaj moduł Assign Data to Clusters (Przypisywanie danych do klastrów ) i połącz wytrenowany model z danymi wejściowymi po lewej stronie. Połącz zestaw danych z danymi wejściowymi po prawej stronie.
    2. Dodaj moduł Konwertuj na zestaw danych do eksperymentu i połącz go z danymi wyjściowymi polecenia Assign Data to Clusters (Przypisywanie danych do klastrów).
    3. Użyj pola wyboru w module Assign Data to Clusters (Przypisywanie danych do klastrów ), aby określić, czy dane wejściowe mają być widoczne razem z wynikami, czy tylko wyniki.
    4. Uruchom eksperyment lub uruchom tylko moduł Konwertuj na zestaw danych .
    5. Kliknij prawym przyciskiem myszy pozycję Konwertuj na zestaw danych, wybierz pozycję Zestaw danych wyników, a następnie kliknij pozycję Visualize (Wizualizacja).

Dane wyjściowe zawierają najpierw kolumny danych wejściowych, jeśli zostały dołączone, oraz następujące kolumny dla każdego wiersza danych wejściowych:

  • Przypisanie: przypisanie jest wartością z zakresu od 1 do n, gdzie n jest całkowitą liczbą klastrów w modelu. Każdy wiersz danych można przypisać tylko do jednego klastra.

  • DistancesToClusterCenter no.n: Ta wartość mierzy odległość od bieżącego punktu danych do centroidu klastra. Oddzielna kolumna w danych wyjściowych dla każdego klastra w wytrenowanym modelu.

    Wartości odległości klastra są oparte na metryce odległości wybranej w opcji Metryka pomiaru wyniku klastra. Nawet jeśli wykonujesz zamiatanie parametrów w modelu klastrowania, podczas czyszczenia można zastosować tylko jedną metrykę. Jeśli zmienisz metryki, możesz uzyskać różne wartości odległości.

Wizualizowanie odległości wewnątrz klastra

W zestawie danych wyników z poprzedniej sekcji kliknij kolumnę odległości dla każdego klastra. Program Studio (wersja klasyczna) wyświetla histogram, który wizualizuje rozkład odległości dla punktów w klastrze.

Na przykład następujące histogramy pokazują rozkład odległości klastra od tego samego eksperymentu przy użyciu czterech różnych metryk. Wszystkie inne ustawienia dla zamiatania parametrów były takie same. Zmiana metryki spowodowała powstanie innej liczby klastrów w jednym modelu.

Histogramy odległości klastra

Ogólnie rzecz biorąc, należy wybrać metrykę, która maksymalizuje odległość między punktami danych w różnych klasach i minimalizuje odległości w klasie. Możesz użyć wstępnie obliczanych środków i innych wartości w okienku Statystyka , aby przeprowadzić Cię w tej decyzji.

Porada

Możesz wyodrębnić środki i inne wartości używane w wizualizacjach przy użyciu modułu programu PowerShell na potrzeby uczenia maszynowego.

Możesz też użyć modułu Execute R Script (Wykonywanie skryptu języka R ) do obliczenia niestandardowej macierzy odległości.

Porady dotyczące generowania najlepszego modelu klastrowania

Wiadomo, że proces rozmieszczania używany podczas klastrowania może znacząco wpłynąć na model. Rozstawienie oznacza początkowe umieszczanie punktów w silnych centroidach.

Jeśli na przykład zestaw danych zawiera wiele wartości odstających, a element odstający zostanie wybrany do rozmieszczania klastrów, żadne inne punkty danych nie pasują dobrze do tego klastra, a klaster może być pojedynczy: czyli klaster z tylko jednym punktem.

Istnieją różne sposoby uniknięcia tego problemu:

  • Użyj zamiatania parametrów, aby zmienić liczbę centroidów i wypróbować wiele wartości inicjatora.

  • Utwórz wiele modeli, różniąc metryki lub iterując więcej.

  • Użyj metody takiej jak PCA, aby znaleźć zmienne, które mają szkodliwy wpływ na klastrowanie. Zobacz przykład Znajdź podobne firmy , aby zapoznać się z pokazem tej techniki.

Ogólnie rzecz biorąc, w przypadku modeli klastrowania istnieje możliwość, że każda dana konfiguracja spowoduje utworzenie lokalnie zoptymalizowanego zestawu klastrów. Innymi słowy, zestaw klastrów zwracanych przez model odpowiada tylko bieżącym punktom danych i nie można uogólnić innych danych. Jeśli użyto innej konfiguracji początkowej, metoda K-średnich może znaleźć inną, być może lepszą konfigurację.

Ważne

Zalecamy, aby zawsze eksperymentować z parametrami, tworzyć wiele modeli i porównywać wynikowe modele.

Przykłady

Przykłady użycia klastrowania metodą K-średnich w usłudze Machine Learning można znaleźć w tych eksperymentach w galerii sztucznej inteligencji platformy Azure:

Uwagi techniczne

Biorąc pod uwagę określoną liczbę klastrów (K) do znalezienia dla zestawu punktów danych wymiarowych D z N punktów danych, algorytm K-średnich tworzy klastry w następujący sposób:

  1. Moduł inicjuje tablicę K-by-D z końcowymi centroidami definiującymi znalezione klastry K.

  2. Domyślnie moduł przypisuje pierwsze punkty danych K do klastrów K .

  3. Począwszy od początkowego zestawu centroidów K , metoda używa algorytmu Lloyda do iteracyjnego uściślinia lokalizacji centroidów.

  4. Algorytm kończy działanie, gdy centroidy stabilizują lub po zakończeniu określonej liczby iteracji.

  5. Metryka podobieństwa (domyślnie odległość euklidesowa) służy do przypisywania każdego punktu danych do klastra, który ma najbliższy centroid.

Ostrzeżenie

  • Jeśli przekażesz zakres parametrów do metody Train Clustering Model (Trenowanie modelu klastrowania), zostanie użyta tylko pierwsza wartość z listy zakresów parametrów.
  • Jeśli przekażesz jeden zestaw wartości parametrów do modułu Sweep Clustering (Zamiatanie klastrowania ), gdy oczekuje się zakresu ustawień dla każdego parametru, ignoruje wartości i używa wartości domyślnych dla ucznia.
  • Jeśli wybierzesz opcję Zakres parametrów i wprowadzisz pojedynczą wartość dla dowolnego parametru, określona pojedyncza wartość będzie używana w całym zamiataniu, nawet jeśli inne parametry zmienią się w zakresie wartości.

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Liczba centroidów >=2 Liczba całkowita 2 Liczba centroidów
Metric Lista (podzbiór) Metric Euklidesowa Wybrana metryka
Inicjalizacja Lista Centroid metody inicjowania K-Średnich++ Algorytm inicjowania
Iteracje >=1 Liczba całkowita 100 Liczba iteracji

Dane wyjściowe

Nazwa Typ Opis
Model niewytrenowany ICluster, interfejs Nietrenowany model klastrowania metodą K-Średnich

Wyjątki

Aby uzyskać listę wszystkich wyjątków, zobacz Machine Learning Module Error Codes (Kody błędów modułu usługi Machine Learning).

Wyjątek Opis
Błąd 0003 Wyjątek występuje, jeśli co najmniej jeden z danych wejściowych ma wartość null lub jest pusty.

Zobacz też

Analiza skupień
Przypisywanie danych do klastrów
Trenowanie modelu klastrowania
Zamiatanie klastrowania