Elbow yöntemi
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 50/112
- 5 dk
Elbow yöntemi, en uygun k değerini bulmak için kullanılır.
Elbow yöntemi
KMeans'in küme sayısını kendisi bulamaz. Elbow yöntemi farklı k değerleri için toplam kare mesafeyi (inertia_) çizer. k arttıkça inertia hep düşer; düşüşün belirgin yavaşladığı "dirsek" noktası makul bir k'dır:
for k in range(1, 8):
km = KMeans(n_clusters=k, n_init=10, random_state=0).fit(X)
print(k, round(km.inertia_))Dirsek her zaman net değildir; bu durumda siluet skoru gibi ek ölçütlere bakılır.
Siluet skoru
Siluet skoru her örnek için "kendi kümesine ne kadar yakın, en yakın komşu kümeye ne kadar uzak" sorusunu -1 ile 1 arasında ölçer. Ortalaması en yüksek olan k tercih edilir:
from sklearn.metrics import silhouette_score
for k in range(2, 7):
etiket = KMeans(n_clusters=k, n_init=10, random_state=0).fit_predict(X)
print(k, round(silhouette_score(X, etiket), 3))Siluet en az 2 küme ister; 1'e yakın değerler iyi ayrılmış, 0 civarı örtüşen kümeleri gösterir.
Uygulama En iyi k
k = 2-6 için KMeans(n_clusters=k, n_init=10, random_state=0) eğit. Her satırda k'yı, inertia_ değerini (round ile tam sayı) ve siluet skorunu round(..., 3) ile yazdır.
Başlangıç kodu
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
X, y_gercek = make_blobs(n_samples=300, centers=4, cluster_std=0.8, random_state=0)
from sklearn.metrics import silhouette_score
# buraya yazÖrnek çözüm
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
X, y_gercek = make_blobs(n_samples=300, centers=4, cluster_std=0.8, random_state=0)
from sklearn.metrics import silhouette_score
for k in range(2, 7):
km = KMeans(n_clusters=k, n_init=10, random_state=0).fit(X)
print(k, round(km.inertia_), round(silhouette_score(X, km.labels_), 3))Beklenen çıktı
2 1349 0.496 3 709 0.515 4 370 0.58 5 326 0.503 6 292 0.43
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Neden en küçük inertia'yı veren k seçilmez?
- Inertia artar
- Seçilir
- k = örnek sayısında inertia 0 olur; anlamsızdır Doğru cevap
- Hesaplanamaz
Açıklama: Her örnek kendi kümesi olursa mesafeler sıfırdır ama hiçbir şey öğrenilmemiştir.
2 Ortalama siluet skorunu hesapla.
s = ____(X, etiket)
s = silhouette_score(X, etiket)
Açıklama: silhouette_score veri ve etiketleri alır.
3 Ölçütleri eşleştir.
| Kavram | Anlamı |
|---|---|
inertia_ |
Kare mesafe toplamı |
dirsek |
Düşüşün yavaşladığı yer |
siluet ≈ 1 |
İyi ayrılmış kümeler |
siluet ≈ 0 |
Örtüşen kümeler |