Păduri aleatoare

Machine Learning pentru finanțe în Python

Nathan George

Data Science Professor

potrivire polinomială

Machine Learning pentru finanțe în Python

potrivire liniară

Machine Learning pentru finanțe în Python

Păduri aleatoare

pădure aleatoare graphviz

Machine Learning pentru finanțe în Python

Agregare prin bootstrap (bagging)

bootstrapping

Machine Learning pentru finanțe în Python

Eșantionarea caracteristicilor

Păduri aleatoare

  • O colecție (ansamblu) de arbori de decizie
  • Agregare prin bootstrap (bagging)
  • Eșantionare de caracteristici la fiecare împărțire
Machine Learning pentru finanțe în Python

Implementare în 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 pentru finanțe în Python

Hiperparametri

random_forest = RandomForestRegressor(n_estimators=200,
                                      max_depth=5,
                                      max_features=4,
                                      random_state=42)
Machine Learning pentru finanțe în 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 pentru finanțe în 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 pentru finanțe în Python

Să plantăm câteva păduri aleatoare!

Machine Learning pentru finanțe în Python

Preparing Video For Download...