sklearn ImportError:无法导入plot_roc_curve名称

9

我试图使用交叉验证绘制接收器操作特性(ROC)曲线,按照sklearn文档提供的示例。 但是,在python2python3中,以下导入会导致ImportError

from sklearn.metrics import plot_roc_curve

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name plot_roc_curve

python-2.7 使用的sklearn版本: 0.20.2.

python-3.6 使用的sklearn版本: 0.21.3.

我发现以下导入代码可以正常工作,但与plot_roc_curve略有不同。

from sklearn.metrics import roc_curve

plot_roc_curve 是否已被弃用?能否有人尝试该代码并告知它是否可以在 sklearn 版本下运行?

6个回答

12

plot_roc_curve自1.2版本已被移除,从1.2版本开始,请使用RocCurveDisplay代替:

在sklearn 1.2之前:

from sklearn.metrics import plot_roc_curve
svc_disp = plot_roc_curve(svc, X_test, y_test)
rfc_disp = plot_roc_curve(rfc, X_test, y_test, ax=svc_disp.ax_)

从sklearn 1.2版本开始:

from sklearn.metrics import RocCurveDisplay
svc_disp = RocCurveDisplay.from_estimator(svc, X_test, y_test)
rfc_disp = RocCurveDisplay.from_estimator(rfc, X_test, y_test, ax=svc_disp.ax_)

8

安装scikit-plot并从中导入指标:

from scikitplot.metrics import plot_roc_curve


1
我使用conda update --all更新了Conda,然后将scikit-learn更新到最新版本,对我来说是conda install scikit-learn=0.23.2,并重新启动了内核。之后我的错误消失了。

1
正如官方sklearn文档所述:函数plot_roc_curve在1.0版本中已被弃用,并将在1.2版本中删除。如果您需要更多详细信息,请参阅此处
请使用以下类方法之一:sklearn.metric.RocCurveDisplay.from_predictionssklearn.metric.RocCurveDisplay.from_estimator。如果您需要更多详细信息,请参阅此处

0

for

ImportError: cannot import name 'plot_roc_curve' from 'sklearn.metrics'

使用RocCurveDisplay代替plot_roc_curve,就像from sklearn.metrics import RocCurveDisplay中那样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接