CodeBlanks Logo Icon CodeBlanks

Grid search

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 sonda

Doğ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

model.py
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

model.py
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.

Soru
print(gs.____)
Cevap
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

Başlangıç bölümündeki tüm dersler