机器学习中为什么需要归一化

  1. 归一化后加快了梯度下降求最优解的速度;
  2. 归一化有可能提高精度

归一化为什么能提高梯度下降求解最优解的速度?

机器学习中的归一化
如上图所示,蓝色圆圈代表两个特征的的等高线。

  1. 左图中两个特征区别相差特别大。其中一个特征X1的区间是[0,2000],一个特征X2[1,5],所形成的等高线比较尖锐。当时用梯度下降法时,很可能要垂直等高线走,需要很多次迭代才能收敛。
  2. 右图中对两个原始特征进行了归一化处理,其对应的等高线相对来说比较圆,在梯度下降时,可以较快的收敛。

归一化可能提高精度

有些分类器需要计算样本之间的距离,例如k-means。如果一个特征的值域范围特别大。那么距离计算就主要取决于这个特征,有时会与实际情况相违背。(比如这时实际情况是值域范围小的特征更重要)

归一化常用的方法

  1. 线性比例变换法
    yi=ximax(x)y_i=\frac{x_i}{max(x)}

  2. 极差变换法:
    yi=ximin(x)max(x)min(x)y_i=\frac{x_i-min(x)}{max(x)-min(x)}
    其中max为样本数据的最大值,min为样本数据的最小值,这种方法有缺陷
    1)当有新数据加入时,可能导致max和min的变化,需要重新定义
    2)存在极端的最大最小值

  3. 0均值标准化(Z-score方法标准化)
    yi=ximean(x)σy_i=\frac{x_i-mean(x)}{\sigma}

归一化与其中标准化的区别

  • 归一化和标准化本质上就是一种线性变换。
    在数据给定下,α=XmaxXmin\alpha=X_{max}-X-{min},常数β=Xmin\beta=X_{min}那么归一化的新的形式就是Xiβα\frac{X_i-\beta}{\alpha}.与标准化类似,可以变一下
    Xiβα=Xiαβα=Xiαc\frac{X_i-\beta}{\alpha}=\frac{X_i}{\alpha}-\frac{\beta}{\alpha}=\frac{X_i}{\alpha}-c
    事实上就是对向量 X按照比例压缩α\alpha再进行平移 c。所以归一化和标准化的本质就是一种线性变换。
  • 归一化与标准化的区别
    1. 归一化的缩放是统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。

    2. 归一化:缩放仅仅与最大最小值有关。
      标准化:缩放与每个点有关。通过方差和均值体现出来。

    3. 归一化:输出范围在0-1之间
      标准化:输出范围是负无穷到正无穷

使用标准化与归一化的场景

  • 如果对输出结果范围有要求,用归一化
  • 如果数据较为稳定,不存在极端的最大最小值,用归一化
  • 如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响

哪些机器学习书算法不需要归一化

概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。而像 adaboost、svm、lr、KNN、KMeans 之类的最优化问题就需
要归一化。

相关文章:

  • 2021-04-30
  • 2022-12-23
  • 2022-12-23
  • 2021-09-24
  • 2021-12-28
  • 2021-09-27
  • 2021-04-30
  • 2021-10-15
猜你喜欢
  • 2022-01-19
  • 2021-12-27
  • 2021-11-06
  • 2022-12-23
  • 2021-10-08
  • 2021-07-06
  • 2022-01-07
相关资源
相似解决方案