特征歸一化/標準化

1. 為什么要做特征歸一化/標準化?

數據預處理中,通常會用到特征歸一化,為什么要做歸一化呢?一般有兩點:

  • 消除特征間單位和尺度差異的影響
    特征間的單位(尺度)可能不同。比如身高和體重,比如攝氏度和華氏度,比如房屋面積和房間數,一個特征的變化范圍可能是[1000, 10000],另一個特征的變化范圍可能是[-0.1, 0.2],在進行距離有關的計算時,單位的不同會導致計算結果的不同,尺度大的特征會起決定性作用,而尺度小的特征其作用可能會被忽略,為了消除特征間單位和尺度差異的影響,以對每維特征同等看待,需要對特征進行歸一化。

  • 加速模型收斂速度
    原始特征下,因尺度差異,其損失函數的等高線圖可能是橢圓形,梯度方向垂直于等高線,下降會走zigzag路線,而不是指向local minimum。通過對特征進行zero-mean and unit-variance變換后,其損失函數的等高線圖更接近圓形,梯度下降的方向震蕩更小,收斂更快,如下圖所示,圖片來自Andrew Ng。


    圖1

2. 常用的feature scaling方法

待補充。

3. 什么情況下需要做歸一化?

  • 涉及或隱含距離計算的算法,比如K-means、KNN、PCA、SVM等
  • 損失函數中有正則項,比如l_1/l_2正則,目的也是為了消除不同特征的差異
  • 梯度下降優(yōu)化算法。
    模型收斂的速度取決于參數的初始位置到local minima的距離,以及學習率的大小。收斂意味著在每個參數維度上都取得極小值,每個參數維度上的偏導數都為0,但是每個參數維度上的下降速度是不同的,為了每個維度上都能收斂,學習率應取所有維度在當前位置合適步長中最小的那個(學習率是多維度共享的)。
不需要做歸一化的情況
  • 與距離計算無關的概率模型,不需要feature scaling,比如Naive Bayes;
  • 與距離計算無關的基于樹的模型,不需要feature scaling,比如決策樹、隨機森林等,樹中節(jié)點的選擇只關注當前特征在哪里切分對分類更好,即只在意特征內部的相對大小,而與特征間的相對大小無關。

參考資料

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容