Hiperparametre
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 91/112
- 5 dk
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
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
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.
print(m.____())
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 |