處理數據時經常會遇到比較兩個不同數據集的情況(比如比較具有不同教育水平地區學生的成績,比較不同網頁的受歡迎程度),這時就需要先將數據標准化,再進行比較。
數據的標准化(normalization)是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。
網站數據分析上有一篇很好的帖子《數據的標准化》,里面詳細分析了歸一化(可以看成是特殊的數據標准化)常用的四種方法:
- min-max標准化
- log函數轉換:百度知道里確實有很多人說用log10歸一化。。。
- atan函數轉換
- z-score標准化
另外,在《統計數據標准化--無量綱化方法》中按照所使用的函數分為三種方法(這篇論文超級水):
- 直線型無量綱法
- 折線形無量綱法
- 曲線型無量綱法
在選擇標准化方法前必須要先了解數據,再決定使用哪種方法。工程上需要保證性能且數據量很大的時候不適合用min-max, z-score, 他們都需要先遍歷所有數據一次,找出極值或均值后才能計算;一般情況下,如果數據的絕大部分集中分布在某個區間,折線法會讓數據具有可控的區分度,而且實現起來簡單,快速(雖然看上去有點糙)。