Случайные леса

Машинное обучение для финансов на Python

Nathan George

Data Science Professor

полиномиальная подгонка

Машинное обучение для финансов на Python

линейная подгонка

Машинное обучение для финансов на Python

Случайные леса

случайный лес graphviz

Машинное обучение для финансов на Python

Бэггинг (bootstrap aggregating)

бутстрэппинг

Машинное обучение для финансов на Python

Выборка признаков

Случайные леса

  • Ансамбль решающих деревьев
  • Бэггинг (bootstrap aggregating)
  • Выборка признаков в каждом разбиении
Машинное обучение для финансов на Python

Реализация в sklearn

from sklearn.ensemble import RandomForestRegressor

random_forest = RandomForestRegressor()
random_forest.fit(train_features, train_targets)
print(random_forest.score(train_features, train_targets))
Машинное обучение для финансов на Python

Гиперпараметры

random_forest = RandomForestRegressor(n_estimators=200,
                                      max_depth=5,
                                      max_features=4,
                                      random_state=42)
Машинное обучение для финансов на Python

ParameterGrid

from sklearn.model_selection import ParameterGrid

grid = {'n_estimators': [200], 
        'max_depth':[3, 5], 
        'max_features': [4, 8]}

from pprint import pprint pprint(list(ParameterGrid(grid)))
[{'max_depth': 3, 'max_features': 4, 'n_estimators': 200},
 {'max_depth': 3, 'max_features': 8, 'n_estimators': 200},
 {'max_depth': 5, 'max_features': 4, 'n_estimators': 200},
 {'max_depth': 5, 'max_features': 8, 'n_estimators': 200}]
Машинное обучение для финансов на Python

ParameterGrid

test_scores = []
# перебираем сетку параметров, задаём гиперпараметры, сохраняем оценки
for g in ParameterGrid(grid):
    rfr.set_params(**g)  # ** — «распаковка» словаря
    rfr.fit(train_features, train_targets)
    test_scores.append(rfr.score(test_features, test_targets))

# находим лучшие гиперпараметры по тестовой оценке и выводим результат best_idx = np.argmax(test_scores) print(test_scores[best_idx]) print(ParameterGrid(grid)[best_idx])
0.05594252725411142
{'max_depth': 5, 'max_features': 8, 'n_estimators': 200}
Машинное обучение для финансов на Python

Давайте потренируемся!

Машинное обучение для финансов на Python

Preparing Video For Download...