Overzicht hyperparameters

Hyperparameter Tuning in Python

Alex Scriven

Data Scientist

Wat is een hyperparameter

Hyperparameters:

  • Iets wat jij vooraf instelt (zoals knoppen op een oude radio)
    • Je kunt hyperparameters ook ‘tunen’!
  • Het algoritme leert deze niet

Oude radio met knoppen

Hyperparameter Tuning in Python

Hyperparameters in Random Forest

Maak een simpele random forest-estimator en print ’m:

rf_clf = RandomForestClassifier()
print(rf_clf)

RandomForestClassifier(n_estimators='warn', criterion='gini', max_depth=None, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_jobs=None, oob_score=False, random_state=None, verbose=0,bootstrap=True, class_weight=None, warm_start=False)

Meer info: http://scikit-learn.org

Hyperparameter Tuning in Python

Eén hyperparameter uitgelicht

Neem de parameter n_estimators.

Datatype & standaardwaarde:

n_estimators : integer, optioneel (standaard=10)

Definitie:

Het aantal bomen in het bos.

Hyperparameter Tuning in Python

Hyperparameters instellen

Stel hyperparameters in bij het maken van de estimator:

rf_clf = RandomForestClassifier(n_estimators=100, criterion='entropy')
print(rf_clf)
RandomForestClassifier(n_estimators=100, criterion='entropy',
            max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_impurity_decrease=0.0, min_impurity_split=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_jobs=None,
            oob_score=False, random_state=None, verbose=0,bootstrap=True,
            class_weight=None, warm_start=False)
Hyperparameter Tuning in Python

Hyperparameters in Logistic Regression

Zoek de hyperparameters van een Logistic Regression:

log_reg_clf = LogisticRegression()

print(log_reg_clf) LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, max_iter=100, multi_class='warn', n_jobs=None, penalty='l2', random_state=None, solver='warn', tol=0.0001, verbose=0, warm_start=False)

Er zijn minder hyperparameters om te tunen met dit algoritme!

Hyperparameter Tuning in Python

Belang van hyperparameters

 

Sommige hyperparameters zijn belangrijker dan andere.

Sommige helpen de modelprestatie juist niet:

Voor de random forest-classifier:

  • n_jobs
  • random_state
  • verbose

Niet alle hyperparameters zijn logisch om te ‘trainen’.

Hyperparameter Tuning in Python

Random forest: belangrijke hyperparameters

 

Belangrijke hyperparameters:

  • n_estimators (hoog instellen)
  • max_features (verschillende waarden proberen)
  • max_depth & min_sample_leaf (belangrijk tegen overfitting)
  • (mogelijk) criterion

Onthoud: dit is alleen een leidraad

Hyperparameter Tuning in Python

Hoe vind je de hyperparameters die ertoe doen?

 

Bronnen om dit te leren:

  • Wetenschappelijke papers
  • Blogs en tutorials van betrouwbare bronnen (zoals DataCamp!)
  • De Scikit-learn documentatie
  • Ervaring
Hyperparameter Tuning in Python

Laten we oefenen!

Hyperparameter Tuning in Python

Preparing Video For Download...