【机器学习基础】机器学习模型什么时候需要做数据标准化?
機器學習
Author:louwill
Machine Learning?Lab
? ? ?
? ? ?一直都有朋友在做機器學習模型時有疑問:我的數據要不要做標準化處理?
? ? ?這個問題筆者也思考過,只不過不夠系統,觀點也比較單一,所以才有了上圖中的【變量單位之間數量級差異過大】的回答。就著這個話題,筆者查閱相關資料,相對這個問題進行一個詳細的闡述。
什么是數據標準化
? ? ?在完整的機器學習流程中,數據標準化(Data Standardization)一直是一項重要的處理流程。一般我們將數據標準化放在預處理過程中,作為一項通用技術而存在。但很多時候我們并不清楚為什么要對數據做標準化處理,是不是做了標準化模型表現就一定會提升。
? ? ?數據標準化的直接定義如下公式所示:
? ? ?即對數據集特征每一數據減去特征均值后除以特征標準差。數據標準化可以將對應特征數據變換均值為0方差為1。經過數據標準化之后,數據集所有特征有了同樣的變化范圍。
? ? ?數據標準化一個最直接的應用場景就是:當數據集的各個特征取值范圍存在較大差異時,或者是各特征取值單位差異較大時,我們是需要使用標準化來對數據進行預處理的。
? ?舉個例子,一個包含兩個特征的數據,其中一個特征取值范圍為5000~10000,另一個特征取值范圍僅有0.1-1,實際在建模訓練時,無論什么模型,第一個特征對模型結果的影響都會大于第二個特征,這樣的模型是很難有效做出準確預測的。
與數據歸一化的區別
? ? ?數據歸一化(Normalization)同樣也是一項數據預處理技術。但一直以來,我們都是標準化和歸一化傻傻分不清楚,并且存在長期混用的情況。數據歸一化的計算公式如下:
? ? ?或者是:
? ? ?筆者查閱相關資料,發現對于這兩種數據變換方法,一直沒有統一的界定。很多時候都存在標準化和歸一化概念混用的情況,有時候把z-score變換叫歸一化,有時候又把min-max歸一化叫標準化。通過比對,筆者認為標準化指的就是z-score變換,即前述第一個公式。歸一化指的就是min-max變換,即前述第二或第三個公式。
? ? ?數據標準化為了不同特征之間具備可比性,經過標準化變換之后的特征分布沒有發生改變。數據歸一化的目的是使得各特征對目標變量的影響一致,會將特征數據進行伸縮變化,所以數據歸一化是會改變特征數據分布的。
哪些模型對標準化處理比較敏感?
? ? ?機器學習中有部分模型是基于距離度量進行模型預測和分類的。由于距離對特征之間不同取值范圍非常敏感,所以基于距離讀量的模型是十分有必要做數據標準化處理的。
? ? ?最典型基于距離度量的模型包括k近鄰、kmeans聚類、感知機和SVM。另外,線性回歸類的幾個模型一般情況下也是需要做數據標準化處理的。決策樹、基于決策樹的Boosting和Bagging等集成學習模型對于特征取值大小并不敏感。所以這類模型一般不需要做數據標準化處理。另外有較多類別變量的數據也是不需要做標準化處理的。
結論
? ? ?結論就是當數據特征取值范圍或單位差異較大時,最好是做一下標準化處理。k近鄰、kmeans聚類、感知機、SVM和線性回歸類的模型,一般也是需要做數據標準化處理的。另外最好區分一下數據標準化和數據歸一化。
參考資料:
https://towardsai.net/p/data-science/how-when-and-why-should-you-normalize-standardize-rescale-your-data-3f083def38ff
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群請掃碼進群(如果是博士或者準備讀博士請說明):總結
以上是生活随笔為你收集整理的【机器学习基础】机器学习模型什么时候需要做数据标准化?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面试招聘】聊聊秋招中的面试技巧
- 下一篇: 【推荐系统】协同过滤 零基础到入门