plot_roc_curve引用不上的问题


前言

提示:这里可以添加本文要记录的大概内容:

sklearn引用的带交叉验证的roc工作曲线的时候,总是提示无法引用,没有这个function,经过官网查询,最后找的原因,是我的版本1.5。这个版本的用法已经不是以下这个了。此版本为sklearn的0.24版本。

一、原因

1.原代码

代码如下(示例):

from sklearn.metrics import plot_roc_curve


for i, (train, test) in enumerate(cv.split(X, y)):
    classifier.fit(X[train], y[train])
    viz = plot_roc_curve(classifier, X[test], y[test],
                         name='ROC fold {}'.format(i),
                         alpha=0.3, lw=1, ax=ax)

这部分代码是引用的代码部分,这里viz用的是plot_roc_curve方法,但是我发现不能引用,显示metrics库中没有plot_roc_curve的function

2.解决方法

代码如下(示例):

from sklearn.metrics import RocCurveDisplay

fig, ax = plt.subplots(figsize=(10, 10))
for fold, (train, test) in enumerate(kfold.split(X, y)):
    rf_model.fit(X[train], y[train])
    viz = RocCurveDisplay.from_estimator(
        rf_model,
        X[test],
        y[test],
        name=f"ROC fold {fold}",
        alpha=0.3,
        lw=1,
        ax=ax,
        plot_chance_level=(fold == n_splits - 1),
    )
    interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)
    interp_tpr[0] = 0.0
    tprs.append(interp_tpr)
    aucs.append(viz.roc_auc)

此处要查询一下sklearn的版本,1.5版本已经对这部分进行了更新,改用RocCurveDisplay.from_estimator,引用库为from sklearn.metrics import RocCurveDisplay


总结

sklearn1.5.0版本带交叉验证roc曲线代码网站:https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc_crossval.html#sphx-glr-auto-examples-model-selection-plot-roc-crossval-py

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