Översikt av hyperparametrar

Hyperparameterjustering i Python

Alex Scriven

Data Scientist

Vad är en hyperparameter

Hyperparametrar:

  • Något du ställer in innan modelleringen (som rattar på en gammal radio)
    • Du "finjusterar" också dina hyperparametrar!
  • Algoritmen lär sig inte dessa

Gammal radio med rattar

Hyperparameterjustering i Python

Hyperparametrar i Random Forest

Skapa en enkel random forest-estimator och skriv ut den:

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)

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

Hyperparameterjustering i Python

En enskild hyperparameter

Ta parametern n_estimators.

Datatyp och standardvärde:

n_estimators : integer, optional (default=10)

Definition:

The number of trees in the forest.

Hyperparameterjustering i Python

Ange hyperparametrar

Ange hyperparametrar vid skapandet av estimatorn:

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)
Hyperparameterjustering i Python

Hyperparametrar i logistisk regression

Hitta hyperparametrarna för en logistisk 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)

Den här algoritmen har färre hyperparametrar att finjustera!

Hyperparameterjustering i Python

Hyperparametrarnas betydelse

 

En del hyperparametrar är viktigare än andra.

En del påverkar inte modellens prestanda:

För random forest-klassificeraren:

  • n_jobs
  • random_state
  • verbose

Det är inte meningsfullt att "träna" alla hyperparametrar

Hyperparameterjustering i Python

Random Forest: viktiga hyperparametrar

 

Viktiga hyperparametrar:

  • n_estimators (högt värde)
  • max_features (prova olika värden)
  • max_depth & min_sample_leaf (viktiga för överanpassning)
  • (eventuellt) criterion

Kom ihåg: detta är bara en vägledning

Hyperparameterjustering i Python

Hur hittar man viktiga hyperparametrar?

 

Bra resurser för att lära sig mer:

  • Vetenskapliga artiklar
  • Bloggar och guider från pålitliga källor (som DataCamp!)
  • Dokumentationen för Scikit-learn
  • Erfarenhet
Hyperparameterjustering i Python

Nu kör vi en övning!

Hyperparameterjustering i Python

Preparing Video For Download...