1. 程式人生 > >機器學習中的歸一化

機器學習中的歸一化

文章目錄

機器學習中為什麼需要歸一化

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

歸一化為什麼能提高梯度下降求解最優解的速度?

在這裡插入圖片描述
如上圖所示,藍色圓圈代表兩個特徵的的等高線。

  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)}

  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)}
    其中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}

歸一化與其中標準化的區別

  • 歸一化和標準化本質上就是一種線性變換。
    在資料給定下, α = X m a x X m i n \alpha=X_{max}-X-{min} ,常數 β = X m i n \beta=X_{min} 那麼歸一化的新的形式就是 X i β α \frac{X_i-\beta}{\alpha} .與標準化類似,可以變一下
    X i β α = X i α β α = X i α 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 之類的最優化問題就需
要歸一化。