Składnik: Klaster K-Średnich

W tym artykule opisano sposób użycia składnika klastrowania K-Średnich w projektancie usługi Azure Machine Learning w celu utworzenia nietrenowanego modelu klastrowania języka K-średnich.

K-średnich jest jednym z najprostszych i najbardziej znanych nienadzorowanych algorytmów uczenia. Możesz użyć algorytmu dla różnych zadań uczenia maszynowego, takich jak:

  • Wykrywanie nietypowych danych.
  • Klastrowanie dokumentów tekstowych.
  • Analizowanie zestawów danych przed użyciem innych metod klasyfikacji lub regresji.

Aby utworzyć model klastrowania, należy wykonać:

  • Dodaj ten składnik do potoku.
  • Łączenie zestawu danych.
  • Ustaw parametry, takie jak oczekiwana liczba klastrów, metryka odległości do użycia w tworzeniu klastrów itd.

Po skonfigurowaniu hiperparametrów składnika połączysz nietrenowany model z modelem trenowania klastrowania. 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.

Omówienie klastrowania języka K-średnich

Ogólnie rzecz biorąc, klasterowanie używa iteracyjnych technik do grupowania przypadków w zestawie danych w klastrach, które mają 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 we 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. Centroids służą jako punkty wyjścia dla klastrów i stosują algorytm Lloyda do iteracyjnego uściślinia ich lokalizacji. 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 klastra dla poszczególnych punktów nie ulegają już zmianie, a algorytm konwergentny w rozwiązaniu.

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

Po zakończeniu fazy trenowania należy użyć składnika Assign Data to Clusters (Przypisywanie danych do klastrów ), aby przypisać nowe przypadki do jednego z klastrów znalezionych przy użyciu algorytmu 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.

Konfigurowanie składnika klastrowania języka K-Średnich

  1. Dodaj składnik klastrowania K-Średnich do potoku.

  2. Aby określić sposób trenowania modelu, wybierz 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.
  3. W polu Liczba centroidów wpisz liczbę klastrów, od których ma zaczynać się algorytm.

    Model nie jest gwarantowany do utworzenia dokładnie tej liczby klastrów. Algorytm zaczyna się od tej liczby punktów danych i iteruje, aby znaleźć optymalną konfigurację. Możesz odwołać się do kodu źródłowego sklearn.

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

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

      Ta metoda jest również nazywana metodą Forgy.

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

      Ta metoda jest również nazywana 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.

  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.

  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 Azure 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.
  7. W przypadku iteracji wpisz liczbę iteracji algorytmu przed sfinalizowaniem wyboru centroidów.

    Ten parametr można dostosować, aby równoważyć dokładność względem czasu trenowania.

  8. W obszarze Przypisz tryb etykiety wybierz opcję określającą sposób obsługi kolumny etykiety, jeśli znajduje się ona 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. Wybierz opcję Normalizuj funkcje , jeśli chcesz znormalizować funkcje przed rozpoczęciem trenowania.

    W przypadku zastosowania normalizacji przed trenowaniem punkty danych są znormalizowane do [0,1] wartości MinMaxNormalizer.

  10. Trenowanie modelu.

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

Jeśli użyto składnika Train Clustering Model (Trenowanie modelu klastrowania ):

  1. Wybierz składnik Train Clustering Model (Trenowanie modelu klastrowania) i otwórz prawy panel.

  2. Wybierz kartę Dane wyjściowe . Wybierz ikonę Zarejestruj zestaw danych , aby zapisać kopię wytrenowanego modelu.

Zapisany model reprezentuje dane treningowe w momencie zapisania modelu. Jeśli później zaktualizujesz dane treningowe używane w potoku, nie zaktualizuje zapisanego modelu.

Zobacz zestaw danych wyników klastrowania

Jeśli użyto składnika Train Clustering Model (Trenowanie modelu klastrowania ):

  1. Kliknij prawym przyciskiem myszy składnik Train Clustering Model (Trenowanie modelu klastrowania ).

  2. Wybierz pozycję Wizualizuj.

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 potencjalnych 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 będą dobrze pasowały do tego klastra, a klaster może być pojedynczy. Oznacza to, że może mieć tylko jeden punkt.

Ten problem można uniknąć na kilka sposobów:

  • Zmień liczbę centroidów i spróbuj użyć wielu wartości nasion.

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

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

Następne kroki

Zobacz zestaw składników dostępnych dla usługi Azure Machine Learning.