我正在尝试使用神经网络解决一些机器学习问题,主要是NEAT
进化(增强拓扑的神经进化)。
我的一些输入变量是连续的,但其中一些具有分类性质,例如:
- 物种:{狮子,豹,虎,美洲虎}
- 贸易部门:{医疗保健、保险、金融、IT、广告}
起初,我想通过将类别映射到离散数字来对这样的变量进行建模,例如:
{狮子:1,豹:2,老虎:3,美洲虎:4}
但恐怕这会在变量上添加某种任意拓扑。老虎不是狮子和豹子的总和。
通常采用什么方法来解决这个问题?
我正在尝试使用神经网络解决一些机器学习问题,主要是NEAT
进化(增强拓扑的神经进化)。
我的一些输入变量是连续的,但其中一些具有分类性质,例如:
起初,我想通过将类别映射到离散数字来对这样的变量进行建模,例如:
{狮子:1,豹:2,老虎:3,美洲虎:4}
但恐怕这会在变量上添加某种任意拓扑。老虎不是狮子和豹子的总和。
通常采用什么方法来解决这个问题?
不幸的是,没有好的解决方案,每个都会导致一些问题:
is_categorical_feature_i_equal_j
,这不会产生任何额外的拓扑结构,但会以二次方的方式增加特征的数量。所以代替“物种”,你会得到“is_lion”、“is_leopard”等特征,而1
当时只有其中一个是相等的这两种第一种方法是针对“极端”情况的——一种在计算上非常便宜,但会导致高偏差,而第二种方法会引入很多复杂性,但不应影响分类过程本身。最后一个很少可用(由于假设分类值的数量很少),但在机器学习方面却相当合理。
8年的时间变化太多了。解决方案 2 绝对是最受欢迎的解决方案,随着计算的增长、神经网络的广泛采用以及对稀疏输入的支持,成本现在可以忽略不计