數據預處理—標准化/歸一化方法(scaler)


數據標准化是數據預處理的重要步驟。

sklearn.preprocessing下包含 StandardScaler, MinMaxScaler, RobustScaler三種數據標准化方法。本文結合sklearn文檔,對各個標准化方法的應用場景以及優缺點加以總結概括。

首先,不同類型的機器學習模型對scaling的依賴如下:

Tree-based models doesn’t depend on scaling    vs     Non-tree-based models hugely depend on scaling

一、數據標准化/歸一化的必要性

1.1  提升模型精度

許多機器學習算法的目標函數(例如SVM的RBF內核或線性模型的l1和l2正則化)的基礎都是假設所有的特征都是零均值並且具有同一階數上的方差。如果某個特征的方差比其他特征大幾個數量級,那么它就會在學習算法中占據主導位置,從而影響學習器對其他特征的學習。

例如,在KNN中,我們需要計算待分類點與所有實例點的距離。假設每個實例點(instance)由n個features構成。如果我們選用的距離度量為歐式距離,如果數據預先沒有經過歸一化,那么那些絕對值大的features在歐式距離計算時會起決定性作用。

從經驗上說,歸一化是讓不同維度之間的特征在數值上有一定比較性,可以大大提高分類器的准確性。

1.2 提升收斂速度

對於線性模型來說,數據歸一化后,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。

 

上述兩個圖,前者是沒有經過歸一化的,在梯度下降的過程中,走的路徑更加的曲折,而第二個圖明顯路徑更加平緩,收斂速度更快。

對於神經網絡模型,避免飽和是一個需要考慮的因素,通常參數的選擇決定於input數據的大小范圍。

二、標准化/歸一化方法

2.1 StandardScaler(標准差標准化)

標准化數據通過減去均值然后除以標准差,經過處理后數據符合標准正態分布,即均值為0,標准差為1。轉換函數為:

x = (x-mean)/std

適用性與優缺點

(1) 適用於數據的分布本身服從正態分布的情況

(2) 基本可用於有outlier的情況,但是,在計算方差和均值的時候outliers仍然會影響計算。

2.2 MinMaxScaler(極差標准化/歸一化)

將特征縮放到給定的最小值和最大值之間,也可以將每個特征的最大絕對值轉換至單位大小。這種方法是對原始數據的線性變換,將數據歸一到[0,1]中間。轉換函數為:

x = (x-min)/(max-min)

適用性與優缺點:

(1) 當有新數據加入時,可能導致max和min的變化,需要重新定義

(2) 對於outlier非常敏感,只適用於數據在一個范圍內分布的情況

2.3 RobustScaler(穩健標准化)

當數據包含許多異常值是,使用均值和方差縮放可能並不是一個很好的選擇。此時可以使用 robust_scale 以及 RobustScaler 對數據的中心和范圍進行更加魯棒性的估計。

RobustScaler removes the median(中位數) and scales the data according to the quantile range(四分位距離,即排除了outliers)

三、[0, 1] 還是 [-1, 1] ?

假設我們有一個只有一個hidden layer的多層感知機(MLP)的分類問題。每個hidden unit表示一個超平面,每個超平面是一個分類邊界。參數w(weight)決定超平面的方向,參數b(bias)決定超平面離原點的距離。如果b是一些小的隨機參數(事實上,b確實被初始化為很小的隨機參數),那么所有的超平面都幾乎穿過原點。所以,如果data沒有中心化在原點周圍,那么這個超平面可能沒有穿過這些data,也就是說,這些data都在超平面的一側。這樣的話,局部極小點(local minima)很有可能出現。 所以,在這種情況下,標准化到[-1, 1]比[0, 1]更好。

1、在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,StandardScaler表現更好。

2、在不涉及距離度量、協方差計算、數據不符合正態分布的時候,可以使用MinMaxScaler。比如圖像處理中,將RGB圖像轉換為灰度圖像后將其值限定在[0 255]的范圍。

使用MinMaxScaler,其協方差產生了倍數值的縮放,因此這種方式無法消除量綱對方差、協方差的影響,對PCA分析影響巨大;同時,由於量綱的存在,使用不同的量綱、距離的計算結果會不同。而在StandardScaler中,新的數據由於對方差進行了歸一化,每個維度的量綱其實已經等價了,每個維度都服從均值為0、方差1的正態分布,在計算距離的時候,每個維度都是去量綱化的,避免了不同量綱的選取對距離計算產生的巨大影響。

Reference:

https://blog.csdn.net/qq_33472765/article/details/85944256


免責聲明!

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



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