AI Atlas
Başlangıç· ~2 dk okuma#k-means#clustering#unsupervised

K-means

K-ortalama Kümeleme

Veriyi önceden belirlenen K kümeye ayırırken her örneği en yakın küme merkezine atayan, hızlı ve basit kümeleme algoritması.

K-MEANSmerkezmerkezmerkezK merkez, en yakın atama, ortalama; tekrar et.
Tanım

K-means, kümelemede en yaygın kullanılan algoritmadır. K (küme sayısı) sen tarafından verilir. Algoritma rastgele K nokta seçerek başlar, her örneği en yakın merkeze atar, sonra her kümenin ortalamasını alarak merkezleri güncelle, tekrar atama yap, tekrar ortalama al — merkezler artık değişmeyene kadar devam et. Bu iteratif yaklaşıma Lloyd algoritması denir.

Modelin içsel olarak optimize ettiği şey, her örneğin kendi küme merkezine olan kareli uzaklık toplamıdır (within-cluster sum of squares · WCSS). Bu, kürelerin "yuvarlak" olduğu varsayımıdır; uzun, ince kümeler için yetersiz kalır. Onun için yoğunluk tabanlı (DBSCAN) ya da hiyerarşik alternatifler vardır.

K-means başlangıç noktasına bağımlıdır; farklı başlangıçlar farklı sonuçlar verir. Pratikte K-means++ başlangıcı (uzak merkezleri seçen tekniği) ve n_init ile birden fazla deneme çalıştırıp en iyiyi seçmek standartlaşmıştır.

Benzetme

Yeni bir şehre taşındın ve K=4 yeni kafeterya açmak istiyorsun. Önce dört adresi rastgele seçiyorsun, sonra her müşteri en yakın kafeteryaya gidiyor. Sonra her kafeteryanın yerini, müşterilerinin coğrafi ortalamasına çekiyorsun. Müşteriler tekrar dağılıyor, sen tekrar merkezi taşıyorsun. Birkaç turda kafeteryalar artık yer değiştirmez hâle geliyor — şehir doğru bir şekilde 4 hizmet bölgesine ayrılmış oldu. K-means tam olarak bu mantıkla çalışır.

Gerçek dünyadan örnek

Bir e-ticaret şirketi RFM analizi yapıyor: Recency (son alışveriş tarihi), Frequency (yıllık alışveriş sayısı), Monetary (yıllık harcama). 3 boyutlu bir uzayda 1.5 milyon müşteri noktası var. Pazarlama "5 segmente ayır" diyor.

K-means K=5 ile çalıştırılıyor; sonuçlar incelendiğinde: - Şampiyonlar: son 30 gün, sık, yüksek tutarlı → en az dokunul - Sadık: orta sıklık, orta tutar → bağlılık programı - Risk altında: son alışveriş 90+ gün önce → win-back kampanyası - Yeni: geçen hafta katılmış → karşılama serisi - Uyuyan: 1+ yıldır gelmemiş → düşük efor reaktivasyon

Etiketleme yoktu; algoritma yapıyı çıkardı, pazarlama isim koydu.

Kod örnekleri
scikit-learn · K seçimi ve görselleştirmePython
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score
import numpy as np

X_scaled = StandardScaler().fit_transform(X)

# Elbow + silhouette ile doğru K'yi seç
results = []
for k in range(2, 11):
    km = KMeans(n_clusters=k, n_init=10, random_state=42)
    labels = km.fit_predict(X_scaled)
    results.append({
        "k": k,
        "inertia": km.inertia_,                          # WCSS
        "silhouette": silhouette_score(X_scaled, labels),
    })

for r in results:
    print(f"K={r['k']:2d}  inertia={r['inertia']:.0f}  silhouette={r['silhouette']:.3f}")

# En iyi K'yi seç ve final modeli eğit
best_k = max(results, key=lambda r: r["silhouette"])["k"]
final = KMeans(n_clusters=best_k, n_init=10, random_state=42).fit(X_scaled)
Ne zaman kullan
  • Doğru K hakkında iş bağlamından öngörü varsa
  • Kümeler küresel ve yaklaşık eşit boyutluysa
  • Hız kritik ve veri büyükse — K-means en hızlı kümeleme algoritmalarından
  • Sürekli yeniden çalışan, hızlı sonuç gerektiren senaryolar
Ne zaman kullanma
  • Kümelerin şekli düzensiz ya da yoğunlukları çok farklıysa — DBSCAN tercih et
  • Aykırı değerler kümelemeyi bozarsa — K-means onları kümelere dahil etmeye çalışır
  • K önceden bilinmiyorsa ve verinin doğru K'yi söylemesini istiyorsan — DBSCAN, HDBSCAN düşün
Sık yapılan hatalar

Ölçeklemeyi atlamak

Bir özellik 0–1, diğeri 0–1.000.000 ise tek özellik kümelemeyi belirler. StandardScaler her zaman.

Tek seferlik fit

K-means rastgele başlangıca duyarlıdır. n_init=10 (varsayılan değişebilir) ile birden çok başlangıç dene, en iyiyi seç.

K'yi göz kararı seçmek

K=5 'iyi sayı' diye seçmek anlamsız. Elbow grafiği, silhouette skoru, gap statistic gibi araçlarla iş bağlamına en uyan K'yi bul.