K-Means könyökmódszer és sziluettelemzés Yellowbrick és Scikit-Learn PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

K-Means könyökmódszer és sziluettelemzés Yellowbrick és Scikit-Learn segítségével

Bevezetés

A K-Means az egyik legnépszerűbb klaszterező algoritmus. Azáltal, hogy egy klaszter központi pontjai vannak, a többi pontot csoportosítja a központi ponttól való távolságuk alapján.

A K-Means hátránya, hogy meg kell választani a klaszterek számát, K, mielőtt futtatná a pontokat csoportosító algoritmust.

Ha el szeretne olvasni egy részletes útmutatót a K-Means Clusteringről, tekintse meg „K-Means Clustering with Scikit-Learn”.

Könyök módszer és sziluett elemzés

A leggyakrabban használt technikák a K számának megválasztására a Könyök módszer és a Sziluett elemzés.

A Ks kiválasztásának megkönnyítésére a Sárga tégla könyvtár a kódot for ciklusokkal és egy plottal zárja be, amelyet általában 4 kódsorra írunk.

A Yellowbrick közvetlenül Jupyter notebookról történő telepítéséhez futtassa a következőt:

! pip install yellowbrick

Nézzük meg, hogyan működik egy ismerős adatkészletnél, amely már része a Scikit-learnnek, a Írisz adatkészlet.

Az első lépés az adatkészlet importálása, KMeans és a yellowbrick könyvtárakat, és töltse be az adatokat:

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from yellowbrick.cluster import KElbowVisualizer, SilhouetteVisualizer

iris = load_iris()

Figyeljük meg, mi importáljuk a KElbowVisualizer és a SilhouetteVisualizer ból ből yellowbrick.cluster, ezeket a modulokat fogjuk használni a Könyök és Sziluett eredmények megjelenítéséhez!

Az adatkészlet betöltése után a data a csomó kulcsa (egy szótár kiterjesztése az adattípus) azok a pontok értékei, amelyeket klaszterezni szeretnénk. Ha tudni szeretné, mit jelentenek a számok, nézze meg iris['feature_names'].

Ismeretes, hogy az Iris adatkészlet háromféle íriszből áll: „versicolor”, „virginica” és „setosa”. Megtekintheti az osztályokat is iris['target_names'] hitelesíteni.

Tehát 4 szolgáltatásunk van a klaszterbe, és ezeket 3 különböző klaszterbe kell szétválasztani a már ismert tudásunk szerint. Lássuk, a könyök módszerrel és a sziluettanalízissel elért eredményeink megerősítik-e ezt.

Először kiválasztjuk a jellemző értékeit:

print(iris['feature_names']) 
print(iris['target_names']) 

X = iris['data']

Ezután létrehozhatunk a KMeans modell, a KElbowVisualizer() példány, amely megkapja azt a modellt a ks számmal együtt, amelyhez a metrika számít, ebben az esetben 2 a 11 Ks.

Ezt követően illesztjük a megjelenítőt a felhasznált adatokkal fit() és jelenítse meg a cselekményt a show(). Ha egy metrika nincs megadva, a megjelenítő a elferdítés metrika, amely kiszámítja az egyes pontok és a hozzárendelt középpontok közötti távolság négyzetének összegét:

model = KMeans(random_state=42)

elb_visualizer = KElbowVisualizer(model, k=(2,11))
elb_visualizer.fit(X)    
elb_visualizer.show()  

Most már van egy Torzítási pontszám könyök a KMeans klaszterezéshez olyan függőleges vonallal jelölje meg a telket, amely ebben az esetben a legjobb számú ks lenne, 4.

Úgy tűnik, a torzítási mérőszámmal rendelkező könyökmódszer nem volt a legjobb választás, ha nem ismerjük a klaszterek tényleges számát. A Silhouette azt is jelzi, hogy 4 klaszter van? Ennek megválaszolásához csak meg kell ismételnünk az utolsó kódot egy 4 klaszteres modellel és egy másik megjelenítő objektummal:

model_4clust = KMeans(n_clusters = 4, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_4clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

A k sziluett pontszáma a könyök módszerrel végzett klasztert jelenti

A kód megjeleníti a A KMeans klaszterezés sziluettje 150 mintához 4 központban. A klaszterek elemzéséhez meg kell néznünk a sziluett együttható (vagy pontszám) értékét, amelynek legjobb értéke közelebb van az 1-hez. 0.5, amelyet a függőleges vonal jelöl, és nem olyan jó.

Meg kell vizsgálnunk a klaszterek közötti eloszlást is – egy jó telken hasonló méretű klaszteresített területek vagy jól elosztott pontok vannak. Ezen a grafikonon 3 kisebb klaszter (3-as, 2-es, 1-es) és egy nagyobb (0-s) klaszter található, ami nem az az eredmény, amit vártunk.

Tekintse meg gyakorlatias, gyakorlati útmutatónkat a Git tanulásához, amely tartalmazza a bevált gyakorlatokat, az iparág által elfogadott szabványokat és a mellékelt csalólapot. Hagyd abba a guglizást a Git parancsokkal, és valójában tanulni meg!

Ismételjük meg ugyanazt a diagramot 3 klaszterre, hogy lássuk, mi történik:

model_3clust = KMeans(n_clusters = 3, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_3clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

sziluett a kmeans klaszterekhez

A klaszterek számának változtatásával a sziluett pontszámot kaptuk 0.05 magasabb és a klaszterek kiegyensúlyozottabbak. Ha nem ismernénk a klaszterek tényleges számát, mindkét technikát kísérletezve és kombinálva választottuk volna 3 helyett 2 mint a Ks száma.

Ez egy példa arra, hogy a különböző mérőszámok kombinálása és összehasonlítása, az adatok vizualizálása és a klaszterek különböző értékeivel való kísérletezés milyen fontos ahhoz, hogy az eredményt a megfelelő irányba tereljük. És azt is, hogyan segíthet ebben a folyamatban egy könyvtár, amely megkönnyíti az elemzést!

Időbélyeg:

Még több Stackabus