機器學習中的歸一化
阿新 • • 發佈:2019-01-11
文章目錄
機器學習中為什麼需要歸一化
- 歸一化後加快了梯度下降求最優解的速度;
- 歸一化有可能提高精度
歸一化為什麼能提高梯度下降求解最優解的速度?
如上圖所示,藍色圓圈代表兩個特徵的的等高線。
- 左圖中兩個特徵區別相差特別大。其中一個特徵X1的區間是[0,2000],一個特徵X2[1,5],所形成的等高線比較尖銳。當時用梯度下降法時,很可能要垂直等高線走,需要很多次迭代才能收斂。
- 右圖中對兩個原始特徵進行了歸一化處理,其對應的等高線相對來說比較圓,在梯度下降時,可以較快的收斂。
歸一化可能提高精度
有些分類器需要計算樣本之間的距離,例如k-means。如果一個特徵的值域範圍特別大。那麼距離計算就主要取決於這個特徵,有時會與實際情況相違背。(比如這時實際情況是值域範圍小的特徵更重要)
歸一化常用的方法
-
線性比例變換法
-
極差變換法:
其中max為樣本資料的最大值,min為樣本資料的最小值,這種方法有缺陷
1)當有新資料加入時,可能導致max和min的變化,需要重新定義
2)存在極端的最大最小值 -
0均值標準化(Z-score方法標準化)
歸一化與其中標準化的區別
- 歸一化和標準化本質上就是一種線性變換。
在資料給定下, ,常數 那麼歸一化的新的形式就是 .與標準化類似,可以變一下
事實上就是對向量 X按照比例壓縮 再進行平移 c。所以歸一化和標準化的本質就是一種線性變換。 - 歸一化與標準化的區別
-
歸一化的縮放是統一到區間(僅由極值決定),而標準化的縮放是更加“彈性”和“動態”的,和整體樣本的分佈有很大的關係。
-
歸一化:縮放僅僅與最大最小值有關。
標準化:縮放與每個點有關。通過方差和均值體現出來。 -
歸一化:輸出範圍在0-1之間
標準化:輸出範圍是負無窮到正無窮
-
使用標準化與歸一化的場景
- 如果對輸出結果範圍有要求,用歸一化
- 如果資料較為穩定,不存在極端的最大最小值,用歸一化
- 如果資料存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響
哪些機器學習書演算法不需要歸一化
概率模型不需要歸一化,因為它們不關心變數的值,而是關心變數的分佈和變數之間的條件概率,如決策樹、rf。而像 adaboost、svm、lr、KNN、KMeans 之類的最優化問題就需
要歸一化。