关于ML、DL中的一些问题(1)——数据归一化的作用

1.为什么要进行数据归一化?在进行数据分析的时候,什么情况下需要对数据进行标准化处理?

归一化首先在维数非常多的时候,可以防止某一维或某几维对数据影响过大,其次可以程序可以运行更快。方法很多,min-max,z-score,p范数等

主要看模型是否具有伸缩不变性。

有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。

有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

2.模型是否有伸缩不变形这个如何证明

看数据经过变换后,与原来的最优解等价的模型是否仍是最优解。

3.神经网络也需要normalization吗?

是的,会让训练更容易.
如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛, 如下图
这里写图片描述
这里写图片描述

4.有没有什么情况是不可以或不建议标准化的呢?

各维量纲相同,分散程度接近,就不必标准化了。

5.对数据做PCA,之前考虑归一化,应该是对每一维特征做归一化然后合起来还是直接对整个特征矩阵归一化?

整体做归一化相当于各向同性的放缩,做了也没有用。

各维分别做归一化会丢失各维方差这一信息,但各维之间的相关系数可以保留。 如果本来各维的量纲是相同的,最好不要做归一化,以尽可能多地保留信息。

如果本来各维的量纲是不同的,那么直接做PCA没有意义,就需要先对各维分别归一化。

6.机器学习数据归一化的的方法有哪些?适合于什么样的数据?

常见的有这两种:
1. 最值归一化。比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。适用于本来就分布在有限范围内的数据。

2.均值方差归一化,一般是把均值归一化成0,方差归一化成1。适用于分布没有明显边界的情况,受outlier影响也较小。

7.为什么 feature scaling 会使 gradient descent 的收敛更好?

引用块内容

转自:

作者:王赟 Maigo 链接:https://www.zhihu.com/question/26546711/answer/62085061
来源:知乎 著作权归作者所有,转载请联系作者获得授权。

猜你喜欢

转载自blog.csdn.net/tangwenbo124/article/details/53538706