數據預處理——標准化、歸一化、正則化


參考文獻:https://baijiahao.baidu.com/s?id=1609320767556598767&wfr=spider&for=pc

三者都是對數據進行預處理的方式

標准化(Standardization)

歸一化(normalization)

正則化(regularization)

歸一化(MinMaxScaler)

將訓練集中某一列數值特征(假設是第i列)的值縮放到0和1之間。方法如下所示:

我們在對數據進行分析的時候,往往會遇到單個數據的各個維度量綱不同的情況,比如對房子進行價格預測的線性回歸問題中,我們假設房子面積(平方米)、年代(年)和幾居室(個)三個因素影響房價,其中一個房子的信息如下:

  • 面積(S):150 平方米
  • 年代(Y):5 年

這樣各個因素就會因為量綱的問題對模型有着大小不同的影響,但是這種大小不同的影響並非反應問題的本質。

為了解決這個問題,我們將所有的數據都用歸一化處理至同一區間內

標准化(StandardScaler)

訓練集中某一列數值特征(假設是第i列)的值縮放成均值為0,方差為1的狀態。標准化之后,數據的范圍並不一定是0-1之間,數據不一定是標准正態分布,因為標准化之后數據的分布並不會改變,如果數據本身是正態分布,那進行標准化之后就是標准正態分布。

綜上:在PCA,聚類,邏輯回歸,支持向量機,神經網絡這些算法中,StandardScaler往往是最好的選擇,

1、歸一化和標准化的相同點都是對某個特征(column)進行縮放(scaling)而不是對某個樣本的特征向量(row)進行縮放。對行進行縮放是毫無意義的。比如三列特征:身高、體重、血壓。每一條樣本(row)就是三個這樣的值,對這個row無論是進行標准化還是歸一化都是無意義的,因為你不能將身高、體重和血壓混到一起去。

2、標准化/歸一化的好處

  • 提升模型精度:基於距離的算法,例如Kmeans、KNN等,各個特征的量綱直接決定了模型的預測結果。舉一個簡單的例子,在KNN中,我們需要計算待分類點與所有實例點的距離。假設每個實例點(instance)由n個features構成。如果我們選用的距離度量為歐式距離,如果數據預先沒有經過歸一化,那么那些絕對值大的features在歐式距離計算的時候起了決定性作用。對於PCA,如果沒有對數據進行標准化,部分特征的所占的信息可能會虛高。
  • 提升收斂速度:例如,對於線性model來說,數據歸一化后,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。對於SVM標准化之后梯度下降的速度加快。

3、標准化/歸一化的對比分析

首先明確,在機器學習中,標准化是更常用的手段。

  • MinMaxScaler對異常值非常敏感。例如,比如三個樣本,某個特征的值為1,2,10000,假設10000這個值是異常值,用歸一化的方法后,正常的1,2就會被“擠”到一起去。在PCA,聚類,邏輯回歸,支持向量機,神經網絡這些算法中,StandardScaler往往是最好的選擇。
  • 當數據需要被壓縮至一個固定的區間時,我們使用MinMaxScaler.

4、在邏輯回歸中需要使用標准化么?

  • 如果你不用正則,那么,標准化並不是必須的,如果你用正則,那么標准化是必須的為什么呢?因為不用正則時,我們的損失函數只是僅僅在度量預測與真實的差距,加上正則后,我們的損失函數除了要度量上面的差距外,還要度量參數值是否足夠小。而參數值的大小程度或者說大小的級別是與特征的數值范圍相關的。
    •   舉一例來說,我們預測身高,體重用kg衡量時,訓練出的模型是: 身高 = x*體重+y*父母身高,X是我們訓練出來的參數。當我們的體重用噸來衡量時,x的值就會擴大為原來的1000倍。在上面兩種情況下,都用L1正則的話,顯然當使用kg作為單位時,顯然對模型的訓練影響是不同的。
    •   再舉一例來說,假如不同的特征的數值范圍不一樣,有的是0到0.1,有的是100到10000,那么,每個特征對應的參數大小級別也會不一樣,在L1正則時,我們是簡單將參數的絕對值相加,因為它們的大小級別不一樣,就會導致L1會對那些級別比較大的參數正則化程度高,那些小的參數都被忽略了。
  • 就算不做正則化處理,建模前先對數據進行標准化處理也是有好處的。進行標准化后,我們得出的參數值的大小可以反應出不同特征對label的貢獻度,使參數具有可解釋性。

5、有些需要保持數據的原始量綱的情況下,不能對數據進行標准化或者歸一化處理。例如,制作評分卡

正則化

這篇文章對於正則化的講解通俗易懂:https://www.zhihu.com/question/20924039

正則化主要用於防止過擬合

我們在訓練模型時,要最小化損失函數,這樣很有可能出現過擬合的問題(參數過多,模型過於復雜),所以我么在損失函數后面加上正則化約束項,轉而求約束函數和正則化項之和的最小值

上式中,藍色部分即為損失函數,紅色部分是正則化項(參數的2-范數)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM