随机森林超参数自动调参代码
时间: 2024-11-23 22:23:29 浏览: 25
random_forest_鸢尾花_网格调参_RandomForest_random_python鸢尾花网格调参方法_随机森林_
5星 · 资源好评率100%
随机森林是一种集成学习方法,它的超参数包括树的数量(`n_estimators`)、每棵树的特征数(`max_features`)、节点分裂的最大信息增益(`criterion`)等。在Python中,Scikit-Learn库提供了`GridSearchCV`或`RandomizedSearchCV`等工具来进行随机森林模型的超参数自动调优。
以下是使用`GridSearchCV`进行随机森林参数调优的一个简单例子:
```python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
# 假设我们有一个分类问题的数据集X_train, y_train
param_grid = {
'n_estimators': [50, 100, 200],
'max_features': ['auto', 'sqrt', 'log2'],
'criterion': ['gini', 'entropy'],
'max_depth': [None, 10, 20] # 可选添加其他超参数
}
# 创建并训练模型
rf = RandomForestClassifier()
grid_search = GridSearchCV(rf, param_grid, cv=5) # 使用交叉验证,cv=5表示5折
grid_search.fit(X_train, y_train)
# 获取最佳参数组合
best_params = grid_search.best_params_
print(f"Best parameters found: {best_params}")
# 使用最佳参数训练最终模型
best_rf = RandomForestClassifier(**best_params)
best_rf.fit(X_train, y_train)
```
在这个例子中,`GridSearchCV`会遍历所有给定的参数组合,并选择性能最好的一组作为最优解。运行完这个过程后,你可以用找到的最佳参数来创建一个新的模型进行预测。
阅读全文