文章目录
机器学习中为什么需要归一化
- 归一化后加快了梯度下降求最优解的速度;
- 归一化有可能提高精度
归一化为什么能提高梯度下降求解最优解的速度?
如上图所示,蓝色圆圈代表两个特征的的等高线。
- 左图中两个特征区别相差特别大。其中一个特征X1的区间是[0,2000],一个特征X2[1,5],所形成的等高线比较尖锐。当时用梯度下降法时,很可能要垂直等高线走,需要很多次迭代才能收敛。
- 右图中对两个原始特征进行了归一化处理,其对应的等高线相对来说比较圆,在梯度下降时,可以较快的收敛。
归一化可能提高精度
有些分类器需要计算样本之间的距离,例如k-means。如果一个特征的值域范围特别大。那么距离计算就主要取决于这个特征,有时会与实际情况相违背。(比如这时实际情况是值域范围小的特征更重要)
归一化常用的方法
-
线性比例变换法
-
极差变换法:
其中max为样本数据的最大值,min为样本数据的最小值,这种方法有缺陷
1)当有新数据加入时,可能导致max和min的变化,需要重新定义
2)存在极端的最大最小值 -
0均值标准化(Z-score方法标准化)
归一化与其中标准化的区别
-
归一化和标准化本质上就是一种线性变换。
在数据给定下,,常数那么归一化的新的形式就是.与标准化类似,可以变一下
事实上就是对向量 X按照比例压缩再进行平移 c。所以归一化和标准化的本质就是一种线性变换。 -
归一化与标准化的区别
-
归一化的缩放是统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。
-
归一化:缩放仅仅与最大最小值有关。
标准化:缩放与每个点有关。通过方差和均值体现出来。 -
归一化:输出范围在0-1之间
标准化:输出范围是负无穷到正无穷
-
使用标准化与归一化的场景
- 如果对输出结果范围有要求,用归一化
- 如果数据较为稳定,不存在极端的最大最小值,用归一化
- 如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响
哪些机器学习书算法不需要归一化
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。而像 adaboost、svm、lr、KNN、KMeans 之类的最优化问题就需
要归一化。