AI 101
Co je K-Means Clustering?

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.












