随机森林交叉验证n_estimators和max_depth的代码
时间: 2024-03-25 12:40:32 浏览: 101
以下是使用随机森林进行交叉验证并调整参数 n_estimators 和 max_depth 的 Python 代码示例:
```python
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import cross_val_score
import numpy as np
# 定义参数范围
param_grid = {
'n_estimators': [50, 100, 200],
'max_depth': [5, 10, 15]
}
# 加载数据
X = np.array(...) # 数据特征
y = np.array(...) # 数据标签
# 创建随机森林分类器
rf = RandomForestClassifier()
# 使用网格搜索交叉验证来寻找最优参数
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5)
grid_search.fit(X, y)
# 输出最优参数
print("Best parameters: ", grid_search.best_params_)
# 使用最优参数创建分类器并进行交叉验证
rf_best = RandomForestClassifier(n_estimators=grid_search.best_params_['n_estimators'],
max_depth=grid_search.best_params_['max_depth'])
scores = cross_val_score(rf_best, X, y, cv=5)
# 输出交叉验证结果
print("Cross-validation scores: ", scores)
print("Average score: ", np.mean(scores))
```
该代码使用 GridSearchCV 函数来寻找最优参数,并使用交叉验证来评估模型的性能。其中,'n_estimators' 和 'max_depth' 是需要调整的参数范围。在找到最优参数之后,使用最优参数创建一个新的随机森林分类器,并使用交叉验证来评估其性能。最后,输出交叉验证结果的平均分数。
阅读全文