AI 101

Co je K-Means Clustering?

mm

K-means clustering je algoritmus nesupervised learning a ze všech algoritmů nesupervised learning je K-means clustering možná nejvíce používaný, díky své síle a jednoduchosti. Jak přesně K-means clustering funguje?

Krátce řečeno, K-means clustering funguje tak, že vytvoří referenční bod (centroid) pro požadovaný počet tříd a poté přiřadí datové body ke clusterům na základě toho, který referenční bod je nejblíže. Zatímco to je rychlé definice K-means clustering, pojďme se podívat blíže na K-means clustering a získat lepší intuici, jak funguje.

Definice Clusteringu

Než se budeme zabývat přesně algoritmy, které se používají pro K-means clustering, pojďme se podívat na definici clusteringu obecně.

Cluster je prostě skupina položek a clustering je prostě přiřazování položek do těchto skupin. V kontextu datové vědy algoritmy clusteringu se snaží udělat dvě věci:

  • Zajistit, aby všechny datové body v clusteru byly co nejvíce podobné.
  • Zajistit, aby všechny datové body v různých clusterech byly co nejvíce odlišné.

Algoritmy clusteringu seskupují položky na základě některé metriky podobnosti. To se často dělá tak, že se najde „centroid“ různých možných skupin v datové sadě, i když ne výlučně. Existuje mnoho různých algoritmů clusteringu, ale cílem všech algoritmů clusteringu je stejný, určit skupiny, které jsou intrinsic ke datové sadě.

K-Means Clustering

K-Means Clustering je jeden z nejstarších a nejčastěji používaných typů algoritmů clusteringu a funguje na základě vectorové kvantizace. Existuje bod v prostoru, který je zvolen jako počátek, a poté se vykreslují vektory z počátku ke všem datovým bodům v datové sadě.

Obecně lze K-means clustering rozdělit do pěti různých kroků:

  • Vložit všechny instance do podmnožin, kde počet podmnožin je roven K.
  • Najít střední bod/centroid nově vytvořených clusterů.
  • Založené na těchto centroidech, přiřadit každý bod ke konkrétnímu clusteru.
  • Vyčíslit vzdálenosti od každého bodu ke centroidům a přiřadit body ke clusterům, kde je vzdálenost od centroidu minimální.
  • Po přiřazení bodů ke clusterům najít nový centroid clusterů.

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

V počáteční fázi se centroid umístí někde mezi datové body.
Foto: Weston.pace via wikimedia commons, GNU Free Documentation License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_1.svg)

Alternativně, po umístění centroidů, můžeme K-means clustering chápat jako střídání mezi dvěma různými fázemi: označováním datových bodů a aktualizací centroidů.

Ve druhém kroku se používá vzdálenostní metrika, jako je Euclideanova vzdálenost, pro výpočet, ke kterému centroidu je dán bod nejblíže, a poté se body přiřadí ke třídě centroidu. Foto: Weston.pace via Wikimedia Commons, GNU Free Doc License (https://commons.wikimedia.org/wiki/File:K_Means_Example_Step_2.svg)

V fázi označování datových bodů je každý datový bod přiřazen k labelu, který ho umístí do clusteru, který patří k nejbližšímu centroidu. Nejbližší centroid je obvykle určen pomocí čtvercové Euclideanovy vzdálenosti, i když lze použít i jiné vzdálenostní metriky, jako je Manhattanova vzdálenost, Cosine a Jaccardova vzdálenost, v závislosti na typu dat, která jsou zpracovávána do algoritmu clusteringu.

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

V kroku aktualizace centroidu se centroid vypočítá tak, že se najde střední vzdálenost mezi všemi datovými body, které jsou aktuálně obsaženy v clusteru.

Jak vybrat správnou hodnotu pro „K“

Přitom, že K-means clustering je nesupervised algoritmus a počet tříd není znám předem, jak se rozhodnout o vhodném počtu tříd/hodnotě K?

Jedna technika pro výběr správné hodnoty K je nazývána „elbow technika“. Elbow technika spočívá v tom, že se spustí K-means clustering algoritmus pro řadu různých hodnot K a používá se metrika přesnosti, obvykle Sum of Squared Error, pro určení, které hodnoty K dávají nejlepší výsledky. Sum of Squared Error se určí tak, že se vypočítá střední vzdálenost mezi centroidem clusteru a datovými body v clusteru.

Termín „elbow technika“ pochází z faktu, že když se vykreslí SSE v závislosti na různých hodnotách K, výsledná linie bude mít často „elbow“ tvar, kde SSE klesá rychle pro první几 hodnoty K, ale poté se zplošťuje. V takovém případě je hodnota K umístěná v „elbow“ nejlepší hodnota pro K, protože existují rychle klesající návraty po této hodnotě.

Mini-Batch K-Means Clustering

Jak datové sady rostou, tak roste i čas výpočtu. Základní K-means clustering může trvat dlouho, než bude dokončen, když je spuštěn na velkých datových sadách, a jako výsledek, byly provedeny úpravy K-means clusteringu, aby se snížily prostorové a časové náklady algoritmu.

Mini-Batch K-means clustering je varianta K-means clusteringu, kde je velikost datové sady, která je zvažována, omezena. Normální K-means clustering funguje na celé datové sadě najednou, zatímco Mini-batch K-means clustering rozdělí datovou sadu na podmnožiny. Mini-batch je náhodně vybrán z celé datové sady a pro každou novou iteraci je vybrán nový náhodný vzorek a používán k aktualizaci polohy centroidů.

V Mini-Batch K-Means clusteringu se cluster aktualizuje kombinací mini-batch hodnot a learning rate. Learning rate klesá během iterací a je to převrácená hodnota počtu datových bodů umístěných v konkrétním clusteru. Účinek snížení learning rate je, že dopad nových dat je snížen a konvergence je dosažena, když, po několika iteracích, nejsou žádné změny v clusterech.

Výsledky studií o účinnosti Mini-batch K-means clusteringu naznačují, že může úspěšně snížit čas výpočtu s malým kompromisem v kvalitě clusterů.

Aplikace K-Means Clusteringu

K-means clustering lze bezpečně použít v jakékoli situaci, kdy lze datové body segmentovat do distintních skupin/tříd. Zde jsou einige příklady běžných použití K-means clusteringu.

K-means clustering lze použít pro klasifikaci dokumentů, seskupení dokumentů na základě funkcí, jako jsou témata, značky, použití slov, metadata a další dokumentové funkce. Může být také použit pro klasifikaci uživatelů jako botů nebo nebotů na základě vzorců aktivity, jako jsou příspěvky a komentáře. K-means clustering lze také použít pro seskupení lidí do skupin na základě úrovní obav při monitorování jejich zdraví, na základě funkcí, jako jsou komorbidita, věk, historie pacienta atd.

K-means clustering lze také použít pro více otevřené úkoly, jako je vytváření doporučení. Uživatelé systému, jako je Netflix, lze seskupit dohromady na základě vzorců prohlížení a doporučit podobný obsah. K-means clustering lze použít pro úkoly detekce anomálií, které zdůrazňují potenciální případy podvodu nebo vadných položek.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.