Introductie tot hyperparameter-tuning

Modelvalidatie in Python

Kasey Jones

Data Scientist

Modelparameters

Parameters zijn:

  • Geleerd of geschat uit de data
  • Het resultaat van het fitten van een model
  • Gebruikt bij toekomstige voorspellingen
  • Niet handmatig ingesteld
Modelvalidatie in Python

Lineaire regressieparameters

Parameters ontstaan door een model te fitten:

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

Lineaire regressieparameters

Parameters bestaan niet vóór het model gefit is:

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

Modelhyperparameters

Hyperparameters:

  • Handmatig ingesteld vóór de training
  • Bepalen hoe de training verloopt
Modelvalidatie in Python

Random forest-hyperparameters

Hyperparameter Beschrijving Mogelijke waarden (default)
n_estimators Aantal beslisbomen in het bos 2+ (10)
max_depth Maximale diepte van de beslisbomen 2+ (None)
max_features Aantal features om te overwegen bij een split Zie documentatie
min_samples_split Min. aantal samples dat nodig is voor een split 2+ (2)
Modelvalidatie in Python

Wat is hyperparameter-tuning?

Hyperparameter-tuning:

  • Kies hyperparameters
  • Draai één modeltype met verschillende waardesets
  • Maak bereiken met mogelijke waarden om uit te kiezen
  • Specificeer één nauwkeurigheidsmetric
Modelvalidatie in Python

Bereiken opgeven

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

# Specificeer 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'
 ...
}
Modelvalidatie in Python

Te veel hyperparameters!

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,
 ...
 }
Modelvalidatie in Python

Algemene richtlijnen

  • Begin met de basis
  • Lees de documentatie
  • Test praktische bereiken
Modelvalidatie in Python

Laten we oefenen!

Modelvalidatie in Python

Preparing Video For Download...