CodeBlanks Logo Icon CodeBlanks

Özet - KMeans

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_init birden ç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_state tekrarlanabilirlik 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

model.py
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

model.py
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.

Soru
mb = ____(n_clusters=5, batch_size=256)
Cevap
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

Orta seviye bölümündeki tüm dersler