【问题标题】:ML.NET - Multiclass Classification score valuesML.NET - 多类分类得分值
【发布时间】:2018-12-13 02:54:41
【问题描述】:

我目前有一个项目来获取大量文本并将它们分类为类型。这类似于微软提供的情感样本,除了它是多类而不是二进制。

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

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

【问题讨论】:

    标签: ml.net


    【解决方案1】:

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

    但在 ML.NET 多类学习者中,它们始终介于 0 和 1 之间,总和为 1。您可以将分数视为“属于该类的预测概率”。

    现在到了如何考虑信心的问题。对于二元分类问题,我会有一个标准建议:绘制一条精确召回曲线,然后选择两个阈值,而不是在分数上选择一个阈值:一个给出高精度(可能是低召回)正值的阈值,以及另一个给出高精度可能低召回率的)否定。

    所以:

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

    对于多类情况,您可以对每个类独立地使用相同的过程。这样,您将获得每个班级的“是-否-也许”答案。

    您将不得不处理可能出现多个“是”或与此方法发生其他冲突的可能性,但至少它给出了一个想法。

    【讨论】:

    • 非常感谢。我有一种感觉,我会在每个班级独立运行它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2020-04-02
    • 1970-01-01
    • 2019-12-20
    相关资源
    最近更新 更多