机器学习中的归一化

文章目录

  • 机器学习中为什么需要归一化
    • 归一化为什么能提高梯度下降求解最优解的速度?
    • 归一化可能提高精度
  • 归一化常用的方法
  • 归一化与其中标准化的区别
  • 使用标准化与归一化的场景
  • 哪些机器学习书算法不需要归一化

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

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

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

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

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

归一化可能提高精度

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

归一化常用的方法

  1. 线性比例变换法
    y i = x i m a x ( x ) y_i=\frac{x_i}{max(x)} yi=max(x)xi

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

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(机器学习面试)