Forêts aléatoires

Machine Learning pour la finance en Python

Nathan George

Data Science Professor

ajustement polynomial

Machine Learning pour la finance en Python

ajustement linéaire

Machine Learning pour la finance en Python

Forêts aléatoires

graphviz de forêt aléatoire

Machine Learning pour la finance en Python

Agrégation bootstrap (« bagging »)

bootstrap

Machine Learning pour la finance en Python

Échantillonnage de caractéristiques

Forêts aléatoires

  • Un ensemble d'arbres de décision
  • Agrégation bootstrap (« bagging »)
  • Échantillonnage de caractéristiques à chaque division
Machine Learning pour la finance en Python

Implémentation sklearn

from sklearn.ensemble import RandomForestRegressor

random_forest = RandomForestRegressor()
random_forest.fit(train_features, train_targets)
print(random_forest.score(train_features, train_targets))
Machine Learning pour la finance en Python

Hyperparamètres

random_forest = RandomForestRegressor(n_estimators=200,
                                      max_depth=5,
                                      max_features=4,
                                      random_state=42)
Machine Learning pour la finance en 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}]
Machine Learning pour la finance en Python

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}
Machine Learning pour la finance en Python

Plantez des forêts aléatoires !

Machine Learning pour la finance en Python

Preparing Video For Download...