Skalakan Sebelum Pengelompokan
Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 9 dari 51.
K-means mengelompokkan berdasarkan jarak, jadi satuan yang lebih besar mendominasi. Kucing di penampungan berdasarkan berat dalam gram dan usia dalam tahun: selisih 500 g lebih mendominasi daripada selisih 10 tahun.
Lakukan standardisasi terlebih dahulu, seperti pada k-NN, agar setiap fitur dihitung dengan bobot yang sama:
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(...)) melakukan keduanya dalam satu model. Lalu, baca setiap kelompok dalam satuan nyata: hitung rata-rata baris aslinya, X[km.labels_ == c].mean(axis=0).
Tantangan
MudahAplikasi pencarian apartemen mengelompokkan 100 listing berdasarkan harga sewa dan jarak ke stasiun. Kode awal mengelompokkan kolom mentah, dan semua kelompoknya berada sekitar 3 km dari stasiun: nilai dolar mendominasi nilai kilometer.
- Skalakan kedua kolom dengan
StandardScaler. - Kelompokkan baris yang sudah diskalakan. Pertahankan laporan: laporan itu membaca setiap kelompok dalam satuan sebenarnya.
Untuk kota lain:
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 outCoba sendiri
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# Satu baris untuk tiap apartemen: sewa bulanan dalam dolar, jarak ke stasiun dalam km
flats = pd.read_csv("flats.csv")
X = flats[["rent", "station_km"]]
# Ini mengelompokkan kolom mentah: perbaiki
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X)
# Tampilkan tiap kelompok dalam satuan sebenarnya, mulai dari yang terbesar
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")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Tanpa Pengawasan
1Menemukan Kelompok
Belajar Tanpa LabelMengukur KemiripanK-Means secara ManualK-Means dengan scikit-learnRangkuman: Anggota Gym4Pengelompokan Hierarkis
Penggabungan Langkah demi LangkahModel AglomeratifDendrogramRingkasan: Ras Anjing7PCA dalam Praktik
Melihat 64 DimensiKomponen sebagai PolaKompres dan RekonstruksiPCA Sebelum ModelRangkuman: Pemindai Wajah10Proyek: Penjelajah Digit
Amati DigitnyaPerkecil dengan PCAKelompokkan DigitBeri Nama pada KelompokTemukan yang Tidak BiasaLatihan sendiri: Compiler Python online