我应该如何编码分类输入?

人工智能 神经网络 机器学习 人工智能设计
2021-11-03 11:16:36

假设您有一个输入,它可以采用 10 个不同的唯一值之一。你会如何编码?

  1. 输入长度为 10 并对其进行 one-hot 编码。

  2. 有 1 个输入,但对输入范围之间的值进行归一化。

最终的结果会一样吗?

1个回答

与许多关于如何表示特征或最好地从中学习的一般问题一样,答案是“视情况而定”。

  • 如果单独的项目有一个自然序列,并且该序列以某种方式为预测提供信息,那么这些类可能最好作为一个单一的特征,它采用离散值,缩放到网络。一个很好的例子可能是预测房价,其中一个特征是财产税带(在有这些的地方,例如英国议会税)。

  • 如果类没有与问题相关的自然顺序,那么 one-hot-encoding 通常是更好的解释。这方面的一个例子可能是根据制造商预测汽车的价格。

在这两种情况下,具有足够层和连接以及足够数据的神经网络可以解决更困难的表示,并且在实践中的表示之间几乎没有有效差异。但是,如果您对该特征有所了解,则根据该知识选择最“自然”的表示是很正常的,并且通过做出正确的选择,您通常会看到小幅改进。在第一种情况下,神经网络可以受益于需要更少的参数,并且学习效率更高。

如果您不确定,那么选择 one-hot 与单个缩放输入应该是您作为超参数调整的一部分执行的实验,以及您不确定的任何其他特征工程。