Naposledy Aktualizováno 20. srpna roku 2020
Shlukování nebo shluková analýza je učení bez učitele problém.
často se používá jako technika analýzy dat pro objevování zajímavých vzorů v datech, jako jsou skupiny zákazníků na základě jejich chování.
existuje mnoho clustering algoritmy z čeho vybírat a žádný jediný nejlepší clustering algoritmus pro všechny případy. Místo toho je dobré prozkoumat řadu clusteringových algoritmů a různých konfigurací pro každý algoritmus.,
v tomto tutoriálu zjistíte, jak se přizpůsobit a používat špičkové algoritmy Shlukování v Pythonu.
Po dokončení tohoto kurzu budete vědět:
- Clustering je bez dozoru problém nalezení přirozené skupiny v celovečerním prostoru vstupních údajů.
- existuje mnoho různých clusteringových algoritmů a žádná jediná nejlepší metoda pro všechny datové sady.
- jak implementovat, přizpůsobit a používat špičkové algoritmy Shlukování v Pythonu pomocí knihovny strojového učení scikit-learn.,
Kick-start svůj projekt s mým novým Book Machine Learning Mastery s Python, včetně krok za krokem tutoriály a soubory zdrojového kódu Python pro všechny příklady.
začněme.
Clustering algoritmy s Pythonem
Foto Lars Plougmann, některá práva vyhrazena.,/div>
Návod Přehled
Tento výukový program je rozdělen do tří částí; jsou to:
- Clustering
- Clustering Algoritmy
- Příklady Clustering Algoritmy
- Instalace Knihovny
- Clustering Dataset
- Zájmové Šíření
- Agglomerative Clustering
- BŘEZOVÁ
- DBSCAN
- K-Znamená,
- Mini-Batch K-Znamená,
- Shift
- OPTIKA
- Spectral Clustering
- Gaussian Mixture Model
Clustering
shluková analýza, nebo clustering, je bez dozoru strojového učení úkol.,
zahrnuje automatické objevování přirozeného seskupení v datech. Na rozdíl od učení s učitelem (jako prediktivní modelování), clustering algoritmy pouze interpretovat vstupní data a najít přírodní skupin nebo klastrů ve funkci prostoru.
Clustering techniky platí, pokud neexistuje žádná třída, které mají být předpovězeny, ale spíše když instance mají být rozděleny do přirozených skupin.
– Strana 141, dolování dat: praktické nástroje a techniky strojového učení, 2016.,
cluster je často oblast hustoty v prostoru funkcí, kde příklady z domény (pozorování nebo řádky dat) jsou blíže k clusteru než jiné klastry. Cluster může mít střed (centroid), který je vzorkem nebo bodovým prvkem a může mít hranici nebo rozsah.
Tyto shluky pravděpodobně odrážet nějaký mechanismus, při práci v doméně, ze které instance jsou vypracovány, mechanismus, který způsobuje některých případech nést silnější podobnost k sobě, než je tomu na zbývající případy.,
– stránky 141-142, dolování dat: praktické nástroje a techniky strojového učení, 2016.
Clustering může být užitečný jako aktivita analýzy dat, aby se dozvěděli více o problémové doméně, tzv.
například:
- fylogenetický strom lze považovat za výsledek ruční analýzy shlukování.
- oddělení normálních dat od odlehlých hodnot nebo anomálií lze považovat za problém seskupování.,
- oddělování klastrů na základě jejich přirozeného chování je problém seskupování, označovaný jako segmentace trhu.
Clustering může být také užitečné jako typ funkce inženýrství, kde stávající a nové příklady mohou být mapovány a označeny jako patřící do jedné z identifikovaných shluků v datech.
hodnocení identifikovaných klastrů je subjektivní a může vyžadovat odborníka na doménu, ačkoli existuje mnoho kvantitativních opatření specifických pro shlukování., Algoritmy se obvykle porovnávají na syntetických datových sadách s předem definovanými klastry, které by měl algoritmus objevit.
Clustering je technika učení bez dozoru, takže je těžké vyhodnotit kvalitu výstupu dané metody.
– Strana 534, strojové učení: pravděpodobnostní perspektiva, 2012.
Clusteringové algoritmy
existuje mnoho typů clusteringových algoritmů.,
mnoho algoritmů používá podobnost nebo vzdálenost mezi příklady v prostoru funkcí ve snaze objevit husté oblasti pozorování. Jako takový, to je často dobrá praxe škálovat data před použitím shlukování algoritmy.
Ústřední na všechny cíle shlukové analýzy je pojem stupně podobnosti (nebo odlišnosti) mezi jednotlivými objekty jsou seskupeny. Metoda shlukování se pokouší seskupit objekty na základě definice podobnosti.,
– Page 502, prvky statistického učení: dolování dat, Inference a predikce, 2016.
Některé clustering algoritmy vyžadují, abyste určit nebo odhadnout počet shluků objevovat v datech, zatímco jiní vyžadují stanovení určité minimální vzdálenosti mezi pozorováními, ve kterém příklady mohou být považovány za „zavřít“ nebo „připojení.,“
jako takový je klastrová analýza iterativním procesem, kdy je subjektivní hodnocení identifikovaných klastrů přiváděno zpět do změn konfigurace algoritmu, dokud není dosaženo požadovaného nebo vhodného výsledku.
knihovna scikit-learn poskytuje sadu různých clusteringových algoritmů z čeho vybírat.,
seznam 10 nejpopulárnějších algoritmů je následující:
- Zájmové Šíření
- Agglomerative Clustering
- BŘEZOVÁ
- DBSCAN
- K-Znamená,
- Mini-Batch K-Znamená,
- Shift
- OPTIKA
- Spectral Clustering
- Směs Gaussians
Každý algoritmus nabízí jiný přístup k problematice objevování přirozených skupin v datech.
neexistuje žádný nejlepší algoritmus shlukování a žádný snadný způsob, jak najít nejlepší algoritmus pro vaše data bez použití kontrolovaných experimentů.,
v tomto tutoriálu přezkoumáme, jak používat každý z těchto 10 populárních clusteringových algoritmů z knihovny scikit-learn.
příklady vám poskytnou základ pro kopírování a vkládání příkladů a testování metod na vašich vlastních datech.
nebudeme se ponořit do teorie, jak algoritmy fungují, nebo je přímo porovnat. Pro dobrý výchozí bod na toto téma, Viz:
- Clustering, scikit-learn API.
pojďme se ponořit.,
Příklady Clustering Algoritmy
V této sekci, budeme sledovat, jak použít 10 populární clustering algoritmy v scikit-learn.
to zahrnuje příklad montáže modelu a příklad vizualizace výsledku.
příklady jsou navrženy pro kopírování a vkládání do vlastního projektu a použití metod na vlastní data.
instalace knihovny
Nejprve nainstalujte knihovnu.
tento krok nevynechávejte, protože budete muset zajistit, že máte nainstalovanou nejnovější verzi.,>
1
|
sudo pip install scikit-learn
|
For additional installation instructions specific to your platform, see:
- Installing scikit-learn
Next, let’s confirm that the library is installed and you are using a modern version.,
Spusťte následující skript pro tisk čísla verze knihovny.,
1
2
3
|
# zkontrolujte, scikit-learn verze
import sklearn
print(sklearn.,__verze__)
|
spuštění příkladu, měli byste vidět následující číslo verze nebo vyšší.
1
|
0.22.,1
|
Clustering datového souboru
Budeme používat make_classification() funkce pro vytvoření testu binární klasifikace datové sady.
datový soubor bude mít 1000 příkladů se dvěma vstupními funkcemi a jedním clusterem na třídu. Klastry jsou vizuálně zřejmé, ve dvou rozměrech, takže můžeme vykreslit data s scatter plot a barevné body v grafu pomocí přiděleného clusteru. To pomůže vidět, alespoň na testovacím problému, jak „dobře“ byly identifikovány klastry.,
klastry v tomto testu problém jsou založeny na vícerozměrné Gaussovo, a ne všechny clustering algoritmy budou účinné při identifikaci těchto typů klastrů. Výsledky v tomto tutoriálu by proto neměly být používány jako základ pro srovnání metod obecně.
níže je uveden příklad vytváření a shrnutí syntetického souboru shlukování dat.
spuštění příkladu vytvoří syntetický soubor dat clustering a poté vytvoří rozptylový graf vstupních dat s body barevnými štítkem třídy (idealizované klastry).,
můžeme jasně vidět dvě odlišné skupiny dat ve dvou rozměrech a doufáme, že algoritmus automatického shlukování dokáže detekovat tato seskupení.
Bodový graf Syntetických Clustering Dataset S Body Barevné Známý Clusteru
Next, můžeme se začít dívat na příklady clustering algoritmů k tomuto souboru údajů.
udělal jsem několik minimálních pokusů naladit každou metodu na datový soubor.
můžete získat lepší výsledek pro jeden z algoritmů?
Dejte mi vědět v komentářích níže.,
šíření afinity
šíření Affinity zahrnuje nalezení souboru příkladů, které nejlépe shrnují data.
vymysleli jsme metodu nazvanou „affinity propagation“, která bere jako vstupní opatření podobnosti mezi páry datových bodů. Skutečný-oceněný zprávy jsou vyměňovány mezi body dat do vysoce kvalitní sadu vzorků a odpovídající shluky se postupně vynořuje
— Shlukování tím, že Předávání Zpráv Mezi datovými Body, 2007.,
technika je popsána v článku:
- shlukování předáváním zpráv mezi datovými body, 2007.
je implementován prostřednictvím třídy AffinityPropagation a hlavní konfigurací pro ladění je sada“ tlumení „mezi 0,5 a 1 a možná „preference“.“
úplný příklad je uveden níže.
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě jsem nemohl dosáhnout dobrého výsledku.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí Afinity Šíření
Agglomerative Clustering
Agglomerative clustering zahrnuje sloučení příklady, dokud požadovaný počet shluků je dosaženo.
To je součástí širší třídy hierarchické metody shlukování a více se můžete dozvědět zde:
- Hierarchické shlukování, Wikipedia.,
je implementován pomocí třídy Aglomerativeclustering a hlavní konfigurací pro ladění je sada „n_clusters“, odhad počtu klastrů v datech, např. 2.
úplný příklad je uveden níže.
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě je nalezeno rozumné seskupení.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí Agglomerative Clustering
BŘEZOVÁ
BŘÍZA Clustering (BŘÍZA je zkratka pro Vyvážený Opakující Snižování a slučování pomocí
Hierarchie) zahrnuje vytváření stromové struktury, ze které clusteru centroidy jsou extrahovány.
BIRCH postupně a dynamicky shlukuje příchozí vícerozměrné metrické datové body, aby se pokusili vytvořit nejkvalitnější shlukování s dostupnými zdroji (tj.,, dostupné paměti a časové omezení).
– BIRCH: efektivní metoda shlukování dat pro velké databáze, 1996.
technika je popsána v článku:
- BIRCH: efektivní metoda shlukování dat pro velké databáze, 1996.
je implementován prostřednictvím třídy Birch a hlavní konfigurací pro ladění je hyperparametry“ práh „a“ n_clusters“, z nichž poslední poskytuje odhad počtu klastrů.
úplný příklad je uveden níže.,
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě je nalezeno vynikající seskupení.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí BŘEZOVÉ Clustering
DBSCAN
DBSCAN Clustering (kde DBSCAN je zkratka pro Density-Based Spatial Clustering of Applications with Noise) zahrnuje nalezení oblasti s vysokou hustotou v doméně a rozšiřuje tyto oblasti funkce prostor kolem nich jako shluky.
… představujeme nový clustering algoritmus DBSCAN spoléhat na hustotě na bázi pojem klastry, který je navržen tak, aby objevovat shluky libovolného tvaru., DBSCAN vyžaduje pouze jeden vstupní parametr, a podporuje uživatele v určení vhodné hodnoty pro to,
— Density-Based Algoritmus pro Objevování Shluků ve Velkých Prostorových Databází s Hlukem, 1996.
technika je popsána v článku:
- algoritmus založený na hustotě pro objevování klastrů ve velkých prostorových databázích s šumem, 1996.
je implementován prostřednictvím třídy DBSCAN a hlavní konfigurací pro ladění jsou hyperparametry“ eps“ a „min_samples“.
úplný příklad je uveden níže.,
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě je nalezeno rozumné seskupení, i když je zapotřebí více ladění.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí DBSCAN Clustering
K-means
K-means Clustering může být nejvíce široce známý clustering algoritmus a zahrnuje přiřazení příklady klastrů ve snaze minimalizovat rozptyl v rámci každého clusteru.
hlavním účelem tohoto článku je popsat proces rozdělení n-dimenzionální populace na sady k na základě vzorku., Proces, který se nazývá ‚k-means,‘ zdá se, dát oddíly, které jsou poměrně efektivní v tom smyslu, v-class rozptylu.
– některé metody klasifikace a analýzy vícerozměrných pozorování, 1967.
technika je popsána zde:
- k-znamená shlukování, Wikipedie.
je implementován prostřednictvím třídy KMeans a hlavní konfigurací pro ladění je hyperparametr „n_clusters“ nastavený na odhadovaný počet klastrů v datech.
úplný příklad je uveden níže.,
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě je nalezeno rozumné seskupení, ačkoli nerovný stejný rozptyl v každé dimenzi činí metodu méně vhodnou pro tento datový soubor.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí K-means Clustering
Mini-Batch K-means
Mini-Batch K-means je upravená verze k-znamená, že je aktualizace clusteru centroidy pomocí mini-šarží vzorků, spíše než celý dataset, který může dělat to rychlejší pro velké soubory dat, a možná více robustní statistický šum.
… navrhujeme použití mini-dávkové optimalizace pro K-znamená shlukování., To snižuje výpočetní náklady o řády ve srovnání s klasickým dávkovým algoritmem a zároveň přináší výrazně lepší řešení než Online stochastický gradientový sestup.
– Web-Scale K-znamená Clustering, 2010.
technika je popsána v článku:
- Web-Scale K-Means Clustering, 2010.
je implementován prostřednictvím třídy MiniBatchKMeans a hlavní konfigurací pro ladění je hyperparametr „n_clusters“ nastavený na odhadovaný počet klastrů v datech.
úplný příklad je uveden níže.,
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě je nalezen výsledek ekvivalentní standardnímu algoritmu k-means.
Bodový graf z Dataset S Klastry Identifikovány Pomocí Mini-Batch K-means Clustering
Shift
shift clustering zahrnuje hledání a přizpůsobení centroidy na základě hustota příklady na funkci prostoru.,
prokázat pro diskrétní data konvergence rekurzivní znamenat posun postup na nejbližší stacionární bod základní funkce hustoty, a tak jeho užitečnost při detekci režimy hustoty.
– Střední posun: robustní přístup k analýze prostoru funkcí, 2002.
technika je popsána v článku:
- Střední posun: robustní přístup k analýze prostoru funkcí, 2002.
je implementován pomocí třídy MeanShift a hlavní konfigurací pro ladění je hyperparametr „šířka pásma“.,
úplný příklad je uveden níže.
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě se v datech nachází rozumná sada klastrů.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí Mean Shift Clustering
OPTIKA
OPTIKA clustering (kde OPTIKA je zkratka pro Objednání Bodů K Identifikaci Clusterů Struktura) je upravená verze DBSCAN je popsáno výše.
představujeme nový algoritmus pro účel shlukové analýzy, která neprodukuje seskupení dat nastavena explicitně, ale místo toho vytváří rozšířené řazení databáze, zastupující jeho density-based clustering struktury., Tento cluster-ordering obsahuje informace, které je ekvivalentní k hustotě založené shluky odpovídající širokému spektru nastavení parametrů.
— optika: pořadí bodů pro identifikaci struktury shlukování, 1999.
technika je popsána v článku:
- optika: pořadí bodů pro identifikaci struktury shlukování, 1999.
je implementován pomocí třídy optiky a hlavní konfigurací pro ladění jsou hyperparametry“ eps“ a „min_samples“.
úplný příklad je uveden níže.,
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě jsem na tomto datovém souboru nemohl dosáhnout rozumného výsledku.
Bodový graf z Dataset S Klastry Identifikovány Pomocí OPTIKY, Clustering
Spectral Clustering
Spektrální Shlukování je obecná třída clustering metody, vycházející z lineární algebry.,
slibnou alternativou, která se nedávno objevila v řadě polí, je použití spektrálních metod pro shlukování. Zde se používají horní eigenvektory matice odvozené od vzdálenosti mezi body.
– on Spectral Clustering: Analysis and an algorithm, 2002.
technika je popsána v článku:
- o spektrálním shlukování: analýza a algoritmus, 2002.,
je implementován pomocí spektrální třídy a hlavní spektrální shlukování je obecná třída clusteringových metod, čerpaných z lineární algebry. naladit je hyperparametr „n_clusters“ používaný k určení odhadovaného počtu klastrů v datech.
úplný příklad je uveden níže.
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě byly nalezeny rozumné shluky.,
Bodový graf z Dataset S Klastry Identifikovány Pomocí Spekter Clustering Clustering
Gaussian Mixture Model
Gaussian mixture model shrnuje a vícerozměrné funkce hustoty pravděpodobnosti se směsí Gaussových rozdělení pravděpodobnosti jako jeho název napovídá.
pro více informací o modelu viz:
- model směsi, Wikipedia.,
je implementován prostřednictvím třídy GaussianMixture a hlavní konfigurací pro ladění je hyperparametr „n_clusters“ používaný k určení odhadovaného počtu klastrů v datech.
úplný příklad je uveden níže.
spuštění příkladu odpovídá modelu na datovém souboru školení a předpovídá cluster pro každý příklad v datovém souboru. Rozptylový graf je pak vytvořen s body zbarvenými jejich přiřazeným klastrem.
v tomto případě vidíme, že klastry byly dokonale identifikovány., To není překvapující vzhledem k tomu, že dataset byl vytvořen jako směs Gaussians.
Bodový graf z Dataset S Klastry Identifikovány Pomocí Gaussovské Směsi Clustering
Další Čtení
Tento oddíl poskytuje více prostředků na toto téma, pokud máte zájem jít hlouběji.
- shlukování předáváním zpráv mezi datovými body, 2007.
- BIRCH: efektivní metoda shlukování dat pro velké databáze, 1996.,
- algoritmus založený na hustotě pro objevování klastrů ve velkých prostorových databázích s šumem, 1996.
- některé metody klasifikace a analýzy vícerozměrných pozorování, 1967.
- web-Scale K-znamená shlukování, 2010.
- Střední posun: robustní přístup k analýze prostoru funkcí, 2002.
- na spektrální shlukování: analýza a algoritmus, 2002.
knihy
- dolování dat: praktické nástroje a techniky strojového učení, 2016.
- prvky statistického učení: dolování dat, Inference a predikce, 2016.,
- strojové učení: pravděpodobnostní perspektiva, 2012.
API
- Clustering, scikit-learn API.
- sklearn.sad.make_classification API.
- sklearn.cluster API.
články
- Cluster analysis, Wikipedia.
- hierarchické shlukování, Wikipedia.
- k-znamená shlukování, Wikipedie.
- model směsi, Wikipedia.
shrnutí
v tomto tutoriálu jste zjistili, jak se vešly a používat špičkové clusteringové algoritmy v Pythonu.,
konkrétně jste se dozvěděli:
- Clustering je problém bez dozoru při hledání přirozených skupin ve funkčním prostoru vstupních dat.
- existuje mnoho různých clusteringových algoritmů a žádná nejlepší metoda pro všechny datové sady.
- jak implementovat, přizpůsobit a používat špičkové algoritmy Shlukování v Pythonu pomocí knihovny strojového učení scikit-learn.
máte nějaké dotazy?
Ptejte se v komentářích níže a já se budu snažit odpovědět.
Objevte rychlé strojové učení v Pythonu!,
Vytvořte si vlastní modely během několika minut
…s jen pár řádků scikit-learn kód,
Učit se, jak můj nový Ebook:
Pratelné Učení, Zvládnutí S Python
Zahrnuje self-studium cvičení a end-to-end projektů, jako jsou:
Načítání dat, vizualizace, modelování, ladění, a mnohem více…
konečně přinést strojové učení
své vlastní projekty
přeskočit akademiky. Jen Výsledky.
podívejte se, co je uvnitř