CodeBlanks Logo Icon CodeBlanks

Centroid

Centroid, bir kümenin merkez noktasıdır.

Merkez (centroid)

Merkez, kümenin "tipik örneğidir": kümedeki örneklerin özellik ortalaması. Segmentasyonda merkezler yorumlanarak kümelere ad verilir: "yüksek gelirli, az alışveriş yapan" gibi.

for k, m in enumerate(km.cluster_centers_):
    print(k, m.round(2))
# ölçekli veride merkezi okumak için:
print(sc.inverse_transform(km.cluster_centers_).round(0))

Ölçekli veride kümelenmişse merkezleri inverse_transform ile özgün birime çevirmek yorumu kolaylaştırır.

Merkezlere uzaklık

transform, her örneğin tüm merkezlere uzaklığını verir. En küçük uzaklık atanan kümeyi, büyük uzaklık ise kümesine bile uzak olan örnekleri (olası anomalileri) gösterir:

D = km.transform(X)            # (örnek, küme) uzaklık matrisi
en_yakin = D.min(axis=1)
print(np.argsort(en_yakin)[-3:])   # merkezine en uzak 3 örnek

Uzaklık matrisi ayrıca yeni bir özellik kümesi olarak başka bir modele de verilebilir.

Uygulama Merkez = ortalama

Eğitilmiş km için 0 numaralı kümenin örneklerinin ortalamasını X[km.labels_ == 0].mean(axis=0) ile hesapla ve cluster_centers_[0] ile aynı olduğunu np.allclose ile yazdır. Ardından merkezine en uzak örneğin indeksini km.transform(X).min(axis=1).argmax() ile yazdır.

Başlangıç kodu

model.py
import numpy as np
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)

km = KMeans(n_clusters=4, n_init=10, random_state=0).fit(X)

# buraya yaz

Örnek çözüm

model.py
import numpy as np
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)

km = KMeans(n_clusters=4, n_init=10, random_state=0).fit(X)

ort = X[km.labels_ == 0].mean(axis=0)
print(np.allclose(ort, km.cluster_centers_[0]))
print(km.transform(X).min(axis=1).argmax())

Beklenen çıktı

True
205

Soru ve cevaplar

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

1 KMeans eğitimi bittikten sonra bir merkez neye eşittir?

  • Kümedeki ilk örneğe
  • Medyana
  • Rastgele bir noktaya
  • Kümesindeki örneklerin ortalamasına Doğru cevap

Açıklama: Yakınsamada güncelleme adımı merkezi değiştirmez; merkez kümenin ortalamasıdır.

2 Her örneğin tüm merkezlere uzaklığını al.

Soru
D = km.____(X)
Cevap
D = km.transform(X)

Açıklama: KMeans.transform uzaklık matrisini döndürür.

3 İfadeleri eşleştir.

Kavram Anlamı
cluster_centers_ Merkez koordinatları
km.transform(X) Uzaklık matrisi
D.min(axis=1) Kendi merkezine uzaklık
inverse_transform Özgün birimde merkez

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