項目地址:https://github.com/Daya-Jin/ML_for_learner
原博客:https://daya-jin.github.io/2019/03/20/Data_Scaling/
Scaling
數據縮放的實質就是對數據進行無量綱化處理或弱化量綱,下面介紹幾種常用的縮放方式。
Linear Scale
歸一化(Normalization)通常指把數據縮放到[0,1]區間或[−1,1]區間,其轉換公式分別爲:
xx=xmax−xminx−xmin=xmax−xminx−21(xmax+xmin)
標準化(Standardization)的實質就是計算Z-分數(Z-score):
x=σx−μ
標準化後的數據服從標準正態分佈。
分別對歸一化與標準化的式子做一下變形:
xnormxz=xmax−xminx−xmin=xmax−xmin1x−xmax−xminxmin=σx−μ=σ1x−σμ
可以看出歸一化與標準化實質上都相當於對數據的一個線性變換,只不過是線性變換的係數不同。由此可以探究兩者之間的區別。
首先不難看出歸一化的縮放係數只由數據中的兩個值決定:xmin與xmax,這一特性就決定了歸一化變換是不穩定的,它容易被異常值或離羣值影響。並且歸一化的輸出範圍固定爲[0,1]或者[−1,1]。
而反觀標準化,它的線性變換系數是由數據統計量μ與σ決定的,不難看出當σ>1時標準化會縮小數據的分佈,而當sigma<1的時候會放大數據的分佈,總而言之標準化就會使得變換後的數據呈一個固定的分佈狀態。標準化並沒有對變換後的數據範圍作規定,它只保證數據整體的分佈。
Non-Linear Scale
當數據的取值跨度非常大時,考慮使用對數變換來縮小數據在量級上的差距。常用的對數變換有:
x=log2(x+1)x=log10(x+1)
除了對數變換外,還可以使用開方變換:
x=px
Transformation
待補充