随机森林使用交叉验证,给出代码
时间: 2024-10-03 14:02:03 浏览: 31
随机森林是一种集成学习方法,通过构建大量决策树并取其平均结果来提高预测性能。交叉验证在随机森林模型中用于评估模型的泛化能力,确保我们训练出的模型不会过拟合数据集。以下是使用Python的sklearn库进行随机森林模型训练时使用K折交叉验证的一个简单示例:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 创建随机森林分类器
rf_classifier = RandomForestClassifier(n_estimators=100) # 可自定义参数
# 使用K折交叉验证计算得分(这里以5折为例)
kfold_scores = cross_val_score(rf_classifier, X, y, cv=5, scoring='accuracy') # 'accuracy' 或其他评估指标
# 打印每个折叠后的准确率
for i, score in enumerate(kfold_scores):
print(f"Fold {i+1}: {score:.2f}")
# 输出所有折叠后的平均准确率作为模型性能的整体估计
print("Average accuracy:", kfold_scores.mean())
```
在这个例子中,`cross_val_score`函数会将数据分为5份,每次用4份训练模型,剩下的1份测试。这个过程会重复5次,每次的测试分数都被保留下来,最后求平均值作为最终的模型性能评估。
阅读全文