机器学习之预测概率问题

张开发
2026/4/16 22:32:52 15 分钟阅读

分享文章

机器学习之预测概率问题
超清晰解释为什么两个正确率score数值不一样我直接给你讲最核心、最本质的原因保证你一看就懂你代码里这两行print(f正确率{estimator.score(x_train,y_train)})# 0.98print(f正确率:{accuracy_score(y_test,y_predict)})# 0.91一句话总结一个是“做过的题得分”一个是“没做过的新题得分”当然不一样1. 两个分数到底算的是什么①score(x_train, y_train)→训练集正确率 0.98用训练集数据打分模型早就见过这些数据已经学过了相当于拿课堂练习题考学生学生当然得分高②accuracy_score(y_test, y_predict)→测试集正确率 0.91用测试集数据打分模型从来没见过这些数据相当于拿全新期末考试卷考学生分数自然会比训练集低一点这才是模型真实能力2. 为什么训练集分数一定更高机器学习模型会努力记住训练集的规律甚至会记住训练集里的细节记住训练集里的噪声所以在自己学过的数据上表现极好。但测试集是全新数据模型不能“背答案”所以分数会更真实、更低、更有参考价值。3. 你的结果完全正常训练集正确率0.98 ✅ 正常见过的题 测试集正确率0.91 ✅ 正常没见过的新题只要测试集正确率不是远低于训练集比如 0.98 vs 0.5就说明没有过拟合模型很健康。4. 最重要的结论一定要记住我们看模型好坏只看测试集分数0.91才是模型真实准确率0.98只是记忆分数不能代表模型能力5. 你代码里的小问题顺手帮你改你写的print(f正确率{estimator.score(x_train,y_train)})应该改成print(f训练集正确率{estimator.score(x_train,y_train)})print(f测试集正确率{accuracy_score(y_test,y_predict)})这样就不会混淆了。最终超级简单总结0.98模型做自己学过的题→ 分数高0.91模型做全新的考题→ 分数真实两个不一样 完全正常 机器学习必然现象

更多文章