如何确定机器学习模型的准确性指标?

时间:2019-06-11 04:11:39

标签: machine-learning

我正在用Keras制作深度学习ML模型。
我的任务是根据以下内容对某人的评分:1-103个不同类别的得分(例如,对于给定的人,输出必须是3的得分1-10个得分)人的不同属性,例如身高,体重,运动等。对于训练集,我得到了一些具有其属性和标签的人作为3分数。
在我的模型中,我对输出使用一种热矢量编码。也就是说,我制作了3x10=30个输出神经元,其中每个神经元分别表示一个特定的类别和得分(我使用categorical_crossentropy损失函数,因此我在每个神经元中得到1或0作为输出,然后将其转换回来查看预测分数。
我的问题是我无法理解在这种情况下应使用哪种精度指标。我需要与实际成绩相同的趋势。有关该指标的任何建议(也可以是一个自定义指标)。

输出示例:

Category A score: 5
Category B score: 3
Category C score: 7

Output Vector: 00001 00000 00100 00000 00000 01000

(向量上方的空格只是为了便于阅读)

1 个答案:

答案 0 :(得分:0)

您可以使用三个类别损失函数的加权和。假设对于类别ii \in {1, 2, 3},损失为l_i,则度量可以为\alpha_1 * l_1 + \alpha_2 * l_2 + \alpha_3 * l_3,其中\alpha_i是类别{{1}的权重},您可以根据类别的重要性进行调整。对于损失,您有很多选择。这是因为,如keras文档here中所述,“您可以将任何损失函数用作度量函数。”。

但是,有一个问题,当您拥有一个评分系统(例如您的问题的评分从1到9)时,如果标签为9并且模型预测为8,则比模型预测为1要好但是,看起来这不是您对系统建模的方式所掌握的。因此,您可以将i损失函数用于概率(softmax输出),也可以使用categorical_crossentropy损失函数。

相关问题