我试图用神经网络来解决一些机器学习问题,主要是通过NEAT进化(NeuroEvolution of Extended拓扑)来解决。
我的一些输入变量是连续的,但其中一些变量具有分类性质,例如:
起初,我想通过将类别映射到离散数字来建模这样的变量,例如:
{狮子:1,豹:2,老虎:3,美洲虎:4}
但恐怕这会在变量上增加某种任意拓扑。老虎不是狮子和豹的总和。
通常使用什么方法来解决这个问题?
发布于 2013-09-16 10:15:05
不幸的是,没有好的解决方案,每个解决方案都会导致一些问题:
is_categorical_feature_i_equal_j的形式对数据进行编码,这不会导致任何额外的拓扑结构,但会以二次增长的方式增加功能的数量。因此,如果设置“物种”,就可以得到"is_lion“、"is_leopard”等特征,而当时只有一个是相等的1。这两种方法都是为了“极端”情况--一种计算成本很低,但可能导致很高的偏差,而第二种方法带来了很大的复杂性,但不应影响分类过程本身。最后一种方法很少可用(因为假设有少量的分类值),但在机器学习方面却相当合理。
更新
这么多事情在8年里发生了变化。解决方案2绝对是最流行的解决方案,随着计算的增长,神经网络的广泛采用,以及稀疏输入的支持,现在的成本是可以减少的。
https://stackoverflow.com/questions/18825213
复制相似问题