神经网络分类数据实现

14

我一直在作为业余项目学习神经网络,但是对于如何处理分类数据感到完全不知所措。我阅读了这篇文章:http://visualstudiomagazine.com/articles/2013/07/01/neural-network-data-normalization-and-encoding.aspx,其中解释了输入数据的归一化,并说明了如何使用效果编码对分类数据进行预处理。我理解将类别分成向量的概念,但不知道如何实际实现。

例如,如果我使用国家作为分类数据(例如芬兰,泰国等),那么我会将生成的向量处理成单个数字以馈送到单个输入中,还是每个向量组件都有一个单独的输入?后者的情况下,如果有196个不同的国家,那么这意味着我需要196个不同的输入来处理这个特定的数据部分。如果大量不同的分类数据被馈送到网络中,我可以看到这很快会变得非常难以管理。

我是否遗漏了什么?分类数据如何映射到神经元输入?


可能是关于玩贪吃蛇的神经网络的澄清的重复问题。 - devinbost
5
@devinbost,这已经是我在过去5分钟里看到的第10个关于神经网络的问题了,你将它们标记为重复问题,指向一个得分为-5但你刚好为其写了答案的关于玩贪吃蛇的神经网络的澄清问题。我觉得很难相信所有这些问题都是一个具有如此特定标题的问题的变体。我不假装理解你这样做的动机,但请解释一下,否则就停止这么做。 - tom redfern
1个回答

27

神经网络输入

原则上:不同的类别和分类应该有自己的输入信号。


为什么不能用单个输入进行编码

由于神经网络通过激活函数对输入值进行操作,较高的输入值将导致更高的激活输入。

 

较高的输入值将使神经元更有可能发生作用。

只要您不想告诉网络泰国芬兰“好”,那么您就可以将国家输入信号编码为InputValue(Finland) = 24, InputValue(Thailand) = 140

如何不格式化输入


正确的编码方式

每个国家都应该有自己的输入信号,以便它们平等地对激活神经元做出贡献。 输入信号示意图


如果添加了新的输入(例如,新的国家),该怎么办? - Drakmail
2
很棒的答案。对于那些感兴趣的人,这种技术被称为One-Hot编码。有几个工具,比如来自ScikitKeras内置方法,可以处理这些分类数据。 - DarkCygnus
一位热编码无法处理“新”的输入。作为替代方案,可以创建自己的OHE算法,并添加一个额外的“其他”列。这样,当添加新输入时,它可以进入“其他”列,直到模型使用新输入进行更新/训练。 - Lisle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接