Komponenta: Clustering K-Means

Tento článek popisuje, jak pomocí komponenty clusteringu K-Means v návrháři služby Azure Machine Learning vytvořit netrénovaný model clusteringu K-means.

K-means je jedním z nejjednodušších a nejznámějších algoritmů učení bez dohledu . Algoritmus můžete použít pro různé úlohy strojového učení, jako jsou:

  • Detekce neobvyklých dat.
  • Seskupování textových dokumentů.
  • Analýza datových sad před použitím jiných metod klasifikace nebo regrese

Pokud chcete vytvořit model clusteringu, proveďte:

  • Přidejte tuto komponentu do kanálu.
  • Připojení datové sady
  • Nastavte parametry, například počet clusterů, které očekáváte, metriku vzdálenosti, která se má použít při vytváření clusterů atd.

Po nakonfigurování hyperparametrů komponenty připojíte netrénovaný model k trénování modelu clusteringu. Vzhledem k tomu, že algoritmus K-means je metoda učení bez dohledu, je sloupec popisku volitelný.

  • Pokud data obsahují popisek, můžete hodnoty popisků použít k výběru clusterů a optimalizaci modelu.

  • Pokud vaše data nemají žádný popisek, algoritmus vytvoří clustery představující možné kategorie, a to výhradně na základě dat.

Principy clusteringu K-means

Obecně platí, že clustering používá iterativní techniky k seskupení případů v datové sadě do clusterů, které mají podobné vlastnosti. Tato seskupení jsou užitečná pro zkoumání dat, identifikaci anomálií v datech a nakonec pro vytváření předpovědí. Modely clusteringu vám také můžou pomoct identifikovat relace v datové sadě, které nemusíte logicky odvodit procházením nebo jednoduchým pozorováním. Z těchto důvodů se clustering často používá v raných fázích úloh strojového učení k prozkoumání dat a zjišťování neočekávaných korelací.

Při konfiguraci modelu clusteringu pomocí metody K-means musíte zadat cílové číslo k , které označuje požadovaný počet centroidů v modelu. Centroid je bod, který představuje každý shluk. Algoritmus K-means přiřadí každý příchozí datový bod jednomu z clusterů minimalizací součtu čtverců v rámci clusteru.

Při zpracování trénovacích dat začíná algoritmus K-means počáteční sadou náhodně zvolených centroidů. Centroidy slouží jako výchozí body pro shluky a používají Lloydův algoritmus k iterativnímu upřesnění jejich umístění. Algoritmus K-means zastaví vytváření a zpřesňování clusterů, pokud splňuje jednu nebo více z těchto podmínek:

  • Centroidy se stabilizují, což znamená, že přiřazení shluků pro jednotlivé body se již nemění a algoritmus se sbližuje s řešením.

  • Algoritmus dokončil spuštění zadaného počtu iterací.

Po dokončení trénovací fáze použijete komponentu Přiřadit data ke clusterům k přiřazení nových případů k jednomu z clusterů, který jste našli pomocí algoritmu K-means. Přiřazení clusteru provádíte výpočtem vzdálenosti mezi novým případem a centroidem každého clusteru. Každý nový případ je přiřazen clusteru s nejbližším centroidem.

