【发布时间】:2020-06-19 22:55:07
【问题描述】:
我正在使用 Keras Sequential 模型处理多类分类问题。在我的数据集中,输出类具有以下值之一:
(1, 2, 3, 4, 5).
是的,我已经尝试过对输出进行 one-hot-encoding 并使用categorical_crossentropy 作为损失函数并在输出层使用softmax。
但是,我认为 softmax 和分类交叉熵不是我的正确选择。在我的数据集中,输出类具有一定的“离散性”(或规模)。 1 类是“最差”,5 类是“最好”。
假设在特定输入上,模型预测 2 并且真实类别是 1,这是一个更好的预测,因为模型预测类别 5 并且真实类别是 1。
我希望损失函数会考虑这些“小错误”,而不是以相同的方式处理所有错误。
总而言之,我想知道在给定问题的损失函数和输出层激活方面我的选择是什么。
【问题讨论】:
-
为处理类似问题的每个人更新: 1. 尝试使用
mean_squared_error作为您的损失函数,输出层:Dense(1, activation='linear')。 2. 我从@naive 收到的另一个建议是查看ordinal regression。
标签: python tensorflow keras loss-function multiclass-classification