我正在尝试使用神经网络来解决一些机器学习问题,主要是使用NEAT
进化(增强拓扑的NeuroEvolution)。
我的一些输入变量是连续的,但其中一些是绝对的,如:
首先,我想通过将类别映射到离散数字来建模这样的变量,例如:
{Lion:1,Leopard:2,Tiger:3,Jaguar:4}
但我担心这会在变量上添加某种任意拓扑。老虎不是狮子和豹子的总和。
通常采用什么方法解决这个问题?
答案 0 :(得分:18)
不幸的是,没有良好的解决方案,每个都会导致某些问题:
is_categorical_feature_i_equal_j
的形式对数据进行编码,这不会导致任何其他拓扑,但会以指数方式增加要素数量。因此,你可以获得“物种”的特征“is_lion”,“is_leopard”等,当时只有其中一个等于1
这两种第一种方法是针对“极端”情况 - 一种是计算上非常便宜,但可能导致高偏差,而这种情况引入了很多复杂性,但不应影响分类过程本身。最后一个很少可用(由于假设分类值很少)但在机器学习方面却相当合理。