Inercja
Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 6 z 51.
Ten rozdział dotyczy wyboru k. Po jego ukończeniu wybierzesz je dla dostaw piekarni i podzielisz strefy:
Najpierw wynik. Inercja sumuje kwadraty odległości każdego punktu od jego własnego środka: jest mała, gdy punkty znajdują się blisko swoich środków.
KMeans przechowuje ją w inertia_. Dla 180 jabłek:
for k in [1, 2, 3, 4]:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(X)
print(k, round(km.inertia_))To wyświetla:
1 1718
2 752
3 230
4 196Więcej centrów, krótsze ramiona: inercja zawsze maleje wraz ze wzrostem k. Przy jednym centrum na punkt wynosi 0, więc najmniejsza wartość nie jest najlepsza.
Wyzwanie
ŁatwyZakład pakujący wyroby ceramiczne umieszcza wazony w pudełkach o kilku rozmiarach. Każdy wazon trafia do najbliższego rozmiarem pudełka; inercja mierzy, jak źle są dopasowane. Program odczytuje budget — największe niedopasowanie, które zakład akceptuje.
- Wypróbuj kolejno k = 1, 2, 3 itd.: dopasuj KMeans do
vasesi wypisz inercję dla każdego k, zaokrągloną do liczby całkowitej. - Zatrzymaj się przy pierwszym k, którego inercja mieści się w budżecie, i wypisz je.
Dla innego zakładu:
k = 1, inertia 15120
k = 2, inertia 4811
k = 3, inertia 1290
Box sizes needed: 3Spróbuj swoich sił
import numpy as np
from sklearn.cluster import KMeans
# Nie zmieniaj poniższych wierszy
rng = np.random.default_rng(8)
# Cztery rodzaje wazonów: typowa wysokość i szerokość w cm oraz liczba wazonów każdego rodzaju
kinds = [(15, 8, 25), (38, 13, 25), (22, 22, 20), (58, 26, 10)]
parts = []
for h, w, n in kinds:
parts.append(np.column_stack([rng.normal(h, 2.5, n), rng.normal(w, 2, n)]))
# 80 wazonów, po jednym w każdym wierszu: wysokość i szerokość w cm
vases = np.round(np.concatenate(parts), 1)
# Największe niedopasowanie, mierzone jako inercja, jakie akceptuje pracownia garncarska
budget = int(input())
# 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