İkili sınıflandırma
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 60/112
- 5 dk
İkili sınıflandırmada iki sınıf vardır: pozitif ve negatif.
İkili sınıflandırma
İki sınıflı problemlerde sınıflar genellikle 0 (negatif) ve 1 (pozitif) olarak kodlanır. "Pozitif" iyi ya da kötü anlamına gelmez; aradığımız olaydır: hastalık var, işlem sahte, müşteri ayrılacak.
m = LogisticRegression().fit(X, y)
print(m.predict_proba([[5]])) # [[P(0), P(1)]]
print(m.predict([[5]])) # P(1) > 0.5 ise 1predict_proba iki sütun döndürür; pozitif sınıf olasılığı [:, 1] ile alınır.
Karar eşiği
0.5 yalnızca varsayılan eşiktir. Kanser taramasında bir hastayı kaçırmak pahalıysa eşik düşürülür; daha çok kişi pozitif işaretlenir:
p = m.predict_proba(X_test)[:, 1]
karar = (p >= 0.3).astype(int) # daha hassas eşikEşik değiştirmek modeli yeniden eğitmeden kararların dengesini değiştirir; değerlendirme dersinde bunun metriklerle bağlantısını göreceksin.
Uygulama Eşikle karar
LogisticRegression eğit. X_yeni için pozitif sınıf olasılıklarını np.round(..., 2) ile yazdır. Ardından 0.3 eşiğiyle verilen kararları ((p >= 0.3).astype(int)) yazdır.
Başlangıç kodu
import numpy as np
from sklearn.linear_model import LogisticRegression
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8]])
y = np.array([0, 0, 0, 0, 1, 1, 1, 1])
X_yeni = np.array([[3.5], [4.2], [6.0]])
# buraya yazÖrnek çözüm
import numpy as np
from sklearn.linear_model import LogisticRegression
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8]])
y = np.array([0, 0, 0, 0, 1, 1, 1, 1])
X_yeni = np.array([[3.5], [4.2], [6.0]])
m = LogisticRegression().fit(X, y)
p = m.predict_proba(X_yeni)[:, 1]
print(np.round(p, 2))
print((p >= 0.3).astype(int))Beklenen çıktı
[0.24 0.41 0.85] [0 1 1]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>predict_proba</code> sonucu <code>[[0.3, 0.7]]</code> ise <code>predict</code> ne döndürür?
- [1] Doğru cevap
- [0]
- [0.7]
- [0.3]
Açıklama: Pozitif sınıf olasılığı 0.7 > 0.5 olduğu için sınıf 1 seçilir.
2 Pozitif sınıfın olasılık sütununu al.
p = m.predict_proba(X_test)[____]
p = m.predict_proba(X_test)[:, 1]
Açıklama: İkinci sütun classes_ içindeki ikinci sınıfa, yani 1'e aittir.
3 Terimleri eşleştir.
| Kavram | Anlamı |
|---|---|
pozitif sınıf |
Aranan olay (1) |
negatif sınıf |
Olayın yokluğu (0) |
predict_proba[:, 1] |
Pozitif olasılığı |
eşik |
Olasılıktan karara geçiş |