如何规范化神经网络和决策林的数据


10

我有一个包含20000个样本的数据集,每个样本都有12种不同的功能。每个样本都在类别0或1中。我想训练一个神经网络和一个决策林来对样本进行分类,以便我可以比较结果和这两种技术。

我偶然发现的第一件事是数据的正确规范化。一个特征是在范围,另外一个在[ 30 40 ]和有一个特点,大多采用值8和有时7.因此,正如我在不同的来源读取,输入数据的适当的归一化对于神经网络至关重要。我发现,有许多可能的方法可以对数据进行规范化,例如:[0,106][30,40]

  1. 最小-最大归一化:输入范围被线性变换到间隔(或可替代[ - 1 1 ],关系?)[0,1][1,1]
  2. Z-分数标准化:该数据被变换为具有零均值和单位方差:
    ynew=yoldmeanVar

我应该选择哪种归一化?决策林是否也需要规范化?通过Z-Score归一化,我的测试数据的不同功能不在同一范围内。这可能是个问题吗?是否应该使用相同的算法对每个功能进行归一化,以便我决定对所有功能使用Min-Max还是对所有功能使用Z-Score?

是否有组合,其中数据被映射到,并且还具有零平均值(这将意味着该数据的非线性变换,并因此在方差和输入数据的其他特征的改变)。[1,1]

我感到有点迷茫,因为我找不到可以回答这些问题的参考资料。

Answers:


21

我不同意其他意见。

(Xxi,X>xi)

随机森林只是一堆决策树,因此它不会改变这一原理。

神经网络是另一回事。首先,就预测而言,它没有区别。由于神经网络仅缩放权重并更改偏差,因此可以轻松应对您的归一化。最大的问题在于培训。

如果您使用诸如弹性反向传播之类的算法来估计神经网络的权重,那么它就没有任何区别。原因是因为在朝着使误差最小化的方向改变权重时,它使用的是梯度的符号而不是其大小。neuralnet顺便说一下,这是R中包的默认算法。

什么时候有所作为?当您将传统的反向传播与S型激活函数一起使用时,它会使S型导数饱和

考虑S形函数(绿色)及其导数(蓝色):

乙状结肠

s(9999)=0

XminXmaxXminX0.5

实际的归一化不是很关键,因为它只会影响优化过程的初始迭代。只要居中并且大多数数据都在1以下,则可能意味着您必须使用更少或更多的迭代才能获得相同的结果。但是结果是相同的,只要您避免了我提到的饱和问题即可。

这里没有讨论的是正则化。如果在目标函数中使用正则化,则数据标准化的方式影响结果模型。我假设您已经对此很熟悉。如果您知道一个变量更容易导致过度拟合,则数据的规范化应考虑到这一点。当然,这完全独立于所使用的神经网络。


2
  1. 没有明确的答案。我建议您使用不同的方法来扩展数据,然后使用相同的模型来预测您的坚持集的结果(RF在这里可以很好地工作)。那应该至少告诉您哪种缩放方法最适合您的预测问题。
  2. 您无需为随机森林扩展数据
  3. 只要始终如一地进行扩展,各个范围就不成问题。这只是说明变量之间存在差异,只是比以前更紧凑。
  4. 是的 -您应该使用相同的方法缩放所有数据。否则,转换后的数据集中的值可能与数据本身无关,而是与用于缩放的算法有关。

希望这会有所帮助。


1
很好的答案,我只是补充说,这取决于您要处理的数据的特定分布以及是否要删除异常值。如果您对标准数据进行标准化,它将看起来非常好。但是,使用最小/最大规格化,均匀分布可能看起来更好。此外,如果您对min / max进行归一化,则sigma = 10的对数正态分布可能会隐藏许多接近零的有趣行为。
AN6U5

@ AN6U5-非常好。老实说,我对扩展对不同基础分布/离群值的影响没有过多考虑。可能今天早上读一读!
plumbus_bouquet
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.