CodeBlanks Logo Icon CodeBlanks

Özet - SVM

Bu grupta SVM, marj, kernel ve C parametresini öğrendin.

Özet: SVM

Bu grupta:

  • SVM sınıflara en uzak sınırı seçer; sınırı destek vektörleri belirler.
  • Marj 2/‖w‖; yumuşak marjda ihlallerin cezası C.
  • Çekirdekler: linear, poly, rbf; RBF'te gamma etki alanını belirler.
  • C ve gamma birlikte logaritmik ızgarada aranır.
  • Her zaman ölçekleyiciyle pipeline; çok sınıfta OvO; regresyonda SVR.

Uygulama C ve gamma araması

Ay verisinde {"svc__C": [0.1, 1, 10, 100], "svc__gamma": [0.1, 1, 10]} ızgarasıyla make_pipeline(StandardScaler(), SVC()) için GridSearchCV(..., cv=5) çalıştır. best_params_ ve test doğruluğunu round(..., 3) ile alt alta yazdır.

Başlangıç kodu

model.py
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

X, y = make_moons(n_samples=300, noise=0.25, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

# buraya yaz

Örnek çözüm

model.py
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

X, y = make_moons(n_samples=300, noise=0.25, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

gs = GridSearchCV(make_pipeline(StandardScaler(), SVC()), {"svc__C": [0.1, 1, 10, 100], "svc__gamma": [0.1, 1, 10]}, cv=5)
gs.fit(X_train, y_train)
print(gs.best_params_)
print(round(gs.score(X_test, y_test), 3))

Beklenen çıktı

{'svc__C': 1, 'svc__gamma': 10}
0.989

Soru ve cevaplar

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

1 RBF SVM eğitim doğruluğu 1.0, test doğruluğu düşükse hangi ayar değişikliği önce denenmelidir?

  • gamma ve/veya C'yi küçültmek Doğru cevap
  • gamma'yı büyütmek
  • Ölçeklemeyi kaldırmak
  • C'yi büyütmek

Açıklama: İkisi de modelin esnekliğini azaltır ve aşırı öğrenmeyi düşürür.

2 SVM regresörünü oluştur.

Soru
r = ____(C=10, epsilon=0.1)
Cevap
r = SVR(C=10, epsilon=0.1)

Açıklama: SVR, epsilon tüpü dışındaki hataları cezalandırır.

3 Parametreleri eşleştir.

Kavram Anlamı
C İhlal cezası
gamma Etki alanı darlığı
kernel Benzerlik fonksiyonu
epsilon Tüp genişliği

Orta seviye bölümündeki tüm dersler