Makine Öğrenmesi
best_params_
best_params_ özelliği, en iyi hiperparametre kombinasyonunu verir.
best_params_ ve best_estimator_
Arama bitince en iyi kombinasyon best_params_'ta, yeniden eğitilmiş model best_estimator_'da durur. best_estimator_ sıradan bir pipeline'dır; adımlarına erişilebilir ve kaydedilebilir:
print(gs.best_params_)
en_iyi = gs.best_estimator_
print(en_iyi.named_steps["svc"].C)
print(en_iyi.named_steps["svc"].n_support_) # sınıf başına destek vektörü
gs.predict ile gs.best_estimator_.predict aynı sonucu verir.
cv_results_
cv_results_, her kombinasyon için ortalama ve standart sapma skorlarını, süreleri ve sıralamayı içeren bir sözlüktür:
r = gs.cv_results_
for p, o, s in zip(r["params"], r["mean_test_score"], r["std_test_score"]):
print(p, round(o, 3), round(s, 3))
print(r["rank_test_score"])
En iyi skorla neredeyse aynı skoru veren daha basit bir kombinasyon varsa (daha küçük C gibi) o tercih edilebilir.
Uygulama Sonuçları sırala
Hazır gs aramasının cv_results_ sözlüğünden sıralaması 1 olan kombinasyonu ve ortalama skorunu bul. params'ı ve round(..., 3) ile skoru alt alta yazdır; ardından bunun best_params_ ile aynı olduğunu yazdır.
Örnek çözümü göster
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
pipe = Pipeline([("olcek", StandardScaler()), ("svc", SVC())])
gs = GridSearchCV(pipe, {"svc__C": [0.1, 1, 10], "svc__gamma": [0.01, 0.1]}, cv=5).fit(X_train, y_train)
r = gs.cv_results_
i = list(r["rank_test_score"]).index(1)
print(r["params"][i])
print(round(r["mean_test_score"][i], 3))
print(r["params"][i] == gs.best_params_)
Kendini test et
-
En iyi değer ızgaranın kenarındaysa (ör. C=100, ızgara en fazla 100) ne yapılmalıdır?
- Test kümesine bakmak
- Izgarayı o yönde genişletip yeniden aramak
- Sonucu kabul etmek
- Izgarayı daraltmak
Cevabı göster
Izgarayı o yönde genişletip yeniden aramak — Kenardaki optimum, gerçek en iyinin ızgaranın dışında olabileceğini gösterir.
-
Yeniden eğitilmiş en iyi modeli al.
model = gs.____
Cevabı göster
model = gs.best_estimator_
-
Öznitelikleri eşleştir.
- best_params_
- Kazanan ayarlar
- best_estimator_
- Eğitilmiş model
- cv_results_
- Tüm sonuçlar
- rank_test_score
- Sıralama
Sıradaki ders: best_score_