如何在Scikit-learn RandomForest中获取训练集准确率
你只需要先调用训练好的随机森林模型对训练集特征X_train做预测,再用accuracy_score对比训练集真实标签y_train和预测结果即可,修改方式如下:
- 第一步:获取训练集的预测结果,把下面代码里的
你的模型变量名换成你实际定义的随机森林实例名(比如常见的rf、clf)
y_train_pred = 你的模型变量名.predict(X_train)
- 第二步:输出训练集准确率,加在你原有打印测试集准确率的代码附近即可
print("训练集准确率:", metrics.accuracy_score(y_train, y_train_pred))
补全后的完整参考代码:
from sklearn import metrics from sklearn.ensemble import RandomForestClassifier # 假设你已经完成了数据集拆分,得到X_train、y_train、X_test、y_test # 模型训练代码(你原有逻辑不用改) clf = RandomForestClassifier() clf.fit(X_train, y_train) # 原有测试集准确率计算 y_pred = clf.predict(X_test) print("测试集准确率:", metrics.accuracy_score(y_test, y_pred)) # 新增训练集准确率计算 y_train_pred = clf.predict(X_train) print("训练集准确率:", metrics.accuracy_score(y_train, y_train_pred))
小提示:如果你的数据集规模很小,最终得到的训练集准确率远高于测试集,说明模型大概率出现了过拟合,可以后续调整随机森林的树深度、树数量、最小样本分割数等参数优化。
内容的提问来源于stack exchange,提问作者logankilpatrick
相关产品推荐
相关产品推荐

