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 nenatré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í, například:
- Detekce neobvyklých dat
- Clustering text documents.
- Analýza datových sad před použitím jiných klasifikačních nebo regresních metod
Pokud chcete vytvořit model clusteringu, budete:
- 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, kterou chcete použít při vytváření clusterů, atd.
Po nakonfigurování hyperparametrů komponent připojíte nevytrénovaný model k modelu trénování clusteringu. Vzhledem k tomu, že algoritmus K-means je metoda učení bez dohledu, je sloupec popisku nepovinný.
Pokud vaše data obsahují popisek, můžete pomocí hodnot popisků řídit výběr clusterů a optimalizovat model.
Pokud vaše data nemají žádný popisek, algoritmus vytvoří clustery představující možné kategorie založené výhradně na datech.
Principy clusteringu K-Means
Clustering obecně používá iterativní techniky k seskupení případů v datové sadě do clusterů, které mají podobné charakteristiky. Tyto seskupení jsou užitečné pro zkoumání dat, identifikaci anomálií v datech a nakonec pro vytváření předpovědí. Clusteringové modely vám také můžou pomoct identifikovat relace v datové sadě, které byste nemuseli logicky odvozovat procházením nebo jednoduchým pozorováním. Z těchto důvodů se clustering často používá v počáteční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čet centroidů , které chcete v modelu použít. Centroid je bod, který představuje každý shluk. Algoritmus K-means přiřazuje každý příchozí datový bod k 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í Algoritmus Lloyda k iterativnímu upřesnění jejich umístění. Algoritmus K-means přestane vytvářet a upřesňovat clustery, když splňuje jednu nebo více z těchto podmínek:
Centroidy se stabilizují, což znamená, že přiřazení clusteru pro jednotlivé body se už nemění a algoritmus se shodoval 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 provedete výpočtem vzdálenosti mezi novým případem a centroidem každého clusteru. Každému novému případu se přiřadí cluster s nejbližším centroidem.
Konfigurace komponenty clusteringu K-Means
Přidejte do kanálu komponentu clusteringu K-Means.
Pokud chcete určit, jak chcete model trénovat, vyberte možnost Vytvořit režim trenéra.
- Jeden parametr: Pokud znáte přesné parametry, které chcete použít v modelu clusteringu, můžete jako argumenty zadat konkrétní sadu hodnot.
Do pole Počet centroidů zadejte počet shluků, se kterými má algoritmus začínat.
Model není zaručený, že vytvoří přesně tento počet clusterů. Algoritmus začíná tímto počtem datových bodů a iteruje k nalezení optimální konfigurace. Můžete se podívat na zdrojový kód sklearnu.
Inicializace vlastností slouží k určení algoritmu, který slouží k definování počáteční konfigurace clusteru.
První N: Určitý počáteční počet datových bodů jsou vybrány z datové sady a použity jako počáteční prostředky.
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 centroidu 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 pro inicializaci clusterů.
Algoritmus K-means++ byl navržen v roce 2007 Davidem Arthurem a Sergei Vassilvitskii, aby se zabránilo špatnému shlukování standardním algoritmem K-means. K-means++ vylepšuje standardní K-means pomocí jiné metody pro výběr počátečních center clusteru.
Pro počáteční hodnotu náhodného čísla volitelně zadejte hodnotu, která se má použít jako počáteční hodnota pro inicializaci clusteru. Tato hodnota může mít významný vliv na výběr clusteru.
Pro metriku zvolte funkci, která se má použít pro měření vzdálenosti mezi vektory clusteru nebo mezi novými datovými body a náhodně zvoleným centroidem. Azure Machine Learning podporuje následující metriky vzdálenosti clusteru:
- Euclidean: Euklidová vzdálenost se běžně používá jako míra shlukového bodového shluku pro shlukování K-means. Tato metrika je upřednostňovaná, protože minimalizuje střední vzdálenost mezi body a centroidy.
V případě iterací zadejte, kolikrát má algoritmus před dokončením výběru centroidů iterovat trénovací data.
Tento parametr můžete upravit tak, aby byl vyrovnaný přesnost oproti trénovací době.
V případě režimu Přiřadit popisek zvolte možnost, která určuje, jak se má zpracovat sloupec popisku, pokud se nachází v datové sadě.
Vzhledem k tomu, že clustering K-means je metoda strojového učení bez dohledu, popisky jsou volitelné. Pokud ale datová sada už obsahuje sloupec popisku, můžete tyto hodnoty použít k vedení výběru clusterů nebo můžete určit, že se hodnoty budou ignorovat.
Ignorovat sloupec popisku: Hodnoty ve sloupci popisku se ignorují a nepoužívají se při sestavování modelu.
Vyplňování chybějících hodnot: Hodnoty sloupců popisků se používají jako funkce, které pomáhají sestavovat clustery. Pokud některé řádky chybí popisek, je hodnota imputována pomocí jiných funkcí.
Přepsání z nejbližšího středu: Hodnoty sloupce popisku se nahradí předpovězenými hodnotami popisků pomocí popisku bodu, který je nejblíže aktuálnímu centroidu.
Pokud chcete normalizovat funkce před trénováním, vyberte možnost Normalizovat funkce.
Pokud použijete normalizaci, před trénováním se datové body normalizují na
[0,1]
MinMaxNormalizer.Trénování modelu
- Pokud nastavíte režim Vytvořit trenéra na jeden parametr, přidejte označenou datovou sadu a vytré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 však několik způsobů, jak model vytrénovat, a několik způsobů zobrazení a použití výsledků:
Zachycení snímku modelu v pracovním prostoru
Pokud jste použili komponentu Trénování modelu clusteringu:
Vyberte komponentu Trénování modelu clusteringu a otevřete pravý panel.
Vyberte kartu Výstupy . Výběrem ikony Registrovat 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, neaktualizuje uložený model.
Zobrazení datové sady výsledků clusteringu
Pokud jste použili komponentu Trénování modelu clusteringu:
Klikněte pravým tlačítkem myši na komponentu Trénování modelu clusteringu .
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ýznamně 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 odlehlé hodnoty, nebudou se s tímto clusterem dobře vejít žádné jiné datové body a cluster by mohl být jediný. 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 použít více počátečních hodnot.
Vytvořte více modelů, které se liší metrikou nebo iterací 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ých modelem vyhovuje pouze aktuálním datovým bodům a není zobecněná pro jiná data. Pokud použijete jinou počáteční konfiguraci, metoda K-means může najít jinou, vyšší, konfiguraci.
Další kroky
Podívejte se na sadu komponent dostupných pro Azure Machine Learning.