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

Sklearn导入plot_roc_curve报错,请求代码排查与解决

问题解决:ImportError: cannot import name 'plot_roc_curve' from 'sklearn.metrics'

这个错误是因为scikit-learn版本更新后,plot_roc_curve函数的位置发生了变化:从scikit-learn 1.0版本开始,该函数不再放在sklearn.metrics模块下,而是被迁移到了sklearn.metrics.plot模块,并且官方更推荐使用RocCurveDisplay类来替代它。

解决方案

方案1:使用官方推荐的RocCurveDisplay(推荐)

修改你的导入语句,替换plot_roc_curve为RocCurveDisplay:

from sklearn.metrics import roc_curve, roc_auc_score, RocCurveDisplay

之后绘制ROC曲线可以用以下两种方式:

  • 基于训练好的模型直接生成:
# 假设clf是你的分类器,X_test、y_test是测试集数据
RocCurveDisplay.from_estimator(clf, X_test, y_test)
plt.show()
  • 基于手动计算的指标值生成:
y_score = clf.predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, y_score)
roc_auc = roc_auc_score(y_test, y_score)

display = RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc, estimator_name="你的分类器名称")
display.plot()
plt.show()

方案2:从sklearn.metrics.plot导入旧函数(不推荐,后续版本可能移除)

如果暂时不想修改绘图逻辑,可以调整导入路径:

from sklearn.metrics.plot import plot_roc_curve

额外说明

你的其他导入语句没有问题,错误仅来自plot_roc_curve的位置变化。建议优先使用方案1,因为plot_roc_curve属于被弃用的API,后续版本可能会被彻底移除。

内容的提问来源于stack exchange,提问作者Sabrina Rashdi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:39:59