Konfigurace komponenty clusteringu K-Means

  1. Přidejte do kanálu komponentu clusteringu K-Means .

  2. Pokud chcete určit, jak se má model trénovat, vyberte možnost Vytvořit režim školitele .

    • Jeden parametr: Pokud znáte přesné parametry, které chcete použít v modelu clusteringu, můžete jako argumenty zadat konkrétní sadu hodnot.
  3. Do pole Počet centroidů zadejte počet shluků, na které má algoritmus začínat.

    Model nezaručuje, že vytvoří přesně tento počet clusterů. Algoritmus začíná tímto počtem datových bodů a iteruje, aby se našla optimální konfigurace. Můžete se podívat na zdrojový kód sklearnu.

  4. Vlastnosti Inicializace slouží k určení algoritmu, který se použije k definování počáteční konfigurace clusteru.

    • První N: Z datové sady se vybere určitý počáteční počet datových bodů a použije se jako počáteční průměr.

      Tato metoda se také nazývá Forgy metoda.

    • Náhodný: Algoritmus náhodně umístí datový bod do clusteru a pak vypočítá počáteční střední hodnotu jako centroid náhodně přiřazených bodů clusteru.

      Tato metoda se také nazývá metoda náhodného oddílu .

    • K-Means++: Toto je výchozí metoda inicializace clusterů.

      Algoritmus K-means++ navrhli v roce 2007 David Arthur a Sergej Vassilvitskii, aby se zabránilo špatnému shlukování standardním algoritmem K-means. K-means++ vylepšuje standardní K-means použitím jiné metody pro výběr počátečních center clusteru.

  5. V části Náhodné počáteční číslo volitelně zadejte hodnotu, která se použije jako počáteční hodnota pro inicializaci clusteru. Tato hodnota může mít významný vliv na výběr clusteru.

  6. V části Metrika zvolte funkci, která se má použít k měření vzdálenosti mezi vektory shluků nebo mezi novými datovými body a náhodně zvoleným centroidem. Azure Machine Learning podporuje následující metriky vzdálenosti clusteru:

    • Euklidovské: Euklidovské vzdálenosti se běžně používá jako míra shlukového rozptylu pro shlukování K-means. Tato metrika je upřednostňovaná, protože minimalizuje střední vzdálenost mezi body a centroidy.
  7. V části Iterace zadejte, kolikrát má algoritmus iterovat trénovací data, než dokončí výběr centroidů.

    Tento parametr můžete upravit tak, aby se vyrovnaly přesnost a doba trénování.

  8. V části Přiřadit režim popisku zvolte možnost, která určuje, jak se má zpracovat sloupec popisku, pokud je v datové sadě.

    Vzhledem k tomu, že clustering K-means je metoda strojového učení bez dohledu, jsou popisky volitelné. Pokud ale vaše datová sada již obsahuje sloupec popisku, můžete tyto hodnoty použít k vodítku při výběru clusterů nebo můžete zadat, aby se hodnoty ignorovaly.

    • Ignorovat sloupec popisku: Hodnoty ve sloupci popisku se ignorují a nepoužívají se při sestavování modelu.

    • Vyplnění chybějících hodnot: Hodnoty sloupce popisků se používají jako funkce, které pomáhají vytvářet clustery. Pokud některé řádky chybí popisek, hodnota se přičte pomocí jiných funkcí.

    • Přepsání z nejbližšího na střed: Hodnoty sloupce popisku jsou nahrazeny hodnotami predikovaných popisků pomocí popisku bodu, který je nejblíže k aktuálnímu centroidu.

  9. Pokud chcete funkce normalizovat před trénováním, vyberte možnost Normalizovat funkce.

    Pokud použijete normalizaci, před trénováním jsou datové body normalizovány [0,1] na MinMaxNormalizer.

  10. Trénování modelu

    • Pokud nastavíte Vytvořit režim školitele na jeden parametr, přidejte označenou datovou sadu a trénujte model pomocí komponenty Train Clustering Model .

Výsledky

Po dokončení konfigurace a trénování modelu máte model, který můžete použít ke generování skóre. Existuje ale několik způsobů, jak model vytrénovat, a několik způsobů, jak zobrazit a použít výsledky:

Zachycení snímku modelu v pracovním prostoru

Pokud jste použili komponentu Trénování clusteringového modelu :

  1. Vyberte komponentu Trénování clusteringového modelu a otevřete pravý panel.

  2. Vyberte kartu Výstupy . Výběrem ikony Zaregistrovat datovou sadu uložte kopii natrénovaného modelu.

Uložený model představuje trénovací data v době, kdy jste model uložili. Pokud později aktualizujete trénovací data použitá v kanálu, uložený model se neaktualizuje.

Zobrazení datové sady výsledků clusteringu

Pokud jste použili komponentu Trénování clusteringového modelu :

  1. Klikněte pravým tlačítkem na komponentu Trénování clusteringového modelu .

  2. Vyberte Vizualizovat.

Tipy pro generování nejlepšího modelu clusteringu

Je známo, že proces seedingu , který se používá během clusteringu, může výrazně ovlivnit model. Seeding znamená počáteční umístění bodů do potenciálních centroidů.

Pokud například datová sada obsahuje mnoho odlehlých hodnot a vybere se odlehlejší hodnota, která clustery zasadí, nebudou se do clusteru dobře vejít žádné jiné datové body a cluster by mohl být singleton. To znamená, že to může mít jen jeden bod.

Tomuto problému se můžete vyhnout několika způsoby:

  • Změňte počet centroidů a zkuste více počátečních hodnot.

  • Vytvořte více modelů, které budou měnit metriku nebo iterovat více.

Obecně platí, že u modelů clusteringu je možné, že jakákoli daná konfigurace bude mít za následek místně optimalizovanou sadu clusterů. Jinými slovy, sada clusterů vrácená modelem vyhovuje pouze aktuálním datovým bodům a není generalizovatelná na jiná data. Pokud použijete jinou počáteční konfiguraci, může metoda K-means najít jinou, nadřazenou konfiguraci.

Další kroky

Projděte si sadu komponent dostupných pro Azure Machine Learning.