Özet - KMeans
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 58/112
- 6 dk
Bu grupta KMeans parametrelerini ve özelliklerini öğrendin.
Özet: KMeans
Bu grupta:
- Lloyd algoritması: atama + güncelleme; inertia hiç artmaz ama yerel en iyide takılabilir.
- k-means++ merkezleri yayarak başlatır;
n_initbirden çok başlangıçtan en iyisini seçer. inertia_ölçeğe bağlıdır ve k ile hep azalır; siluet, Calinski-Harabasz, Davies-Bouldin tamamlar.random_statetekrarlanabilirlik sağlar; tohumlar arası ARI kararlılığı ölçer.- Büyük veride
MiniBatchKMeans.
Uygulama KMeans ve MiniBatch
Aynı veride KMeans(n_clusters=5, n_init=10, random_state=0) ve MiniBatchKMeans(n_clusters=5, batch_size=100, n_init=3, random_state=0) eğit. İki inertia'yı round ile tam sayı olarak aynı satırda, ardından iki etiketlemenin ARI'sini round(..., 3) ile yazdır.
Başlangıç kodu
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
X, _ = make_blobs(n_samples=500, centers=5, cluster_std=1.0, random_state=3)
from sklearn.cluster import MiniBatchKMeans
from sklearn.metrics import adjusted_rand_score
# buraya yazÖrnek çözüm
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
X, _ = make_blobs(n_samples=500, centers=5, cluster_std=1.0, random_state=3)
from sklearn.cluster import MiniBatchKMeans
from sklearn.metrics import adjusted_rand_score
km = KMeans(n_clusters=5, n_init=10, random_state=0).fit(X)
mb = MiniBatchKMeans(n_clusters=5, batch_size=100, n_init=3, random_state=0).fit(X)
print(round(km.inertia_), round(mb.inertia_))
print(round(adjusted_rand_score(km.labels_, mb.labels_), 3))Beklenen çıktı
1000 1002 1.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 KMeans sonuçları tohumdan tohuma çok değişiyorsa ilk ne denenmelidir?
- random_state'i silmek
- n_init'i artırmak ve k'yı gözden geçirmek Doğru cevap
- max_iter'i 1 yapmak
- Ölçeklemeyi kaldırmak
Açıklama: Daha çok başlangıç yerel en iyileri azaltır; kararsızlık yanlış k'ya da işaret edebilir.
2 Büyük veri için parçalı KMeans kullan.
mb = ____(n_clusters=5, batch_size=256)
mb = MiniBatchKMeans(n_clusters=5, batch_size=256)
Açıklama: MiniBatchKMeans her turda yalnızca bir parça veri kullanır.
3 Kavramları eşleştir.
| Kavram | Anlamı |
|---|---|
Lloyd |
Atama ve güncelleme |
k-means++ |
Yayılmış başlangıç |
n_init |
En iyi başlangıç seçimi |
ARI tohumlar arası |
Kararlılık |