Shlukování k-means je základní algoritmus učení bez učitele, který rozdělí data do předem zadaného počtu k skupin tak, aby byl minimalizován součet kvadrátů vzdáleností bodů od středů jejich skupin. Postupuje iterativně ve dvou střídajících se krocích: nejprve každý bod přiřadí k nejbližšímu středu, poté středy přepočítá jako průměr přiřazených bodů; opakuje se, dokud se přiřazení mění. Algoritmus vždy konverguje, ale jen k lokálnímu optimu, takže výsledek závisí na počáteční volbě středů – proto se používá promyšlená inicializace k-means++ a několik nezávislých běhů. Volba k je vnějším rozhodnutím a odhaduje se loketní metodou nebo siluetovým skóre. Zásadní jsou předpoklady, které metoda skrytě činí: shluky přibližně kulové, podobně velké a hustotou srovnatelné. Na protáhlé, vnořené nebo výrazně nestejné skupiny selhává a rovněž je citlivá na odlehlé hodnoty a na měřítko příznaků, které je nutné předem normalizovat. Ve vysokých dimenzích ztrácí euklidovská vzdálenost rozlišovací schopnost, proto se často kombinuje s redukcí dimenzionality. Typicky slouží k segmentaci zákazníků nebo k tematickému seskupování embeddingů.
Představte si školní tělocvičnu, kde stojí tři sta lidí a vy chcete udělat čtyři skupiny. Postavíte doprostřed čtyři vedoucí náhodně a řeknete: „Každý běžte k nejbližšímu vedoucímu.“ Vzniknou čtyři chumly. Pak řeknete vedoucím: „Přesuňte se doprostřed svého chumlu.“ Někteří lidé teď mají blíž k jinému vedoucímu, tak se přeběhnou. Zopakujete to a za chvíli se už nikdo nehýbe – máte skupiny. Dvě zrádnosti: musíte dopředu vědět, že chcete čtyři, ne pět. A pokud lidé stojí v protáhlé řadě u zdi, rozdělení podle vzdálenosti od středu dá nesmyslný výsledek.