如果变量是有序的而不是名义的,你只能做你提议的事情,即使这样,这也是一个有点武断的决定。在我提出解决方案之前,先说明一下术语:
名义变量与有序变量
假设A
,B
等代表颜色。这些是名义变量的值,不能以有意义的方式排序。你不能说红色大于黄色。因此,您不应将数字分配给名义变量。
现在假设A
, B
, C
, 等代表服装尺寸,例如small
, medium
,large
等。即使我们不是在绝对尺度上测量这些尺寸(即我们不说small
对应于 40 个胸围),很明显small
< medium
< large
. 考虑到这一点,您是否设置small=1
, medium=2
, large=3
, 或small=2
, medium=4
,仍然有些随意large=8
。
One-of-N 编码
解决此问题的更好方法是使用所谓的 one-of-N 编码。如果您有 5 个不同的值,则需要 5 个输入单元,每个输入单元可以取值1
或0
。继续我的服装示例,尺寸extra small
可以编码为10000
、small
as 01000
、 medium as00100
等。
类似的原则适用于网络的输出。如果我们将服装尺寸视为输出而不是输入,那么当网络输出向量时[0.01 -0.01 0.5 0.0001 -.0002]
,您会将其解释为尺寸medium
。
In reply to your comment on @Daan's post: if you have 5 inputs, one of which takes 20 possible discrete values, you will need 24 input nodes. You might want to normalise the values of your 4 continuous inputs to the range [0, 1]
, because they may end out dominating your discrete variable.