Sınıflandırma
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 50/112
- 5 dk
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) # mesafeleriKomş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
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
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.
p = m.____([[3, 3]])
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ı |