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