首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以范畴变量为输入的神经网络

以范畴变量为输入的神经网络
EN

Stack Overflow用户
提问于 2013-09-16 09:59:41
回答 1查看 5.6K关注 0票数 14

我试图用神经网络来解决一些机器学习问题,主要是通过NEAT进化(NeuroEvolution of Extended拓扑)来解决。

我的一些输入变量是连续的,但其中一些变量具有分类性质,例如:

  • 种类:{狮子、豹、老虎、捷豹}
  • 贸易分支机构:{保健、保险、金融、信息技术、广告}

起初,我想通过将类别映射到离散数字来建模这样的变量,例如:

{狮子:1,豹:2,老虎:3,美洲虎:4}

但恐怕这会在变量上增加某种任意拓扑。老虎不是狮子和豹的总和。

通常使用什么方法来解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-16 10:15:05

不幸的是,没有好的解决方案,每个解决方案都会导致一些问题:

  • 正如您提到的,您的解决方案是添加拓扑;它可能没有那么糟糕,因为NN可以适应任意函数并表示"ifs",但在许多情况下它会(因为NN经常陷入某些局部极小值)。
  • 您可以以is_categorical_feature_i_equal_j的形式对数据进行编码,这不会导致任何额外的拓扑结构,但会以二次增长的方式增加功能的数量。因此,如果设置“物种”,就可以得到"is_lion“、"is_leopard”等特征,而当时只有一个是相等的1
  • 与可能的分类值相比,如果有大量的数据(例如,你有10000个数据点,而只有10个可能的分类值),你也可以将问题分解成10个独立的问题,每个问题都是针对一个特定的值进行训练的(因此我们有“狮子神经网络”、“美洲虎神经网络”等)。

这两种方法都是为了“极端”情况--一种计算成本很低,但可能导致很高的偏差,而第二种方法带来了很大的复杂性,但不应影响分类过程本身。最后一种方法很少可用(因为假设有少量的分类值),但在机器学习方面却相当合理。

更新

这么多事情在8年里发生了变化。解决方案2绝对是最流行的解决方案,随着计算的增长,神经网络的广泛采用,以及稀疏输入的支持,现在的成本是可以减少的。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18825213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档