數據歸一化?
數據標准化(歸一化)處理是在數據挖掘中的一項常見的預處理任務,很多情況下當你在數據預處理時都會浮現出一個問題,是不是要進行數據標准化處理?
一般來說,數據歸一化后有一個很明顯的優點,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。

歸一化前

歸一化后
線性函數歸一化(Min-Max scaling)
線性函數歸一化是最常見的數據歸一化的類型,它可以將原始數據用線性化的方式進行縮放,簡單來說就是把數值很大的數據塞到一定的區間內。
在實際處理數據的時候會映射到[0,1]空間內,其歸一化公式如下:

其中,Xnorm為歸一化后的數據集,X為原始數據,Xmax、Xmin分別為原始數據集的最大值和最小值。
Z-score標准化(Z-score standardization)
Z-score標准化是將原始數據集歸一化為均值為0、方差1的數據集,歸一化公式如下:

其中,μ、σ分別為原始數據集的均值和方差。該種歸一化方式需要原始數據的分布近似高斯分布,否則歸一化的效果會變差。因為原始數據分布如果是長尾分布,那么分布的改變會影響數據原有的表現情況。
log函數轉換
通過以10為底的log函數轉換同樣可以實現歸一化,公式如下:

其中,Xmax是數據集中的最大值,並且數據集所有樣本的值都要大於等於1。
atan函數轉換
通過反正切函數實現歸一化公式如下:

其中,當數據集都大於等於0時,映射空間在[0,1]之間,小於等於0時,映射空間在[-1,0]之間。
使用場景
在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,Z-score標准化(Z-score standardization)表現更好。通過計算證明,對數據集做Z-score標准化后的協方差為:

而使用線性函數歸一化后的協方差為:

可以看到,使用線性函數變化后的協方差只產生數值上的縮放,所以這種方式無法消除量綱對方差、協方差的影響,由於量綱的存在,PCA分析和距離的計算結果會受到影響。
Z-score標准化由於計算時除以雙標准差后消除了量綱的影響,可以滿足算法對數據的前置要求,所以在這些場景上表現上Z-score標准化要比線性標准化的效果更優。
總結
在數據歸一化后,模型在尋找最優解的過程明顯會變得平緩,能夠更容易收斂到最優解。
在算法過程中若涉及距離度量(聚類分析)或者協方差分析(PCA、LDA等)的,同時數據分布近似高斯分布時,應當使用Z-score標准化,而在需要縮放區間大小的數據集中可以使用其他合適的歸一化算法對數據集進行優化。