什么n_estimators和max_features在RandomForestRegressor中的含义

时间:2017-09-15 08:11:42

标签: scikit-learn

我正在阅读使用GridSearchCV对模型进行微调,我遇到了下面显示的参数网格:

param_grid = [
{'n_estimators': [3, 10, 30], 'max_features': [2, 4, 6, 8]},

{'bootstrap': [False], 'n_estimators': [3, 10], 'max_features': [2, 3, 4]},
]
forest_reg = RandomForestRegressor(random_state=42)
# train across 5 folds, that's a total of (12+6)*5=90 rounds of training 
grid_search = GridSearchCV(forest_reg, param_grid, cv=5,
                       scoring='neg_mean_squared_error')
grid_search.fit(housing_prepared, housing_labels)

这里我没有得到n_estimator和max_feature的概念。它是否像n_estimator表示数据中的记录数,max_features表示从数据中选择的属性数?

进一步后,我得到了这个结果:

>> grid_search.best_params_
{'max_feature':8, 'n_estimator':30}

所以事情是我没有得到实际上这个结果想说的话。

2 个答案:

答案 0 :(得分:6)

阅读RandomForest Regressor的文档后,您可以看到n_estimators是林中要使用的树的数量。由于Random Forest是一种包含创建多个决策树的集合方法,因此该参数用于控制在该过程中使用的树的数量。

另一方面,

max_features确定查找拆分时要考虑的最大要素数。有关max_features阅读this answer

的详细信息

答案 1 :(得分:1)

n_estimators:这是树的数量 (一般来说,此算法将在其上起作用的样本数量,然后将其汇总以提供最终答案) 您想要在进行最大投票或预测平均值之前进行构建。数量更多的树可为您提供更好的性能,但会使您的代码变慢。

max_features:寻找最佳分割时要考虑的功能数量。

-70 + 210 = 140

这意味着它们是您应该在 n_estimators {3,10,30}或 max_features {2,4,6,8}

中运行模型的最佳超参数>