Огляд гіперпараметрів

Тюнінг гіперпараметрів у Python

Alex Scriven

Data Scientist

Що таке гіперпараметр

Гіперпараметри:

  • Те, що ви задаєте до моделювання (як ручки на старому радіо)
    • Їх також можна «тюнити»!
  • Алгоритм їх не навчає

Старе радіо з ручками

Тюнінг гіперпараметрів у Python

Гіперпараметри в Random Forest

Створіть простий оцінювач Random Forest і виведіть його:

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)

Детальніше: http://scikit-learn.org

Тюнінг гіперпараметрів у Python

Один гіперпараметр

Візьмімо параметр n_estimators.

Тип даних і значення за замовчуванням:

n_estimators : integer, optional (default=10)

Визначення:

The number of trees in the forest.

Тюнінг гіперпараметрів у Python

Налаштування гіперпараметрів

Задайте гіперпараметри під час створення оцінювача:

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)
Тюнінг гіперпараметрів у Python

Гіперпараметри в Logistic Regression

Знайдіть гіперпараметри 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)

У цього алгоритму менше гіперпараметрів для тюнінгу!

Тюнінг гіперпараметрів у Python

Важливість гіперпараметрів

 

Деякі гіперпараметри важливіші за інші.

Деякі взагалі не покращать модель:

Для класифікатора Random Forest:

  • n_jobs
  • random_state
  • verbose

Не всі гіперпараметри варто «тренувати»

Тюнінг гіперпараметрів у Python

Random Forest: важливі гіперпараметри

 

Деякі важливі гіперпараметри:

  • n_estimators (високе значення)
  • max_features (спробуйте різні значення)
  • max_depth і min_sample_leaf (важливі для запам'ятовування)
  • (можливо) criterion

Пам'ятайте: це лише орієнтир

Тюнінг гіперпараметрів у Python

Як знайти важливі гіперпараметри?

 

Джерела, щоб розібратися:

  • Наукові статті
  • Блоги й надійні туторіали (як-от DataCamp!)
  • Документація модуля Scikit-learn
  • Досвід
Тюнінг гіперпараметрів у Python

Давайте потренуємось!

Тюнінг гіперпараметрів у Python

Preparing Video For Download...