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

Sklearn的cross_validate搭配SVC模型返回NaN问题求助

问题原因

你使用的评估指标列表中包含roc_auc_ovr_weighted,该指标需要模型输出每个类别的预测概率才能计算。而SVC类的默认参数probability=False,不会额外训练概率校准模型,无法输出概率值,因此该指标的计算结果为NaN,其余不需要概率的指标(如准确率、召回率、精确率等)本可以正常输出,但cross_validate在部分指标计算失败时会批量返回NaN,这就是你看到所有SVC相关结果都是NaN的原因。

其他模型如RandomForest、XGBoost等默认支持输出预测概率,因此可以正常完成所有指标计算。你单独测试recall_weighted指标时可以正常输出,也印证了不需要概率的指标本身对SVC是可用的。

解决方法

根据你的需求二选一即可:

  • 方法1:开启SVC的概率输出能力,修改SVC初始化代码为SVC(probability=True)。该参数会触发SVC额外训练Platt缩放模型用于概率校准,会小幅增加训练耗时,但可以正常计算所有你指定的评估指标。
  • 方法2:移除评估指标列表中的roc_auc_ovr_weighted,如果你不需要AUC相关指标,直接删除scoring列表中的该项即可,无需修改SVC参数也能得到所有剩余指标的正常结果。

内容的提问来源于stack exchange,提问作者David Hernandez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:00:04