CodeBlanks Logo Icon CodeBlanks

Hiperparametre

Hiperparametre, model eğitiminden önce ayarlanan parametredir.

Hiperparametre nedir?

Parametreler eğitimde veriden öğrenilir (coef_, ağaç bölmeleri). Hiperparametreler ise eğitimden önce senin seçtiğin ayarlardır (n_neighbors, max_depth, C):

m = DecisionTreeClassifier(max_depth=3)   # hiperparametre: sen seçersin
m.fit(X, y)
print(m.tree_.node_count)                  # öğrenilen yapı

Hiperparametreler modelin karmaşıklığını belirler; doğru değer veriden veriye değişir ve doğrulamayla bulunur.

get_params ve doğrulama eğrisi

get_params() bir modelin tüm hiperparametrelerini gösterir. validation_curve, tek bir hiperparametreyi değiştirerek eğitim ve doğrulama skorlarını birlikte verir:

from sklearn.model_selection import validation_curve
d = [1, 2, 3, 5, 8]
tr, va = validation_curve(DecisionTreeClassifier(random_state=0), X, y,
                          param_name="max_depth", param_range=d, cv=5)
print(tr.mean(axis=1).round(2), va.mean(axis=1).round(2))

Eğitim skoru artmaya devam ederken doğrulama skoru düşmeye başladığı nokta aşırı öğrenmenin başladığı yerdir.

Uygulama Doğrulama eğrisi

Iris'te max_depth için [1, 2, 3, 5] değerleriyle validation_curve çalıştır (cv=5). Eğitim ve doğrulama ortalamalarını (mean(axis=1).round(3)) alt alta yazdır.

Başlangıç kodu

model.py
from sklearn.datasets import load_iris
from sklearn.model_selection import validation_curve
from sklearn.tree import DecisionTreeClassifier

X, y = load_iris(return_X_y=True)

# buraya yaz

Örnek çözüm

model.py
from sklearn.datasets import load_iris
from sklearn.model_selection import validation_curve
from sklearn.tree import DecisionTreeClassifier

X, y = load_iris(return_X_y=True)

tr, va = validation_curve(DecisionTreeClassifier(random_state=0), X, y, param_name="max_depth", param_range=[1, 2, 3, 5], cv=5)
print(tr.mean(axis=1).round(3))
print(va.mean(axis=1).round(3))

Beklenen çıktı

[0.667 0.962 0.973 0.998]
[0.667 0.933 0.96  0.96 ]

Soru ve cevaplar

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

1 Hangisi bir hiperparametredir?

  • StandardScaler'da mean_
  • Ağacın öğrendiği eşikler
  • KNN'de n_neighbors Doğru cevap
  • LinearRegression'da coef_

Açıklama: n_neighbors eğitimden önce verilir; diğerleri fit sırasında öğrenilir.

2 Modelin tüm hiperparametrelerini listele.

Soru
print(m.____())
Cevap
print(m.get_params())

Açıklama: get_params sözlük döndürür; set_params ile değiştirilir.

3 Değerleri sınıflandır.

Kavram Anlamı
max_depth Hiperparametre
coef_ Öğrenilen parametre
validation_curve Tek ayarı tarar
set_params Ayarı değiştirir

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