5

我正在尝试预处理生物数据以训练神经网络,尽管对各种标准化方法进行了广泛的搜索和重复介绍,但对于何时应该使用哪种方法我一无所知。特别是我有一些输入变量是正偏态的,并且一直在尝试确定是否存在最合适的归一化方法。

我还担心这些输入的性质是否会影响网络的性能,因此我尝试了数据转换(特别是对数转换)。然而,一些输入有许多零,但也可能是小的十进制值,并且似乎受到 log(x + 1) (或从 1 到 0.0000001 的任何数字)的高度影响,结果分布未能接近正常(要么仍然偏斜或变成双峰,在最小值处有一个尖峰)。

这与神经网络有关吗?IE。我应该使用特定的特征转换/归一化方法来解释倾斜的数据,还是应该忽略它并选择一种归一化方法并继续推进?

任何关于此事的建议将不胜感激!

谢谢!

4

2 回答 2

2

由于输入向量中的特征具有不同的性质,因此您应该对每个特征使用不同的归一化算法。网络应该由每个输入的统一数据提供,以获得更好的性能。

正如您所写的一些数据是倾斜的,我想您可以运行一些算法来“规范化”它。如果应用对数不起作用,也许可以尝试其他函数和方法,例如秩变换。

如果小十进制值确实完全出现在特定功能中,那么只需以特定方式对其进行规范化,以便它们转换为您的工作范围:我想是 [0, 1] 或 [-1, +1]。

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

于 2012-11-09T17:44:01.703 回答
0

这是个有趣的问题。归一化旨在将特征值保持在一个范围内,以促进优化过程。

我建议如下:

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

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

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

最后,仍然建议您应用不同的归一化技术并比较 MSE 与可能损害数据偏斜度的各种技术(包括 z 分数)。

我希望我已经回答了您的问题并给予了一些支持。

于 2012-11-09T15:41:40.453 回答