random_state
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 57/112
- 5 dk
random_state, KMeans sonuçlarını tekrarlanabilir yapar.
random_state ve tekrarlanabilirlik
KMeans'in başlatması rastgeledir; random_state verilmezse her çalıştırmada farklı merkezler ve etiket numaraları çıkabilir. Rapor ve test için tohum sabitlenmelidir:
a = KMeans(n_clusters=5, n_init=10, random_state=42).fit(X).labels_
b = KMeans(n_clusters=5, n_init=10, random_state=42).fit(X).labels_
print((a == b).all()) # TrueFarklı tohumlarla etiket numaraları değişse bile kümeler aynıysa ARI = 1 olur; bu, çözümün kararlı olduğunu gösterir.
Kararlılık testi
Bir kümelemenin güvenilir olup olmadığını anlamanın yolu, farklı tohumlar ya da verinin alt örneklemleri üzerinde tekrar çalıştırıp sonuçların ne kadar uyuştuğuna bakmaktır:
ref = KMeans(n_clusters=k, n_init=10, random_state=0).fit_predict(X)
for rs in range(1, 5):
diger = KMeans(n_clusters=k, n_init=10, random_state=rs).fit_predict(X)
print(rs, adjusted_rand_score(ref, diger))Yanlış k seçildiğinde sonuçlar tohumdan tohuma değişir; doğru k'da kararlıdır. Bu, k seçimi için ek bir ipucudur.
Uygulama Kararlılık
k = 5 ve k = 8 için, n_init=1 ile tohum 0'ın etiketlerini tohum 1-4'ün etiketleriyle ARI ile karşılaştır. Her k için ortalama ARI'yi round(..., 3) ile, k ile birlikte bir satırda yazdır.
Başlangıç kodu
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.metrics import adjusted_rand_score
# buraya yazÖrnek çözüm
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.metrics import adjusted_rand_score
for k in [5, 8]:
ref = KMeans(n_clusters=k, n_init=1, random_state=0).fit_predict(X)
ari = [adjusted_rand_score(ref, KMeans(n_clusters=k, n_init=1, random_state=rs).fit_predict(X)) for rs in range(1, 5)]
print(k, round(np.mean(ari), 3))Beklenen çıktı
5 1.0 8 0.801
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Farklı tohumlarla ARI 1 çıkıyor ama etiket dizileri farklıysa ne olmuştur?
- Hata var
- ARI yanlış hesaplandı
- Aynı kümeler bulundu, yalnızca numaralar değişti Doğru cevap
- Kümeler tamamen farklı
Açıklama: ARI numaralandırmadan bağımsızdır.
2 Sonucu tekrarlanabilir yap.
km = KMeans(n_clusters=5, n_init=10, ____=42)
km = KMeans(n_clusters=5, n_init=10, random_state=42)
Açıklama: random_state başlatma rastgeleliğini sabitler.
3 Durumları eşleştir.
| Kavram | Anlamı |
|---|---|
Aynı tohum |
Aynı etiketler |
Farklı tohum, ARI = 1 |
Kararlı çözüm |
Farklı tohum, ARI düşük |
Kararsız, k şüpheli |
random_state yok |
Tekrarlanamaz |