随机森林

Python 金融机器学习

Nathan George

Data Science Professor

多项式拟合

Python 金融机器学习

线性拟合

Python 金融机器学习

随机森林

随机森林 graphviz

Python 金融机器学习

自助聚合(bagging)

自助采样

Python 金融机器学习

特征抽样

随机森林

  • 多棵决策树的集合(集成)
  • 自助聚合(bagging)
  • 每次划分抽样部分特征
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 = []
# 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}
Python 金融机器学习

来种些随机森林吧!

Python 金融机器学习

Preparing Video For Download...