Metoda k - means je nejoblíbenější metodou shlukování . Vynalezl jej v 50. letech 20. století matematik Hugo Steinhaus [1] a téměř současně Stuart Lloyd [2] . Získal zvláštní popularitu po práci McQueena [3] .
Činnost algoritmu je taková, že se snaží minimalizovat celkovou čtvercovou odchylku bodů shluku od středů těchto shluků:
kde je počet shluků, jsou výsledné shluky, a jsou těžiště všech vektorů ze shluku .
Analogicky s metodou hlavních komponent se středy shluků také nazývají hlavní body a samotná metoda se nazývá metoda hlavních bodů [4] a je zahrnuta v obecné teorii hlavních objektů , které poskytují nejlepší aproximaci dat. [5] .
Algoritmus je verzí EM algoritmu , který se také používá k oddělení směsi Gaussiánů . Rozdělí množinu prvků vektorového prostoru do předem známého počtu shluků k .
Hlavní myšlenkou je, že při každé iteraci je těžiště přepočítáno pro každý shluk získaný v předchozím kroku, poté jsou vektory opět rozděleny do shluků podle toho, které z nových středů se ukázalo být bližší podle zvolené metriky.
Algoritmus se ukončí, když v nějaké iteraci nedojde ke změně vzdálenosti uvnitř clusteru. To se děje v konečném počtu iterací, protože počet možných rozdělení konečné množiny je konečný a v každém kroku se celková kvadratická odchylka V snižuje, takže smyčkování je nemožné.
Jak ukázali David Arthur a Sergey Vasilvitsky, na některých třídách množin je složitost algoritmu z hlediska času potřebného pro konvergenci [6] .
Činnost algoritmu ve dvourozměrném případě. Počáteční body jsou vybrány náhodně.
Široko známá a používaná je implementace neuronové sítě K-means - síť vektorové kvantizace signálů (jedna z verzí Kohonenovy neuronové sítě ).
Existuje rozšíření k-means++ , které je zaměřeno na optimální volbu počátečních hodnot středů clusteru.
V algoritmech hlubokého učení se metoda k-means někdy nepoužívá pro svůj zamýšlený účel (klasifikace pomocí shlukování), ale pro vytvoření takzvaných filtrů (konvoluční jádra, slovníky). Například pro rozpoznávání obrazu je algoritmus k-means napájen malými náhodnými kousky obrazů cvičných vzorků, řekněme o velikosti 16x16, jako lineární vektor, jehož každý prvek kóduje jas svého bodu. Počet shluků k je nastaven velký, například 256. Trénovaná metoda k-průměrů za určitých podmínek vytváří shluková centra (centroidy), což jsou vhodné báze, na které lze rozložit jakýkoli vstupní obraz. Takto „vycvičené“ centroidy se dále používají jako filtry například pro konvoluční neuronové sítě jako konvoluční jádra nebo jiné podobné systémy strojového vidění [8] . Učení bez dozoru se tedy provádí pomocí metody k-means.
Strojové učení a dolování dat | |
---|---|
Úkoly | |
Učení s učitelem | |
shluková analýza | |
Redukce rozměrů | |
Strukturální prognózy | |
Detekce anomálií | |
Grafové pravděpodobnostní modely | |
Neuronové sítě | |
Posílení učení |
|
Teorie | |
Časopisy a konference |
|