CodeBlanks Logo Icon CodeBlanks

inertia_

inertia_, kümeler içi toplam kare mesafeyi verir.

inertia_

inertia_, örneklerin atandıkları merkeze kare mesafelerinin toplamıdır. Küçük olması kümelerin sıkı olduğunu gösterir ama tek başına kaliteyi ölçmez: k arttıkça her zaman azalır ve verinin ölçeğine bağlıdır.

km = KMeans(n_clusters=5, n_init=10, random_state=0).fit(X)
d = km.transform(X).min(axis=1)
print(np.isclose((d ** 2).sum(), km.inertia_))   # True

score(X) aynı değerin negatifini döndürür; scikit-learn'ün "büyük daha iyi" kuralına uyum içindir.

Diğer iç ölçütler

Ölçeğe bağımlılığı azaltan iç ölçütler de vardır:

from sklearn.metrics import calinski_harabasz_score, davies_bouldin_score
print(calinski_harabasz_score(X, km.labels_))   # büyük daha iyi
print(davies_bouldin_score(X, km.labels_))      # küçük daha iyi

Calinski-Harabasz kümeler arası ile küme içi yayılımın oranıdır; Davies-Bouldin her kümenin en benzer kümeye ortalama benzerliğidir. Siluetle birlikte k seçiminde kullanılırlar.

Uygulama Inertia doğrulaması

KMeans (5 küme) eğit. km.transform(X).min(axis=1) mesafelerinin kareleri toplamının inertia_'a eşit olduğunu np.isclose ile, ardından km.score(X)'un -inertia_ olduğunu np.isclose ile alt alta 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)

# 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)

km = KMeans(n_clusters=5, n_init=10, random_state=0).fit(X)
d = km.transform(X).min(axis=1)
print(np.isclose((d ** 2).sum(), km.inertia_))
print(np.isclose(km.score(X), -km.inertia_))

Beklenen çıktı

True
True

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Veri 10 ile çarpılırsa (her özellik) inertia nasıl değişir?

  • 10 katına çıkar
  • Değişmez
  • Azalır
  • 100 katına çıkar Doğru cevap

Açıklama: Mesafeler 10 kat, kare mesafeler 100 kat büyür.

2 Küçüğü iyi olan iç ölçütü hesapla.

Soru
db = ____(X, km.labels_)
Cevap
db = davies_bouldin_score(X, km.labels_)

Açıklama: Davies-Bouldin 0'a yaklaştıkça kümeler daha iyi ayrılmıştır.

3 Ölçütleri yönleriyle eşleştir.

Kavram Anlamı
inertia_ Küçük daha sıkı
silhouette_score Büyük daha iyi (≤1)
calinski_harabasz_score Büyük daha iyi
davies_bouldin_score Küçük daha iyi

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