Lasy losowe

Uczenie maszynowe w finansach z Pythonem

Nathan George

Data Science Professor

dopasowanie wielomianowe

Uczenie maszynowe w finansach z Pythonem

dopasowanie liniowe

Uczenie maszynowe w finansach z Pythonem

Lasy losowe

las losowy graphviz

Uczenie maszynowe w finansach z Pythonem

Agregacja bootstrapowa (bagging)

bootstrapping

Uczenie maszynowe w finansach z Pythonem

Próbkowanie cech

Lasy losowe

  • Zbiór (ensemble) drzew decyzyjnych
  • Agregacja bootstrapowa (bagging)
  • Próbkowanie cech przy każdym podziale
Uczenie maszynowe w finansach z Pythonem

Implementacja w sklearn

from sklearn.ensemble import RandomForestRegressor

random_forest = RandomForestRegressor()
random_forest.fit(train_features, train_targets)
print(random_forest.score(train_features, train_targets))
Uczenie maszynowe w finansach z Pythonem

Hiperparametry

random_forest = RandomForestRegressor(n_estimators=200,
                                      max_depth=5,
                                      max_features=4,
                                      random_state=42)
Uczenie maszynowe w finansach z Pythonem

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}]
Uczenie maszynowe w finansach z Pythonem

ParameterGrid

test_scores = []
# loop through the parameter grid, set hyperparameters, save the scores
for g in ParameterGrid(grid):
    rfr.set_params(**g)  # ** is "unpacking" the dictionary
    rfr.fit(train_features, train_targets)
    test_scores.append(rfr.score(test_features, test_targets))

# find best hyperparameters from the test score and print 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}
Uczenie maszynowe w finansach z Pythonem

Czas posadzić lasy losowe!

Uczenie maszynowe w finansach z Pythonem

Preparing Video For Download...