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

GridSearchCV与手动配置参数的RandomForestClassifier之间roc_auc_score结果不一致的问题

GridSearchCV与手动配置参数的RandomForestClassifier之间roc_auc_score结果不一致的问题

嘿,我一眼就发现你代码里的关键问题啦!

你手动计算AUC的时候,把参数传错了!看这一行:

auc = roc_auc_score(y_hat, y_hat_prob)

roc_auc_score的第一个参数应该是真实标签,第二个才是模型输出的预测概率值。你现在把模型预测出的类别标签y_hat当成真实标签传进去了,这相当于让模型和自己的预测结果比——模型对自己预测的类别肯定会给出最高的概率值,两者完全对应,ROC曲线直接就是完美的对角线(左上角到右下角),AUC自然会是1.0,这根本不是模型在验证集上的真实表现!

只需要把这行代码改成用真实的验证集标签y_validate就好:

auc = roc_auc_score(y_validate, y_hat_prob)

改完之后,手动训练的模型AUC就会和GridSearchCV得到的结果(0.84左右)在同一个区间了。

另外还有个小细节可以注意一下:RandomForestClassifier默认的random_state是None,这意味着每次训练时的随机数种子不一样,生成的决策树也会有细微差别,可能导致AUC有一点点波动。如果想要完全复现GridSearch里的最优模型结果,可以给手动训练的分类器加上固定的随机状态(比如random_state=0),和GridSearch中的模型保持一致。

备注:内容来源于stack exchange,提问作者akaphenom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:49:30