Sınıflandırma
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 29/112
- 5 dk
SVM, ikili ve çok sınıflı sınıflandırmada kullanılır.
SVM ile sınıflandırma
Uygulamada SVM her zaman ölçekleyiciyle bir pipeline'da kullanılır. Çok sınıflı problemlerde SVC içeride bire-bir (OvO) stratejisi uygular: her sınıf çifti için bir model.
m = make_pipeline(StandardScaler(), SVC()).fit(X_train, y_train)
print(m.score(X_test, y_test))
print(m.decision_function(X_test[:1]).shape) # (1, sınıf_sayısı)Olasılık gerekirse SVC(probability=True) kullanılır; bu, içeride ek bir CV ile kalibrasyon yaptığı için eğitimi yavaşlatır.
Regresyon: SVR
Aynı fikir regresyonda SVR'dır: tahminin etrafında genişliği epsilon olan bir tüp vardır; tüp içindeki hatalar cezalandırılmaz, yalnızca dışarı taşanlar destek vektörü olur:
from sklearn.svm import SVR
r = make_pipeline(StandardScaler(), SVR(C=10, epsilon=0.1)).fit(X, y)epsilon büyüdükçe daha az destek vektörü ve daha düzgün bir fonksiyon elde edilir.
Uygulama Şarapta SVM
Şarap verisini test_size=0.3, random_state=0, stratify=y ile böl. make_pipeline(StandardScaler(), SVC()) eğit; test doğruluğunu round(..., 3) ile ve ilk test örneğinin decision_function sonucunun şeklini yazdır.
Başlangıç kodu
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
X, y = load_wine(return_X_y=True)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
X, y = load_wine(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0, stratify=y)
m = make_pipeline(StandardScaler(), SVC()).fit(X_train, y_train)
print(round(m.score(X_test, y_test), 3))
print(m.decision_function(X_test[:1]).shape)Beklenen çıktı
1.0 (1, 3)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 4 sınıflı bir problemde bire-bir strateji kaç ikili model eğitir?
- 16
- 6 Doğru cevap
- 4
- 3
Açıklama: Sınıf çifti sayısı 4·3/2 = 6'dır.
2 SVC'nin olasılık üretmesini sağla.
m = SVC(____=True)
m = SVC(probability=True)
Açıklama: probability=True ek bir iç CV ile Platt kalibrasyonu yapar.
3 Kavramları eşleştir.
| Kavram | Anlamı |
|---|---|
SVC |
SVM sınıflandırıcı |
SVR |
SVM regresör |
epsilon |
Cezasız tüp genişliği |
OvO |
Sınıf çifti başına model |