ML.NET - 多类分类得分值

ML.NET - Multiclass Classification score values

我目前有一个项目可以获取大量文本并将它们class确定为类型。这类似于微软提供的情绪样本,只是它的 multiclass 而不是二进制。

我的代码运行良好,并且可能会随着我们向其中添加数据而变得更强大。但是,我遇到了一个障碍,我无法确定直接预测是否不知道该选择什么。对于我的项目,不知道答案比弄错答案更有价值。我不确定 ML.net 中是否存在这种情况。我正在查看文档,唯一能找到的是预测产生的分数值。其中的问题在于我不知道任何分值的含义。我知道它们是按 class 分解的,但是算法之间的数值不同。有没有人对这些价值观有任何见解?或者如果对 "don't know" 与 "guessing" 问题有任何建议?

感谢您的宝贵时间,谢谢。

分数在很大程度上是特定于学习者的,唯一的要求是它们是单调的(分数越高意味着示例属于该 class 的可能性更高)。

但在 ML.NET multiclass 学习器中,它们总是介于 0 和 1 之间,总计为 1。您可以将分数视为 'predicted probabilities to belong to that class'。

现在谈谈如何考虑信心的问题。对于二进制 classification 问题,我有一个标准建议:绘制一条精度召回曲线,然后选择两个而不是选择分数上的一个阈值:一个给出高精度(可能低- recall) positive, 另一个给出高精度的潜在低recall) negative.

所以:

if (score > threshold1)
    return "positive";
else if (score < threshold2)
    return "negative";
else
    return "don't know";

对于 multiclass 情况,您可以对每个 class 独立使用相同的过程。这样,您将得到每个 class 'yes-no-maybe' 的答案。

您将不得不处理多个 'yes' 的可能性或使用此方法的其他类型的冲突,但至少它提供了一个想法。