Nazwij grupy
Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 46 z 51.
Klastry są oznaczone numerami, a nie nazwami. Teraz możesz użyć etykiet: tabela krzyżowa zlicza, które cyfry trafiły do poszczególnych klastrów, na przykład te jedynki, siódemki i dziewiątki w 3 klastrach:
Nazwij każdy klaster najczęściej występującą w nim cyfrą. Obrazy przedstawiające tę cyfrę w klastrze uznaj za poprawnie nazwane:
ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1) # kolumna o największej wartości w każdym wierszu
right = ct.max(axis=1).sum()
print(names.tolist(), right)To wypisuje [9, 7, 1] 496: 496 z 541 skanów nazwano poprawnie, według grup znalezionych bez ani jednej etykiety.
Wyzwanie
ŚredniNazwij swoje 10 klastrów. Kod początkowy zawiera km, dopasowane bez etykiet; teraz możesz użyć cyfr z y.
- Utwórz tabelę krzyżową klastrów względem
yi nazwij każdy klaster od najczęściej występującej w nim cyfry. - W kolejności nazw wypisz dla każdego klastra liczbę skanów poprawnie nazwanych, jego rozmiar i odsetek poprawnie nazwanych skanów, jako liczbę całkowitą procentów.
- Wypisz łączną liczbę poprawnie nazwanych skanów, a odsetek podaj z dokładnością do 1 miejsca po przecinku.
Dla 5 klastrów:
Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)Który z twoich klastrów wypada najsłabiej i co się w nim kryje?
Spróbuj swoich sił
import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# Z „Look at the Digits”: 1,797 obrazów po 64 piksele, intensywność od 0 do 16
digits = load_digits()
X = digits.data
y = digits.target
# Z „Shrink with PCA”: 80% wariancji w 13 liczbach na obraz
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# Z „Cluster the Digits”: 10 klastrów znalezionych bez etykiet
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# Napisz swój kod poniżej
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nienadzorowane
1Znajdowanie grup
Uczenie się bez etykietMierzenie podobieństwaK-Means krok po krokuK-Means w scikit-learnPodsumowanie: członkowie siłowni4Klasteryzacja hierarchiczna
Łączenie krok po krokuModele aglomeracyjneDendrogramyPodsumowanie: rasy psów7PCA w praktyce
Poznajemy 64 wymiarySkładowe jako wzorceKompresuj i odtwórzPCA przed modelemPodsumowanie: skaner twarzy10Projekt: Odkrywca cyfr
Przyjrzyj się cyfromZmniejsz wymiar za pomocą PCAGrupuj cyfryNazwij grupyZnajdź te nietypowe2Wybór k
InercjaMetoda łokciaWyniki silhouetteSkalowanie przed klasteryzacjąPodsumowanie: strefy dostawPoćwicz samodzielnie: Kompilator Python online