You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

模型测试集准确率达100%是否正常?以随机森林与SVC为例

Random Forest测试集100%准确率是否合理?

先明确:你看到的"测试集100%准确率"是代码逻辑错误导致的假象,实际情况是模型在训练集上达到了100%准确率,而测试集准确率是78%。

核心问题:代码里的评估逻辑完全搞反了

看你的clf函数代码:

def clf(model_clf,x_status, y_status,x_train, x_test, y_train, y_test):
    model_clf.fit(x_train, y_train)
    y_train_pred = model_clf.predict(x_test)  # 用测试集数据做预测
    y_test_pred= model_clf.predict(x_train)   # 用训练集数据做预测
    
    class_train_rep = classification_report(y_test,y_train_pred)
    print("Train:","\n",class_train_rep)  # 这里实际是测试集的评估结果
    
    class_test_rep = classification_report(y_train,y_test_pred)
    print("Test:","\n",class_test_rep)  # 这里实际是训练集的评估结果

正确的逻辑应该是:

  • 训练集评估:用x_train预测,和y_train对比;
  • 测试集评估:用x_test预测,和y_test对比。

所以你标注的"Train"报告其实是测试集的表现(RF的78%准确率),"Test"报告是训练集的表现(RF的100%准确率)。

训练集100%准确率是否合理?

对于Random Forest来说,这是完全可能的:

  • 如果模型没有做过拟合限制(比如默认参数下树深度无限制),它可以通过构建足够多的决策树,完美拟合训练数据的所有样本特征与标签的映射;
  • 但从测试集78%的准确率来看,这个模型已经出现了过拟合——在训练数据上表现完美,但面对未见过的测试数据时性能下降。

结论

你看到的测试集100%准确率是代码错误导致的误判,真实测试集准确率78%是合理的。训练集100%准确率虽然可能,但反映出模型泛化能力不足,建议调整Random Forest的参数(比如限制树深度max_depth、增加最小样本分割数min_samples_split)来缓解过拟合,提升测试集性能。

内容的提问来源于stack exchange,提问作者Keith Kamson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:08:32