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

Bootstrap aggregating (bagging)

bootstrap

Machine Learning pour la finance en Python

Échantillonnage de variables

Forêts aléatoires

  • Un ensemble d'arbres de décision
  • Bootstrap aggregating (bagging)
  • Échantillonnage de variables à 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 quelques forêts aléatoires !

Machine Learning pour la finance en Python

Preparing Video For Download...