Grid search
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 89/112
- 5 dk
GridSearchCV, tüm parametre kombinasyonlarını deneyerek en iyi olanı bulur.
Izgara araması
GridSearchCV, verilen parametre değerlerinin tüm kombinasyonlarını çapraz doğrulamayla dener ve en iyisini seçer:
from sklearn.model_selection import GridSearchCV
izgara = {"n_neighbors": [1, 3, 5, 7, 9], "weights": ["uniform", "distance"]}
gs = GridSearchCV(KNeighborsClassifier(), izgara, cv=5)
gs.fit(X_train, y_train)
print(gs.best_params_, gs.best_score_)5 × 2 = 10 kombinasyon, her biri 5 katla: toplam 50 eğitim. Izgara büyüdükçe süre çarpımsal artar.
refit ve best_estimator_
Arama bitince GridSearchCV en iyi parametrelerle modeli tüm eğitim verisinde yeniden eğitir (refit=True). Bu model best_estimator_'dır ve gs.predict doğrudan onu kullanır:
print(gs.best_estimator_)
print(gs.score(X_test, y_test)) # test yalnızca en sondaDoğru akış: bölme → eğitim kümesinde ızgara araması → en iyi modeli test kümesinde bir kez ölçme.
Uygulama K'yı ızgarayla bul
Iris eğitim kümesinde {"n_neighbors": [1, 3, 5, 7, 9, 11]} ızgarasıyla GridSearchCV(KNeighborsClassifier(), ..., cv=5) çalıştır. best_params_ değerini ve test doğruluğunu round(..., 3) ile alt alta yazdır.
Başlangıç kodu
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(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)
# buraya yazÖrnek çözüm
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
X, y = load_iris(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)
gs = GridSearchCV(KNeighborsClassifier(), {"n_neighbors": [1, 3, 5, 7, 9, 11]}, cv=5)
gs.fit(X_train, y_train)
print(gs.best_params_)
print(round(gs.score(X_test, y_test), 3))Beklenen çıktı
{'n_neighbors': 7}
1.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 3 değerli bir parametre ve 4 değerli bir parametreyle <code>cv=5</code> ızgara araması kaç eğitim yapar (son yeniden eğitim hariç)?
- 60 Doğru cevap
- 12
- 35
- 20
Açıklama: 3 × 4 = 12 kombinasyon × 5 katman = 60.
2 En iyi parametreleri oku.
print(gs.____)
print(gs.best_params_)
Açıklama: best_params_ en iyi kombinasyonu sözlük olarak verir.
3 Öznitelikleri eşleştir.
| Kavram | Anlamı |
|---|---|
best_params_ |
En iyi ayarlar |
best_score_ |
En iyi CV ortalaması |
best_estimator_ |
Yeniden eğitilmiş model |
cv_results_ |
Tüm denemeler |