5

我试图预处理生物数据来训练一个神经网络,尽管有各种规范化方法的广泛搜索和重复呈现,但我不明白应该在什么时候使用哪种方法。特别是我有许多输入变量,这些输入变量是正向偏移的,并且试图确定是否存在最适合的归一化方法。偏斜特征的最合适的归一化/变换方法?

我还担心这些输入的性质是否会影响网络的性能,并因此尝试过数据转换(特别是对数转换)。然而,一些输入具有许多零点,但也可能是十进制小数值,并且似乎受到log(x + 1)(或针对该事件的从1到0.0000001的任何数字)的高度影响,由此产生的分布不能接近正常(或者保留偏斜或在最小值处变成双峰并具有尖峰)。

这是否与神经网络有关?即。我是否应该使用特定的功能转换/标准化方法来说明偏斜的数据,还是应该忽略它并选择标准化方法并推进?

对此事的任何意见将不胜感激!

谢谢!

回答

0

这是一个有趣的问题。规范化旨在将特征的值保存在一个规模中,以促进优化过程。如果您需要将资料标准化

1-检查:

我建议如下。例如,如果变量或特征的均值在相同的数值范围内,则可能无法进行归一化。 MSVMpack针对其SVM实施使用一些标准化检查条件。但是,如果您需要这样做,仍建议您在没有标准化的情况下对数据运行模型。

2-如果您知道某个功能的实际最大值或最小值,请使用它们来规范该功能。我认为这种正常化会保持价值的偏离。

3-尝试使用其他功能进行十进制值标准化(如果适用)。

最后,我们仍建议您应用不同的标准化技术,并比较evey技术的MSE,包括可能损害数据偏斜的z-score。

我希望我已经回答了你的问题并提供了一些支持。

+0

关于标准化检查条件,我尝试使用MSVMPack运行一些数据集,并得到以下输出: **数据矩阵的列在其标准偏差(> 10)之间显示出较大差异 **。 **这可能会影响分类器的性能。 你想要数据归一化([y]/n)? – soufanom

2

由于输入向量中的要素具有不同的性质,因此应对每个要素使用不同的归一化算法。为了获得更好的性能,网络应该通过统一的数据输入。

正如你所写的那样,一些数据是倾斜的,我想你可以运行一些算法来“规范化”它。如果应用对数不起作用,可能会试用other functionsrank transforms等方法。

如果小十进制值在一个特定的功能也完全发生,那么就归它特殊的方式,使他们得到转化为你的工作范围:无论是[0,1]或[-1,+ 1 ] 我想。

如果某些输入有很多零,请考虑从主神经网络中移除它们,并创建额外的神经网络,该神经网络将对具有非归零功能的向量进行操作。或者,您可以尝试运行主成分分析(例如,通过具有结构NMN的自动关联存储器网络,M < N)以减少输入空间维度,从而消除零点零部件(它们将在新的组合输入中以某种方式被实际考虑)。顺便说一句,新的M输入将被自动标准化。然后,您可以将新的向量传递给您的实际工人神经网络。

相关问题