【发布时间】:2021-09-13 13:42:08
【问题描述】:
我想了解为什么少数类 ("1") 的精确召回曲线如此出色,而同一类的精确率 (0,2) 和召回率 (0,4) 指标如此之好坏的。 我将 sklearn.metrics.plot_precision_recall_curve 与 pos_label=0(多数类)和 pos_label=1(少数类)一起使用。 下面你可以看到使用的代码。
def plotagem_curvas (nome_modelo, modelo, X_test, y_test, folds, pos_label):
roc_auc = 0
ap=0
if (pos_label == 0):
classe='Not Stroke'
else:
classe='Stroke'
fig, axs = plt.subplots(1, 2, figsize=(12,4))
axs[0].set_title("Curva ROC - " + nome_modelo + " \"" + classe + "\"" , fontsize=10)
disp = metrics.plot_roc_curve(modelo, X_test, y_test, ax=axs[0], pos_label=pos_label)
roc_auc = disp.roc_auc
axs[1].set_title("Curva Precision Recall - " + nome_modelo + " \"" + classe + "\"", fontsize=10)
disp = metrics.plot_precision_recall_curve(modelo, X_test, y_test, ax=axs[1], pos_label=pos_label)
ap = disp.average_precision
return (roc_auc, ap)
# Random Forest - Precision_recall curve for both classes (0, 1)
roc_auc, ap = plotagem_curvas ("Random Forest", modelo, X_test, y_test, folds, 0)
roc_auc2, ap2 = plotagem_curvas ("Random Forest", modelo, X_test, y_test, folds, 1)
这是混淆矩阵: Matrix
还有曲线...: Curves
不知道是不是调用函数“plot_precision_recall_curve”的时候出错了。
【问题讨论】:
标签: python metrics precision-recall