sklearn ImportError:无法导入名称plot_roc_curve

问题描述 投票:0回答:7

我正在尝试按照 sklearn 文档中提供的 example 来绘制具有交叉验证的接收器操作特征 (ROC) 曲线。但是,以下导入在

ImportError
python2
中都会给出
python3

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 版本是否有效吗?

python machine-learning scikit-learn roc
7个回答
16
投票

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_)

9
投票

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

from scikitplot.metrics import plot_roc_curve

5
投票

绘图 API 在 版本 0.22 中引入。正如这里提到的,Scikit-learn 0.20 是支持 Python 2.7 和 Python 3.4 的最后一个版本。 Scikit-learn 现在需要 Python 3.5 或更高版本。


1
投票
我用

Conda

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


1
投票
正如sklearn官方文档提到的:函数

plot_roc_curve

在1.0中已弃用,并将在1.2中删除。如果您想了解更多详情,请参阅
此处

使用类方法之一:

sklearn.metric.RocCurveDisplay.from_predictions

sklearn.metric.RocCurveDisplay.from_estimator
。如果您想了解更多详细信息,请参阅
此处


0
投票
对于

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

RocCurveDisplay

 代替 
plot_roc_curve
from sklearn.metrics import RocCurveDisplay

    


0
投票

plot_roc_curve

 已弃用,并在 1.2 版本中从 
sklearn
 中删除。
使用
RocCurveDisplay
:当前绘制ROC曲线的方法不是
plot_roc_curve
,而是通过
RocCurveDisplay
中的
sklearn.metrics
类。

所以尝试一下

'从 sklearn.metrics 导入 RocCurveDisplay'

© www.soinside.com 2019 - 2024. All rights reserved.