使用 sklearn 进行多类分类的 ROC

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

我正在尝试为高度不平衡和多类的数据生成 ROC 曲线(我知道这并不理想,这是论文审稿人要求的)。 SKlearn 在这里有一个选项: https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html

我使用的具体代码是这样的:

RocCurveDisplay.from_predictions(
    y_onehot_test.ravel(),
    y_score.ravel(),
    name="micro-average OvR",
    color="darkorange",
    plot_chance_level=True,
)
plt.axis("square")
plt.xlabel("False Positive Rate")
plt.ylabel("True Positive Rate")
plt.title("Micro-averaged One-vs-Rest\nReceiver Operating Characteristic")
plt.legend()
plt.show()

我对平均感到困惑:标题包含我们使用“微平均ovr”的信息,但我实际上在哪里将此信息提供给函数?

y_onehot_test 看起来像这样: 1 1 1 0 0 ...

y_score 看起来像这样: 0.783307 0.832748 0.619186 0.645178 0.654100 ...

感谢您的见解和解释:)

python machine-learning scikit-learn roc multiclass-classification
1个回答
0
投票

如果将来有人有同样的问题 - 答案是更好地理解微观平均。 微平均赋予每个样本相同的权重,因此在这种情况下不需要类别信息。 如果您确实想根据班级规模给予不同的权重,则需要加权平均。

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