很多的時候我發現很多人和我一樣我對機器學習的基本概念一知半解,比如我經常會聽到歸一化及標準化,傻傻分不清楚。最近看了一篇文章清楚的闡述了歸一化和標準化的定義、適用場景、物理意義及使用意義。經過原作者授權以後,我想進行**並加上我的一些理解,和更多的人一起學習進步。
在機器學習和資料探勘中,經常會聽到兩個名詞:歸一化(normalization)與標準化(standardization)。它們具體是什麼?帶來什麼益處?具體怎麼用?本文來具體討論這些問題。
一、是什麼
1. 歸一化
常用的方法是通過對原始資料進行線性變換把資料對映到[0,1]之間,變換函式為:
其中minmin是樣本中最小值,maxmax是樣本中最大值,注意在資料流場景下最大值與最小值是變化的。另外,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小資料場景。
2. 標準化
常用的方法是z-score標準化,經過處理後的資料均值為0,標準差為1,處理方法是:
其中μμ是樣本的均值,σσ是樣本的標準差,它們可以通過現有樣本進行估計。在已有樣本足夠多的情況下比較穩定,適合現代嘈雜大資料場景。
二、帶來什麼
歸一化的依據非常簡單,不同變數往往量綱不同,歸一化可以消除量綱對最終結果的影響,使不同變數具有可比性。比如兩個人體重差10kg,身高差0.02m,在衡量兩個人的差別時體重的差距會把身高的差距完全掩蓋,歸一化之後就不會有這樣的問題。
標準化的原理比較複雜,它表示的是原始值與均值之間差多少個標準差,是乙個相對值,所以也有去除量綱的功效。同時,它還帶來兩個附加的好處:均值為0,標準差為1。
均值為0有什麼好處呢?它可以使資料以0為中心左右分布(這不是廢話嘛),而資料以0為中心左右分布會帶來很多便利。比如在去中心化的資料上做svd分解等價於在原始資料上做pca;機器學習中很多函式如sigmoid、tanh、softmax等都以0為中心左右分布(不一定對稱)。
標準差為1有什麼好處呢?這個更複雜一些。對於xixi與xi′xi′兩點間距離,往往表示為
其中dj(xij,xi′j)dj(xij,xi′j)是屬性jj兩個點之間的距離,wjwj是該屬性間距離在總距離中的權重,注意設wj=1,∀jwj=1,∀j並不能實現每個屬性對最後的結果貢獻度相同。對於給定的資料集,所有點對間距離的平均值是個定值,即
是個常數,其中
可見第jj個變數對最終整體平均距離的影響是wj⋅¯djwj⋅d¯j,所以設wj∼1/¯djwj∼1/d¯j可以使所有屬性對全資料集平均距離的貢獻相同。現在設djdj為歐式距離(或稱為二範數)的平方,它是最常用的距離衡量方法之一,則有
其中varjvarj是var(xj)var(xj)的樣本估計,也就是說每個變數的重要程度正比於這個變數在這個資料集上的方差。如果我們讓每一維變數的標準差都為1(即方差都為1),每維變數在計算距離的時候重要程度相同。
三、怎麼用
在涉及到計算點與點之間的距離時,使用歸一化或標準化都會對最後的結果有所提公升,甚至會有質的區別。那在歸一化與標準化之間應該如何選擇呢?根據上一節我們看到,如果把所有維度的變數一視同仁,在最後計算距離中發揮相同的作用應該選擇標準化,如果想保留原始資料中由標準差所反映的潛在權重關係應該選擇歸一化。另外,標準化更適合現代嘈雜大資料場景。
歸一化和標準化
主要是讀了這篇文章才深入理解這兩個的區別 歸一化 對原始資料進行線性轉換到 0,1 區間,如下 最小值和最大值特別容易受異常值影響,因此魯棒性不好,比較適合傳統的小資料場景 標準化 最常用的方法是z score標準化,即將資料轉化成均值為0,標準差為1,處理方法如下 其中理論解釋 歸一化的依據非常簡...
標準化 和 歸一化
1 把數變為 0,1 之間的小數 主要是為了資料處理方便提出來的,把資料對映到0 1範圍之內處理,更加便捷快速。2 把有量綱表示式變為無量綱表示式 歸一化是一種簡化計算的方式,即將有量綱的表示式,經過變換,化為無量綱的表示式,成為純量。好處 1 歸一化後加快了梯度下降求最優解的速度 2 歸一化有可能...
標準化和歸一化
歸一化 0 1 normalization min max normalization 把數變為 0,1 之間的小數,特徵資料範圍不同歸一化後方便統一處理 這種方法有乙個缺陷就是當有新資料加入時,可能導致max和min的變化,需要重新定義 z score 標準化 zero mean normaliz...