歸一化的主要公式
1.將數據歸一到[0,1]:
其中和分別是數據的最大值和最小值。
2.將數據歸一化到[-1,1]:
其中是數據的均值。
3.將數據歸一化到均值爲0,標準差爲1的標準正態分佈上:
其中和分別是數據的均值和標準差。
4.將數據歸一化到[a,b]:
計算係數:
數據歸一化:
或者
歸一化的作用
- 消除數據之間的量綱的影響,是數據的分佈一致。(尤其是神經網絡一直在算概率)
- 使數據集的更新速度變得更爲一致,容易更快地通過梯度下降找到最優解(加速收斂速度)。如下圖所示。
- 消除異常樣本的影響,異常樣本會增加網絡學習難度,可能導致訓練不收斂。
- 保證輸出特徵中數值小的特徵也可以被充分學習。
- 避免梯度消失,比如使用Sigmoid激活函數時,數值小於0和大於1時會導致梯度幾乎爲0。
歸一化應用場景
需要用到梯度下降法求解的模型通常需要歸一化,如線性迴歸,羅輯迴歸,支持向量機和神經網絡等模型。
但是對於決策樹則並不適用,以C4.5爲例,決策樹在進行節點分裂時主要依據數據集D關於特徵x的信息增益比,而信息增益比跟特徵是否經過歸一化是無關的,因爲歸一化並不會改變樣本在特徵x上的信息增益。
不進行歸一化的後果
假設 的範圍在 ,而 的範圍在 ,梯度每次都前進 1 單位,那麼在 方向上每次相當於前進了 ,而在 上只相當於 !某種意義上來說,在 上前進的步長更小一些,而 在搜索過程中會比 “走”得更快。
這樣會導致,在搜索過程中更偏向於 的方向。走出了“L”形狀,或者成爲“之”字形。