Skalowanie przed klasteryzacją
Część sekcji Uczenie nienadzorowane ścieżki Machine Learning w Coddy. Lekcja 9 z 51.
K-means grupuje według odległości, więc największe jednostki dominują. Waga kotów ze schroniska w gramach, a wiek w latach: różnica 500 g przyćmiewa różnicę 10 lat.
Najpierw standaryzuj, tak jak w przypadku k-NN, aby każda cecha miała taki sam wpływ:
X_scaled = StandardScaler().fit_transform(X)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X_scaled)make_pipeline(StandardScaler(), KMeans(...)) wykonuje obie czynności w jednym modelu. Następnie odczytaj każdą grupę w oryginalnych jednostkach: oblicz średnią z jej oryginalnych wierszy, X[km.labels_ == c].mean(axis=0).
Wyzwanie
ŁatwyAplikacja do wyszukiwania mieszkań grupuje 100 ogłoszeń według czynszu i odległości od stacji. Początkowa wersja grupuje surowe kolumny, a wszystkie grupy znajdują się około 3 km od stacji: dolary przyćmiewają kilometry.
- Przeskaluj obie kolumny za pomocą
StandardScaler. - Grupuj zamiast tego przeskalowane wiersze. Zachowaj raport: odczytuje on każdą grupę w rzeczywistych jednostkach.
Dla innego miasta:
38 flats: $1820 a month, 0.9 km out
33 flats: $1130 a month, 4.2 km out
29 flats: $2760 a month, 1.5 km outSpróbuj swoich sił
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# Jeden wiersz na mieszkanie: miesięczny czynsz w dolarach, odległość od stacji w km
flats = pd.read_csv("flats.csv")
X = flats[["rent", "station_km"]]
# To grupuje surowe kolumny: popraw to
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X)
# Podaj dane każdej grupy w rzeczywistych jednostkach, zaczynając od największej
sizes = pd.Series(km.labels_).value_counts()
for c in sizes.index:
group = flats[km.labels_ == c]
print(f"{sizes[c]} flats: ${round(group['rent'].mean())} a month, {group['station_km'].mean():.1f} km out")
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