Introduktion till hyperparameterjustering

Modellvalidering i Python

Kasey Jones

Data Scientist

Modellparametrar

Parametrar:

  • Inlärs eller skattas från data
  • Är resultatet av att anpassa en modell
  • Används vid framtida prediktioner
  • Anges inte manuellt
Modellvalidering i Python

Parametrar för linjär regression

Parametrar skapas när en modell anpassas:

from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X, y)
print(lr.coef_, lr.intercept_)
[[0.798, 0.452]] [1.786]
Modellvalidering i Python

Parametrar för linjär regression

Parametrar finns inte innan modellen har anpassats:

lr = LinearRegression()
print(lr.coef_, lr.intercept_)
AttributeError: 'LinearRegression' object has no attribute 'coef_'
Modellvalidering i Python

Modellhyperparametrar

Hyperparametrar:

  • Anges manuellt innan träningen påbörjas
  • Styr hur träningen ska gå till
Modellvalidering i Python

Hyperparametrar för random forest

Hyperparameter Beskrivning Möjliga värden (standard)
n_estimators Antal beslutsträd i skogen 2+ (10)
max_depth Maximalt djup för beslutsträden 2+ (None)
max_features Antal särdrag att beakta vid en uppdelning Se dokumentation
min_samples_split Minsta antal sampel som krävs för att göra en uppdelning 2+ (2)
Modellvalidering i Python

Vad är hyperparameterjustering?

Hyperparameterjustering:

  • Välj hyperparametrar
  • Kör en och samma modelltyp med olika värdekombinationer
  • Skapa intervall med möjliga värden att välja bland
  • Ange ett enskilt noggrannhetsmått
Modellvalidering i Python

Ange intervall

depth = [4, 6, 8, 10, 12]
samples = [2, 4, 6, 8]
features = [2, 4, 6, 8, 10]

# Specify hyperparameters rfc = RandomForestRegressor( n_estimators=100, max_depth=depth[0], min_samples_split=samples[3], max_features=features[1])
rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse'
 ...
}
Modellvalidering i Python

För många hyperparametrar!

rfr.get_params()
{'bootstrap': True,
 'criterion': 'mse',
 'max_depth': 4,
 'max_features': 4,
 'max_leaf_nodes': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 8,
 ...
 }
Modellvalidering i Python

Allmänna riktlinjer

  • Börja med grunderna
  • Läs igenom dokumentationen
  • Testa praktiska intervall
Modellvalidering i Python

Nu kör vi en övning!

Modellvalidering i Python

Preparing Video For Download...