【问题标题】:Convert probabilities to a score将概率转换为分数
【发布时间】:2018-01-06 15:27:21
【问题描述】:

我有一个项目,从客户 cmets 提供的文本数据中测量客户的情绪水平为 0(快乐)、1(中立)、2(不快乐)。我已经在 tensorflow 上训练了一个分类器模型,它可以预测新文档的情绪水平。在那之前没有问题。我可以得到分类器的预测概率表明一个新文档属于哪个级别。在预测新文档属于哪个类后,我得到如下概率:

水平 - 概率

0(快乐)---> 0.17

1(中性)---> 0.41

2(不开心)---> 0.42

这个结果表明预测文档属于第 2 类。但是,我需要精确的情感分数,而不仅仅是标签。如果我将区间 [0-1] 分成 3 个部分,每个部分对应一个标签,如 [0-0.33]、[0.33-0.66]、[0.66-1]。对于上述情况,我需要一个介于 0.66 和 1 之间的分数,并且应该更接近 0.66,比如 0.68。

如下所示:

EX-I:

水平 - 概率

0:[0-0.33] --> 0

1:[0.33-0.66] --> 1

2:[0.66-1] --> 0

EX-I 分数应为 0.5

。 .

EX-II:

水平 - 概率

0:[0-0.33] --> 0.51

1:[0.33-0.66] --> 0.49

2:[0.66-1] --> 0

EX-II 的分数应该小于 0.33 但非常接近。

这种情况在数学上的确切术语是什么,或者是否有一个公式可以根据概率计算当前的模糊分数。

感谢您的帮助。

【问题讨论】:

    标签: machine-learning probability fuzzy-logic


    【解决方案1】:

    您应该转向回归,而不是进行分类。

    在您的训练步骤中,您可以将 happy 类转换为 0,将 neutral 类转换为 0.5,将 unhappy 类转换为 1。 然后,您的 tensorflow 模型将预测 0 到 1 之间的值,这些值对应于您想要执行的操作。

    【讨论】:

    • 我不确定是否可以将类标签更改为十进制数 0.5。将类标签操作为 0,1,2 或 0,0,5,1 有关系吗?我使用了 tensorflow 的 model.predict_proba() 函数,它只是给出了每个类的预测概率。
    • 这是我能看到的最简单的方法,但是你必须稍微改变你的模型,因为它需要是一个回归模型。
    猜你喜欢
    • 2022-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2015-03-31
    • 2019-03-17
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多