Spojte se s námi

AI 101

Co je to shlukování K-Means?

mm

K-znamená shlukování je an učení bez dozoru Algoritmus a ze všech algoritmů učení bez dozoru může být shlukování K-means nejrozšířenější díky své síle a jednoduchosti. Jak přesně funguje shlukování K-means?

Krátká odpověď je, že shlukování K-means funguje vytvoření referenčního bodu (těžiště) pro požadovaný počet tříd a poté přiřazování datových bodů ke shlukům tříd podle toho, který referenční bod je nejblíže. I když je to rychlá definice shlukování K-means, pojďme se chvíli ponořit hlouběji do shlukování K-means a získat lepší intuici, jak funguje.

Definování shlukování

Než prozkoumáme přesné algoritmy používané k provádění shlukování K-means, věnujeme trochu času definici shlukování obecně.

Clustery jsou pouze skupiny položek a shlukování je pouze vkládání položek do těchto skupin. Ve smyslu datové vědy, shlukovací algoritmy cílem udělat dvě věci:

  • Zajistěte, aby si všechny datové body v clusteru byly co nejvíce podobné.
  • Zajistěte, aby všechny datové body v různých shlucích byly co možná nejvíce odlišné.

Algoritmy shlukování seskupují položky dohromady na základě nějaké metriky podobnosti. To se často provádí nalezením „centroidu“ různých možných skupin v souboru dat, i když ne výhradně. Existuje celá řada různých shlukovacích algoritmů, ale cíl všech shlukovacích algoritmů je stejný, určit skupiny vlastní datové sadě.

K-Means Clustering

K-Means Clustering je jedním z nejstarších a nejběžněji používaných typů shlukovacích algoritmů a funguje na základě vektorové kvantování. Jako počátek je vybrán bod v prostoru a poté jsou vektory vykresleny z počátku do všech datových bodů v datové sadě.

Obecně lze shlukování K-means rozdělit do pěti různých kroků:

  • Umístěte všechny instance do podmnožin, kde se počet podmnožin rovná K.
  • Najděte střední bod/těžiště nově vytvořených oddílů clusteru.
  • Na základě těchto těžišť přiřaďte každý bod konkrétnímu shluku.
  • Vypočítejte vzdálenosti od každého bodu k centroidům a přiřaďte body shlukům, kde je vzdálenost od těžiště minimální.
  • Po přiřazení bodů ke shlukům najděte nové těžiště shluků.

Výše uvedené kroky se opakují, dokud není tréninkový proces dokončen.

V počáteční fázi jsou centroidy umístěny někde mezi datovými body.
Foto: Weston.pace přes wikimedia commons, GNU Free Documentation License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

Alternativně, po umístění těžišť, můžeme si představit shlukování K-means jako výměnu tam a zpět mezi dvěma různými fázemi: označování datových bodů a aktualizace těžišť.

Ve druhém kroku se metrika vzdálenosti, jako je euklidovská vzdálenost, používá k výpočtu, kterému těžišti je daný bod nejblíže, a pak jsou body přiřazeny do třídy tohoto těžiště. Foto: Weston.pace prostřednictvím Wikimedia Commons, licence GNU Free Doc (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

Ve fázi označování datových bodů je každému datovému bodu přiřazeno označení, které jej umístí do shluku náležejícího k nejbližšímu centroidu. Nejbližší těžiště se obvykle určuje pomocí druhé mocniny euklidovské vzdálenosti, i když lze použít i jiné metriky vzdálenosti, jako je vzdálenost na Manhattanu, kosinus a vzdálenost Jaccard, v závislosti na typu dat přiváděných do shlukovacího algoritmu.

Ve třetím kroku se těžiště přesunou na průměr všech datových bodů. Třídy jsou poté přeřazeny. Foto: Weston.pace přes Wikiemedia Commons, CC SA 3.0 (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_3.svg)

V kroku aktualizace těžiště se těžiště vypočítá zjištěním střední vzdálenosti mezi všemi datovými body aktuálně obsaženými v klastru.

Jak vybrat správnou hodnotu pro „K“

Vzhledem k tomu, že shlukování K-means je algoritmus bez dozoru a počet tříd není předem znám, jak se rozhodnete pro vhodný počet tříd/správnou hodnotu pro K?

Jedna technika pro výběr správné hodnoty K se nazývá „technika lokte“. Technika kolena spočívá ve spuštění shlukovacího algoritmu K-means pro řadu různých K-hodnot a použití metriky přesnosti, typicky Sum of Squared Error, k určení, které hodnoty K poskytují nejlepší výsledky. Součet čtvercových chyb je určen výpočtem střední vzdálenosti mezi těžištěm shluku a datovými body v tomto shluku.

Termín „technika lokte“ pochází ze skutečnosti, že když vynesete SSE s ohledem na různé hodnoty K, výsledný čárový graf bude mít často tvar „lokte“, kde SSE rychle klesá pro prvních několik hodnot K, ale pak se vyrovná. V takových podmínkách je hodnota K umístěná v lokti nejlepší hodnotou pro K, protože po této hodnotě se rychle snižují výnosy.

Mini-Batch K-Means Clustering

S rostoucími datovými sadami roste také doba výpočtu. Dokončení základního shlukování K-means může trvat dlouho, když běží na masivních datových sadách, a v důsledku toho byly provedeny úpravy shlukování K-means, aby bylo možné snížit prostorové a časové náklady algoritmu.

Mini-Batch K-znamená shlukování je varianta shlukování K-means kde je velikost uvažované datové sady omezena. Normální shlukování K-means funguje na celé datové sadě/dávce najednou, zatímco Mini-batch K-znamená shlukování rozdělí datovou sadu na podmnožiny. Minidávky jsou náhodně vzorkovány z celého souboru dat a pro každou novou iteraci je vybrán nový náhodný vzorek, který se použije k aktualizaci polohy těžišť.

V mini-dávkovém shlukování K-Means jsou clustery aktualizovány kombinací hodnot mini-dávky a rychlosti učení. Rychlost učení se během iterací snižuje a je to inverzní hodnota k počtu datových bodů umístěných v konkrétním clusteru. Účinek snížení rychlosti učení je, že se sníží dopad nových dat a dosáhne se konvergence, když po několika iteracích nedojde k žádným změnám ve shlucích.

Výsledky studií účinnosti minidávkového shlukování K-means naznačují, že může úspěšně zkrátit dobu výpočtu s mírným kompromisem v kvalitě clusteru.

Aplikace K-Means Clustering

Klastrování K-means lze bezpečně použít v jakékoli situaci, kdy lze datové body segmentovat do odlišných skupin/tříd. Zde je několik příkladů běžných případů použití pro shlukování K-mean.

Klastrování K-means lze použít na klasifikaci dokumentů, seskupování dokumentů na základě funkcí, jako jsou témata, značky, použití slov, metadata a další funkce dokumentu. Dalo by se také použít ke klasifikaci uživatelů jako roboty nebo neboty na základě vzorců činnosti, jako jsou příspěvky a komentáře. Shlukování K-means lze také použít k rozdělení lidí do skupin na základě úrovně obav při sledování jejich zdraví, na základě funkcí, jako jsou komorbidity, věk, historie pacienta atd.

Klastrování K-means lze také použít pro otevřenější úkoly, jako je vytváření systémů doporučení. Uživatelé systému, jako je Netflix, mohou být seskupeni na základě vzorců sledování a doporučeného podobného obsahu. Shlukování K-means by mohlo být použito pro úkoly detekce anomálií, zdůraznění potenciálních případů podvodu nebo vadných položek.