在神经网络分析中使用什么值?

问题描述 投票:-1回答:1

我有以下练习:

  • 使用k折交叉验证创建神经网络。评估不同配置的性能。

此后,对于相同的数据,我应该将这些值与使用决策树模型获得的值进行比较。

对于给定的数据:

enter image description here

我必须规范化值,并且能够规范化它们。但是问题是,改变竞速字段中的值是否有意义:

  • 亚洲-0
  • 白色-1
  • 其他-2

然后将值归一化(0到1),或者我应该只使用字段“年龄”,“薪水”和“学术水平”?

因变量将是一个新列,将薪水分为“高”和“低”。

在神经网络中进行标准化和使用有意义的是什么字段?我可以使用所有参数进行归一化并使用神经网络中的所有字段吗?

r neural-network decision-tree k-fold
1个回答
1
投票

这是一个有趣的问题。当使用神经网络(具有现代观点)时,通常最好使用尽可能多的数据,并最大程度地减少手动预处理的数量。

选项1最糟糕:仅使用数字属性(规范化)。

选项2更进一步:在顺序明显的地方也使用分类属性。我想这就是您打算对“学术水平”进行的操作。在这些情况下,您可以尝试将这些值转换为归一化的数字。不理想,但总比不使用它们要好。

Option 3:对于顺序意义不大的分类属性,您可以为每个选项创建一个布尔属性!由于它会迅速增加尺寸,因此这似乎很可怕,但这通常是一个好方法。例如,如果您有4个工作类别,则可以尝试使用4列,每个工作选项一列。

选项4:到目前为止,最好的方法(也是最难实现的方法)是使用嵌入。这类似于彻底改变了在自然语言处理中深度学习的使用的想法。

语言问题类似于您自己的问题:如何对输入单词进行数字化。第一种方法是将字符串中的每个单词转换为向量,其中向量的长度是词汇表中单词的数量,除当前单词的索引外,所有单词均为0。这称为单热编码。想象我们的词汇是“俄罗斯,苹果,湖,梨”。然后,单词“ Apple”将由[0,1,0,0]编码。很好,但这会删除很多信息。例如,Apple与Pear的相似之处大于与俄罗斯的相似之处,但[0,1,0,0]与[1,0,0,0]相似,与[0,0,0,1]相似。

但是我们可以使用密集向量! (例如[0.12,0.42,-0.01,0.9]。)例如,通常将字典中的任何单词编码为300维向量。语义相似性和意义的微妙之处将被编码在向量的不同维度上。

所以...为什么不对您有问题的属性做同样的事情?像您建议的那样对比赛输入进行排序没有任何意义,并且可能会使算法混乱。为什么“亚洲”价值最高?为什么在“西班牙裔”和“白色”之间出现“黑色”? (使用诸如种族这样的社会结构突出了这是有问题的。)

现在单词嵌入通常是经过预训练并可以重复使用的。在您的情况下,您需要将这些向量训练为模型参数的一部分(寻找“嵌入层”)。从头开始实现这一目标可能并不容易,但最好至少要意识到各种可能性。如果您想尝试一下这个想法,我建议您研究Fastai的表格学习,即使对于经验不足的人,这也确实使所有这些变得非常容易。

© www.soinside.com 2019 - 2024. All rights reserved.