很多的時候我發(fā)現(xiàn)很多人和我一樣我對機器學習的基本概念一知半解兑宇,比如我經(jīng)常會聽到歸一化及標準化碍侦,傻傻分不清楚。最近看了一篇文章清楚的闡述了歸一化和標準化的定義隶糕、適用場景瓷产、物理意義及使用意義。經(jīng)過原作者授權(quán)以后枚驻,我想進行轉(zhuǎn)發(fā)并加上我的一些理解濒旦,和更多的人一起學習進步。
在機器學習和數(shù)據(jù)挖掘中再登,經(jīng)常會聽到兩個名詞:歸一化(Normalization)與標準化(Standardization)尔邓。它們具體是什么晾剖?帶來什么益處?具體怎么用梯嗽?本文來具體討論這些問題齿尽。
一、是什么
1. 歸一化
常用的方法是通過對原始數(shù)據(jù)進行線性變換把數(shù)據(jù)映射到[0,1]之間灯节,變換函數(shù)為:
其中minmin是樣本中最小值循头,maxmax是樣本中最大值,注意在數(shù)據(jù)流場景下最大值與最小值是變化的炎疆。另外卡骂,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差形入,只適合傳統(tǒng)精確小數(shù)據(jù)場景偿警。
2. 標準化
常用的方法是z-score標準化,經(jīng)過處理后的數(shù)據(jù)均值為0唯笙,標準差為1,處理方法是:
其中μμ是樣本的均值盒使,σσ是樣本的標準差崩掘,它們可以通過現(xiàn)有樣本進行估計。在已有樣本足夠多的情況下比較穩(wěn)定少办,適合現(xiàn)代嘈雜大數(shù)據(jù)場景苞慢。
二、帶來什么
歸一化的依據(jù)非常簡單英妓,不同變量往往量綱不同挽放,歸一化可以消除量綱對最終結(jié)果的影響,使不同變量具有可比性蔓纠。比如兩個人體重差10KG辑畦,身高差0.02M,在衡量兩個人的差別時體重的差距會把身高的差距完全掩蓋腿倚,歸一化之后就不會有這樣的問題纯出。
標準化的原理比較復(fù)雜,它表示的是原始值與均值之間差多少個標準差敷燎,是一個相對值暂筝,所以也有去除量綱的功效。同時硬贯,它還帶來兩個附加的好處:均值為0焕襟,標準差為1。
均值為0有什么好處呢饭豹?它可以使數(shù)據(jù)以0為中心左右分布(這不是廢話嘛)鸵赖,而數(shù)據(jù)以0為中心左右分布會帶來很多便利务漩。比如在去中心化的數(shù)據(jù)上做SVD分解等價于在原始數(shù)據(jù)上做PCA;機器學習中很多函數(shù)如Sigmoid卫漫、Tanh菲饼、Softmax等都以0為中心左右分布(不一定對稱)。
標準差為1有什么好處呢列赎?這個更復(fù)雜一些宏悦。對于xixi與xi′xi′兩點間距離,往往表示為
其中dj(xij,xi′j)dj(xij,xi′j)是屬性jj兩個點之間的距離包吝,wjwj是該屬性間距離在總距離中的權(quán)重饼煞,注意設(shè)wj=1,?jwj=1,?j并不能實現(xiàn)每個屬性對最后的結(jié)果貢獻度相同。對于給定的數(shù)據(jù)集诗越,所有點對間距離的平均值是個定值砖瞧,即
是個常數(shù),其中
可見第jj個變量對最終整體平均距離的影響是wj?ˉdjwj?dˉj嚷狞,所以設(shè)wj~1/ˉdjwj~1/dˉj可以使所有屬性對全數(shù)據(jù)集平均距離的貢獻相同】榇伲現(xiàn)在設(shè)djdj為歐式距離(或稱為二范數(shù))的平方,它是最常用的距離衡量方法之一床未,則有
其中varjvarj是Var(Xj)Var(Xj)的樣本估計竭翠,也就是說每個變量的重要程度正比于這個變量在這個數(shù)據(jù)集上的方差。如果我們讓每一維變量的標準差都為1(即方差都為1)薇搁,每維變量在計算距離的時候重要程度相同斋扰。
三、怎么用
在涉及到計算點與點之間的距離時啃洋,使用歸一化或標準化都會對最后的結(jié)果有所提升传货,甚至會有質(zhì)的區(qū)別。那在歸一化與標準化之間應(yīng)該如何選擇呢宏娄?根據(jù)上一節(jié)我們看到问裕,如果把所有維度的變量一視同仁,在最后計算距離中發(fā)揮相同的作用應(yīng)該選擇標準化孵坚,如果想保留原始數(shù)據(jù)中由標準差所反映的潛在權(quán)重關(guān)系應(yīng)該選擇歸一化僻澎。另外,標準化更適合現(xiàn)代嘈雜大數(shù)據(jù)場景十饥。