RandomForestRegressor网格搜素调参代码
时间: 2023-07-23 19:03:31 浏览: 97
以下是使用随机森林回归器(RandomForestRegressor)进行网格搜索调参的示例代码:
```python
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCV
# 创建随机森林回归器模型
rf = RandomForestRegressor()
# 定义参数网格
param_grid = {
'n_estimators': [100, 200, 300], # 决策树数量
'max_depth': [None, 5, 10], # 决策树最大深度
'min_samples_split': [2, 5, 10], # 节点分裂所需的最小样本数
'min_samples_leaf': [1, 2, 4] # 叶子节点所需的最小样本数
}
# 创建网格搜索对象
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')
# 在训练数据上进行网格搜索调参
grid_search.fit(X_train, y_train)
# 输出最佳参数组合和对应的评分
print("Best Parameters:", grid_search.best_params_)
print("Best Score:", -grid_search.best_score_)
```
在上述代码中,我们首先创建了一个随机森林回归器模型 `rf`,然后定义了要搜索的参数网格 `param_grid`,包括决策树数量、最大深度、节点分裂所需的最小样本数和叶子节点所需的最小样本数。接下来,我们创建了一个网格搜索对象 `grid_search`,将随机森林回归器模型和参数网格作为参数传入。通过指定交叉验证的折数 `cv` 和评分指标 `scoring`,可以在训练数据上进行网格搜索调参。
最后,我们使用训练数据拟合网格搜索对象,并输出最佳参数组合和对应的评分。注意,由于默认的评分指标是负均方误差(neg_mean_squared_error),所以在输出最佳评分时需要取其相反数。
你可以根据具体的需求和问题,调整参数网格和评分指标,以获得最佳的模型参数组合。
阅读全文