如何处理属于多个类别的项目

数据挖掘 分类 神经网络
2022-02-09 18:51:00

因此,我正在训练一个分类任务,该任务将 2x2x2 魔方的状态描述作为输入,并输出最佳移动。我注意到的一个潜在问题是,在许多州,不止一个动作是最优的。特别是,只有大约 46% 的州只有一个最优棋步,24% 有 2 个,12% 有 3 个,等等。所以我有几个选择。

我想到的选项是

  1. 让每个数据点随机选择最佳移动
  2. 对每个最优移动包含相同概率的数据点进行交叉熵最小化。即 (0.5,0.5,0,0,0,0,0,0,0) 如果前两个是最优的
  3. 丢弃具有不止一个最佳移动的状态(这看起来真的很糟糕)

标准做法是什么?另外,1和2有区别吗?

如有必要,您可以假设我正在使用神经网络模型

1个回答

有多种方法可以做到这一点。您提出的前两个选项将是有效的,但我不确定日志损失是否允许您使用概率作为目标,而不仅仅是二进制标签,但如果是这样的话,它们将适用于您想要的。我还有一个建议。假设在任何时候都有n 个可能的移动可用(在 2x2x2 的情况下,有三个维度,我认为每个维度有 4 个移动,所以这将是 12 个选项)你可以训练 12 个分类器,或者在神经网络的情况下输出层中只有 12 个 sigmoid。然后,您可以将每一步表示为概率,将训练目标表示为 1 和 0 的向量,其中 1 为最佳移动,然后在分类期间选择概率最高的一个。

您的第一个选项的扩展是将所有最佳移动添加为状态。假设移动 2 和 4 是最佳的,您可以使用不同的标签添加两次相同的状态。

编辑:也就是说,我认为如果数学可行,您的第二个选择是最好的选择(我对此不确定,现在没有时间弄清楚),但其他选项也可以。

EDIT2:根据 Neil Slater 的说法,如果实施得当,第二个选项将起作用,我认为这是最干净的解决方案,所以如果可能的话我会这样做,否则我会选择多个样本以获得多个最佳移动或 12方式二元分类。