Prezentare generală a hiperparametrilor

Ajustarea hiperparametrilor în Python

Alex Scriven

Data Scientist

Ce este un hiperparametru

Hiperparametri:

  • Valori pe care dumneavoastră le setați înainte de modelare (ca butoanele unui radio vechi)
    • Și hiperparametrii se „reglează"!
  • Algoritmul nu le învață

Radio vechi cu butoane

Ajustarea hiperparametrilor în Python

Hiperparametri în Random Forest

Creați un estimator simplu de tip random forest și afișați-l:

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)

Mai multe informații: http://scikit-learn.org

Ajustarea hiperparametrilor în Python

Un singur hiperparametru

Luați parametrul n_estimators.

Tip de date și valoare implicită:

n_estimators : integer, optional (default=10)

Definiție:

Numărul de arbori din pădure.

Ajustarea hiperparametrilor în Python

Setarea hiperparametrilor

Setați hiperparametri la crearea estimatorului:

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)
Ajustarea hiperparametrilor în Python

Hiperparametri în Regresia Logistică

Găsiți hiperparametrii unei regresii logistice:

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)

Acest algoritm are mai puțini hiperparametri de reglat!

Ajustarea hiperparametrilor în Python

Importanța hiperparametrilor

 

Unii hiperparametri sunt mai importanți decât alții.

Unii nu îmbunătățesc performanța modelului:

Pentru clasificatorul de tip random forest:

  • n_jobs
  • random_state
  • verbose

Nu toți hiperparametrii are sens să fie „antrenați"

Ajustarea hiperparametrilor în Python

Random Forest: Hiperparametri importanți

 

Câțiva hiperparametri importanți:

  • n_estimators (valoare mare)
  • max_features (testați valori diferite)
  • max_depth & min_sample_leaf (important pentru supraajustare)
  • (opțional) criterion

Rețineți: acesta este doar un ghid

Ajustarea hiperparametrilor în Python

Cum să găsiți hiperparametrii relevanți?

 

Câteva resurse utile:

  • Articole academice
  • Bloguri și tutoriale din surse de încredere (precum DataCamp!)
  • Documentația modulului Scikit Learn
  • Experiența proprie
Ajustarea hiperparametrilor în Python

Să exersăm!

Ajustarea hiperparametrilor în Python

Preparing Video For Download...