CodeBlanks Logo Icon CodeBlanks

Sınıflandırma

KNN, yeni örneği en yakın k komşusunun çoğunluk oyuyla sınıflandırır.

Komşuları görmek

kneighbors yöntemi bir sorgunun en yakın komşularını ve mesafelerini döndürür. Kararın nereden geldiğini anlamak için çok yararlıdır:

d, idx = m.kneighbors([[2, 2]])
print(idx)   # [[2 1 0]]  en yakın üç eğitim örneğinin indeksi
print(d)     # mesafeleri

Komşuların etiketleri np.array(y)[idx] ile okunabilir; çoğunluk tahmini verir.

Olasılık ve ağırlıklı oy

predict_proba, her sınıfa düşen oy oranını verir. weights="distance" ile yakın komşuların oyu daha ağır basar:

m = KNeighborsClassifier(n_neighbors=5).fit(X, y)
print(m.predict_proba([[3, 3]]))   # [[0.6 0.4]]  sınıf sırası: m.classes_
m2 = KNeighborsClassifier(n_neighbors=5, weights="distance")

Olasılıklar, kararın ne kadar "kıl payı" olduğunu gösterir.

Uygulama Oy oranları

KNeighborsClassifier(n_neighbors=5) eğit. [[4, 4]] için predict_proba sonucunu ve predict sonucunu alt alta yazdır.

Başlangıç kodu

model.py
from sklearn.neighbors import KNeighborsClassifier

X = [[1, 1], [1, 2], [2, 1], [6, 6], [6, 7], [7, 6]]
y = ["A", "A", "A", "B", "B", "B"]

# buraya yaz

Örnek çözüm

model.py
from sklearn.neighbors import KNeighborsClassifier

X = [[1, 1], [1, 2], [2, 1], [6, 6], [6, 7], [7, 6]]
y = ["A", "A", "A", "B", "B", "B"]

m = KNeighborsClassifier(n_neighbors=5).fit(X, y)
print(m.predict_proba([[4, 4]]))
print(m.predict([[4, 4]]))

Beklenen çıktı

[[0.4 0.6]]
['B']

Soru ve cevaplar

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

1 K=5 ile komşuların etiketleri A, B, A, B, A ise tahmin nedir?

  • Belirsiz
  • Hata
  • A Doğru cevap
  • B

Açıklama: 3 oy A, 2 oy B; çoğunluk A'dır.

2 Sınıf olasılıklarını al.

Soru
p = m.____([[3, 3]])
Cevap
p = m.predict_proba([[3, 3]])

Açıklama: predict_proba her sınıf için bir sütun döndürür.

3 Yöntemleri eşleştir.

Kavram Anlamı
predict Çoğunluk sınıfı
predict_proba Oy oranları
kneighbors Komşu indeksleri
classes_ Sınıf sırası

Başlangıç bölümündeki tüm dersler