Takéclustering, clusterování, shlukováníPokročilý
Definice
Shluková analýza je metoda průzkumné datové analýzy a strojového učení, která seskupuje podobné objekty bez předem známých štítků. Hledá strukturu podle zvolené míry podobnosti, například vzdálenosti mezi body, a pomáhá odhalit segmenty zákazníků, typy chování, anomálie nebo skupiny dokumentů v datech.
Co shluková analýza hledá v datech
Shluková analýza pracuje s daty, u kterých neznáme správnou třídu. Místo otázky patří záznam do kategorie A? řeší otázku, které záznamy jsou si navzájem blízké. Výsledek není jediné správné dělení světa, ale návrh struktury odvozený z vybraných proměnných, metriky vzdálenosti a algoritmu.
Důležitá je interpretace. Shluk může znamenat skupinu zákazníků s podobným nákupním chováním, sadu dokumentů se společným tématem, oblast senzorických měření nebo neobvyklý provoz v síti. Stejná data však mohou dát různá seskupení, pokud analytik změní měřené vlastnosti nebo způsob škálování.
Proč vzdálenost rozhoduje o výsledku
Volba podobnosti určuje, co algoritmus považuje za blízké. U číselných dat se často používá eukleidovská vzdálenost, u textů kosinová podobnost a u kategorií jiné metriky. Bez normalizace může proměnná s velkým rozsahem převálcovat ostatní, například roční obrat v korunách může potlačit počet objednávek.
Shluková analýza proto začíná přípravou dat. Hodí se odstranit chyby, promyslet chybějící hodnoty, převést kategorie a zvážit redukci dimenzí. Kvalita vstupů je podobně zásadní jako u trénovacích dat, i když shlukování většinou nepoužívá cílové štítky.
K-means, DBSCAN a hierarchické shlukování
K-means hledá předem daný počet shluků a každý bod přiřazuje k nejbližšímu středu. Algoritmus je rychlý a dobře se vysvětluje, ale špatně zvládá nepravidelné tvary, odlehlé body a situace, kdy počet shluků není jasný.
DBSCAN vychází z hustoty bodů. Skupinu vytvoří tam, kde je dost sousedů, a izolované body umí označit jako šum. DBSCAN se hodí pro prostorová data nebo anomálie, ale citlivě reaguje na nastavení poloměru a minimálního počtu sousedů.
Hierarchické shlukování nevynucuje jediný počet skupin hned na začátku. Vytváří strom slučování nebo dělení, ze kterého lze později vybrat vhodnou úroveň detailu. Strom je užitečný při vysvětlování vztahů mezi skupinami, ale u velkých datasetů může být výpočetně drahý.
Kde shluky klamou
Shluková analýza snadno vyrobí přesvědčivý obrázek i z dat, která jasné skupiny nemají. Barevný graf není důkaz, že segmenty existují v realitě. Výsledek je potřeba ověřit doménově, stabilitou při změně parametrů a praktickým dopadem, například lepší kampaní, přesnějším monitoringem nebo srozumitelnější kategorizací obsahu.
Příklady z praxe
Segmentace zákazníků e-shopu
E-shop vezme počet objednávek, průměrnou hodnotu košíku a podíl nákupů se slevou. Po normalizaci dat K-means rozdělí zákazníky do tří segmentů: pravidelní prémioví zákazníci, citliví na slevu a občasní kupující. Marketing pak každé skupině pošle jiný typ nabídky a sleduje, zda segmentace zlepšila konverzi.
from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler X = customers[["orders_per_month", "avg_order_value", "discount_share"]] X_scaled = StandardScaler().fit_transform(X) model = KMeans(n_clusters=3, random_state=0, n_init="auto") customers["segment"] = model.fit_predict(X_scaled)Hledání neobvyklého provozu v logách
Bezpečnostní tým analyzuje počty požadavků, země původu, typy endpointů a časové rozložení provozu. DBSCAN vytvoří husté skupiny běžného chování a část bodů označí jako šum. Právě šum se následně kontroluje ručně, protože může jít o skenování API, rozbitý klient nebo začátek útoku.
Časté omyly
- MýtusAlgoritmus vždy najde skutečné přirozené skupiny.
- Ve skutečnostiShluková analýza najde strukturu podle zvolených vstupů, metriky a parametrů. Výsledek může být artefakt metody, špatného škálování nebo náhodného rozložení dat.
- MýtusStačí pustit K-means a segmentace je hotová.
- Ve skutečnostiK-means vyžaduje volbu počtu shluků, škálování dat a kontrolu tvaru skupin. Pro nepravidelné shluky, šum nebo odlehlé body může být vhodnější jiný algoritmus.
Časté dotazy
- Kolik shluků má shluková analýza hledat?
- Shluková analýza nemá univerzální správný počet shluků. Počet se obvykle hledá kombinací metrik, vizualizace a znalosti domény. U K-means se často porovnává více hodnot k a sleduje se, kdy další shluk přidává už jen malý přínos. Praktické rozhodnutí ale závisí i na tom, zda jsou výsledné skupiny použitelné pro konkrétní akci, například reporting nebo cílení kampaně.
- Kdy shluková analýza potřebuje normalizaci dat?
- Shluková analýza většinou potřebuje normalizaci, pokud vstupní proměnné mají rozdílné jednotky nebo rozsahy. Vzdálenost mezi body by jinak ovládla proměnná s největšími čísly, třeba obrat v korunách místo četnosti nákupů. Normalizace není kosmetická úprava, ale součást definice podobnosti, protože mění, co algoritmus považuje za blízké.
- Může shluková analýza nahradit klasifikaci?
- Shluková analýza nemůže přímo nahradit klasifikaci, protože nemá předem dané cílové třídy. Shlukování hledá strukturu bez štítků, zatímco klasifikace se učí rozpoznávat známé kategorie. Shluky se ale mohou stát podkladem pro pozdější klasifikační model, pokud je odborník pojmenuje, ověří a vytvoří z nich trénovací data.
- Proč shluková analýza někdy vytvoří segmenty bez obchodního smyslu?
- Shluková analýza může vytvořit obchodně slabé segmenty, když vstupní proměnné měří technickou podobnost místo užitečného chování. Dva zákazníci mohou být blízko v datech, ale vyžadovat odlišnou nabídku. Smysluplnost segmentů se proto posuzuje nejen matematicky, ale také podle stability, velikosti skupin a rozhodnutí, které na jejich základě firma udělá.
Zdroje
- Shluková analýza(otevře se v novém okně)
- Cluster analysis(otevře se v novém okně)
- Least squares quantization in PCM(otevře se v novém okně)