Udostępnij za pośrednictwem


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 niewytrenowanego modelu klastrowania języka K-średnich.

K-średnich jest jednym z najprostszych i najbardziej znanych algorytmów uczenia nienadzorowanego . 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 używana podczas tworzenia klastrów itd.

Po skonfigurowaniu hiperparametrów składników 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, aby pokierować wyborem klastrów i zoptymalizować model.

  • 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, klastrowanie używa technik iteracyjnych do grupowania przypadków w zestawie danych w klastry, które mają podobne cechy. Te grupowania są przydatne do eksplorowania danych, identyfikowania anomalii w danych i wprowadzania przewidywań. Modele klastrowania mogą również pomóc w identyfikowaniu relacji w zestawie danych, które mogą nie być logicznie uzyskiwane 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 reprezentatywnym dla każdego klastra. Algorytm K-średnich przypisuje każdy przychodzący punkt danych do jednego z klastrów, minimalizując sumę kwadratów w obrębie klastra.

Podczas przetwarzania danych treningowych algorytm K-średnich rozpoczyna się od początkowego zestawu losowo wybranych centroidów. Centroidy służą jako punkty początkowe dla klastrów i stosują algorytm Lloyda do iteracyjnego uściślenia ich lokalizacji. Algorytm K-średnich zatrzymuje tworzenie i udoskonalanie klastrów, 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 został zbieżny z rozwiązaniem.

  • 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 należy wykonać przez obliczenie odległości między nowym przypadkiem a centroidem każdego klastra. Każdy nowy przypadek jest przypisywany do klastra z najbliższym centroidem.

Konfigurowanie składnika klastrowania K-Średnich

  1. Dodaj składnik Klaster 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: z zestawu danych wybierana jest pewna początkowa liczba punktów danych i używana jako początkowa liczba punktów.

      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 r. przez Davida Arthura i Sergei'ego Vassilvitskiiego, 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 polu Inicjator liczby losowej opcjonalnie wpisz wartość, która ma być używana jako inicjator inicjowania 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:

    • Euklidesan: Odległość euklidesowa 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 zró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 jest ona obecna w zestawie danych.

    Ponieważ klasterowanie metodą 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, aby kierować wyborem klastrów lub określić, że wartości zostaną zignorowane.

    • Ignoruj kolumnę etykiety: 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 z 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 szkoleniem.

    Jeśli zastosujesz normalizację, przed trenowaniem punkty danych są znormalizowane do [0,1] przez 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 panel po prawej stronie.

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

Zapisany model reprezentuje dane treningowe podczas zapisywania 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ę Visualize ( Wizualizacja).

Porady dotyczące generowania najlepszego modelu klastrowania

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

Jeśli na przykład zestaw danych zawiera wiele wartości odstających, a wartości odstające są wybierane do rozmieszczania klastrów, żadne inne punkty danych nie pasują dobrze 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 inicjowania.

  • Utwórz wiele modeli, różniąc się 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 można uogólnić 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.