日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转] 标准化和归一化

發(fā)布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转] 标准化和归一化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

from :?http://www.raincent.com/content-10-12066-1.html

一、標(biāo)準(zhǔn)化/歸一化定義

歸一化和標(biāo)準(zhǔn)化經(jīng)常被搞混,程度還比較嚴(yán)重,非常干擾大家的理解。為了方便后續(xù)的討論,必須先明確二者的定義。

歸一化

就是將訓(xùn)練集中某一列數(shù)值特征(假設(shè)是第i列)的值縮放到0和1之間。方法如下所示:

?

?

標(biāo)準(zhǔn)化

就是將訓(xùn)練集中某一列數(shù)值特征(假設(shè)是第i列)的值縮放成均值為0,方差為1的狀態(tài)。如下所示:

?

?

進(jìn)一步明確二者含義

歸一化和標(biāo)準(zhǔn)化的相同點都是對某個特征(column)進(jìn)行縮放(scaling)而不是對某個樣本的特征向量(row)進(jìn)行縮放。對特征向量進(jìn)行縮放是毫無意義的(暗坑1) 比如三列特征:身高、體重、血壓。每一條樣本(row)就是三個這樣的值,對這個row無論是進(jìn)行標(biāo)準(zhǔn)化還是歸一化都是好笑的,因為你不能將身高、體重和血壓混到一起去!

在線性代數(shù)中,將一個向量除以向量的長度,也被稱為標(biāo)準(zhǔn)化,不過這里的標(biāo)準(zhǔn)化是將向量變?yōu)殚L度為1的單位向量,它和我們這里的標(biāo)準(zhǔn)化不是一回事兒,不要搞混哦(暗坑2)。

二、標(biāo)準(zhǔn)化/歸一化的好處

2.1 提升模型精度

在機(jī)器學(xué)習(xí)算法的目標(biāo)函數(shù)(例如SVM的RBF內(nèi)核或線性模型的l1和l2正則化),許多學(xué)習(xí)算法中目標(biāo)函數(shù)的基礎(chǔ)都是假設(shè)所有的特征都是零均值并且具有同一階數(shù)上的方差。如果某個特征的方差比其他特征大幾個數(shù)量級,那么它就會在學(xué)習(xí)算法中占據(jù)主導(dǎo)位置,導(dǎo)致學(xué)習(xí)器并不能像我們說期望的那樣,從其他特征中學(xué)習(xí)。

舉一個簡單的例子,在KNN中,我們需要計算待分類點與所有實例點的距離。假設(shè)每個實例點(instance)由n個features構(gòu)成。如果我們選用的距離度量為歐式距離,如果數(shù)據(jù)預(yù)先沒有經(jīng)過歸一化,那么那些絕對值大的features在歐式距離計算的時候起了決定性作用。

從經(jīng)驗上說,歸一化是讓不同維度之間的特征在數(shù)值上有一定比較性,可以大大提高分類器的準(zhǔn)確性。

2.2 提升收斂速度

對于線性model來說,數(shù)據(jù)歸一化后,最優(yōu)解的尋優(yōu)過程明顯會變得平緩,更容易正確的收斂到最優(yōu)解。

?

?

比較這兩個圖,前者是沒有經(jīng)過歸一化的,在梯度下降的過程中,走的路徑更加的曲折,而第二個圖明顯路徑更加平緩,收斂速度更快。 對于神經(jīng)網(wǎng)絡(luò)模型,避免飽和是一個需要考慮的因素,通常參數(shù)的選擇決定于input數(shù)據(jù)的大小范圍。

三、標(biāo)準(zhǔn)化/歸一化的對比分析

首先明確,在機(jī)器學(xué)習(xí)中,標(biāo)準(zhǔn)化是更常用的手段,歸一化的應(yīng)用場景是有限的。我總結(jié)原因有兩點:

1、標(biāo)準(zhǔn)化更好保持了樣本間距。當(dāng)樣本中有異常點時,歸一化有可能將正常的樣本“擠”到一起去。比如三個樣本,某個特征的值為1,2,10000,假設(shè)10000這個值是異常值,用歸一化的方法后,正常的1,2就會被“擠”到一起去。如果不幸的是1和2的分類標(biāo)簽還是相反的,那么,當(dāng)我們用梯度下降來做分類模型訓(xùn)練時,模型會需要更長的時間收斂,因為將樣本分開需要更大的努力!而標(biāo)準(zhǔn)化在這方面就做得很好,至少它不會將樣本“擠到一起”。

2、標(biāo)準(zhǔn)化更符合統(tǒng)計學(xué)假設(shè)

對一個數(shù)值特征來說,很大可能它是服從正態(tài)分布的。標(biāo)準(zhǔn)化其實是基于這個隱含假設(shè),只不過是略施小技,將這個正態(tài)分布調(diào)整為均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布而已。

所以,下面的討論我們先集中分析標(biāo)準(zhǔn)化在機(jī)器學(xué)習(xí)中運用的情況,在文章末尾,簡單探討一下歸一化的使用場景。這樣更能凸顯重點,又能保持內(nèi)容的完整性,暫時忘記歸一化,讓我們focus到標(biāo)準(zhǔn)化上吧。

四、邏輯回歸必須要進(jìn)行標(biāo)準(zhǔn)化嗎?

我覺得,回答完上面的問題,就可以很好地掌握標(biāo)準(zhǔn)化在機(jī)器學(xué)習(xí)中的運用。

首先,請嘗試自己來回答一下(暫停5秒)

無論你回答必須或者不必須,你都是錯的!

真正的答案是,這取決于我們的邏輯回歸是不是用正則。

如果你不用正則,那么,標(biāo)準(zhǔn)化并不是必須的,如果你用正則,那么標(biāo)準(zhǔn)化是必須的。(暗坑3)

為什么呢?

因為不用正則時,我們的損失函數(shù)只是僅僅在度量預(yù)測與真實的差距,加上正則后,我們的損失函數(shù)除了要度量上面的差距外,還要度量參數(shù)值是否足夠小。而參數(shù)值的大小程度或者說大小的級別是與特征的數(shù)值范圍相關(guān)的。舉例來說,我們用體重預(yù)測身高,體重用kg衡量時,訓(xùn)練出的模型是: 身高 = 體重*x x就是我們訓(xùn)練出來的參數(shù)。

當(dāng)我們的體重用噸來衡量時,x的值就會擴(kuò)大為原來的1000倍。

在上面兩種情況下,都用L1正則的話,顯然對模型的訓(xùn)練影響是不同的。

假如不同的特征的數(shù)值范圍不一樣,有的是0到0.1,有的是100到10000,那么,每個特征對應(yīng)的參數(shù)大小級別也會不一樣,在L1正則時,我們是簡單將參數(shù)的絕對值相加,因為它們的大小級別不一樣,就會導(dǎo)致L1最后只會對那些級別比較大的參數(shù)有作用,那些小的參數(shù)都被忽略了。

如果你回答到這里,面試官應(yīng)該基本滿意了,但是他可能會進(jìn)一步考察你,如果不用正則,那么標(biāo)準(zhǔn)化對邏輯回歸有什么好處嗎?

答案是有好處,進(jìn)行標(biāo)準(zhǔn)化后,我們得出的參數(shù)值的大小可以反應(yīng)出不同特征對樣本label的貢獻(xiàn)度,方便我們進(jìn)行特征篩選。如果不做標(biāo)準(zhǔn)化,是不能這樣來篩選特征的。

答到這里,有些厲害的面試官可能會繼續(xù)問,做標(biāo)準(zhǔn)化有什么注意事項嗎?

最大的注意事項就是先拆分出test集,不要在整個數(shù)據(jù)集上做標(biāo)準(zhǔn)化,因為那樣會將test集的信息引入到訓(xùn)練集中,這是一個非常容易犯的錯誤!

五、通過例子來說明

我們先從簡單的預(yù)測房價的線性回歸模型開始:

有一組關(guān)于房價和房子變量的數(shù)據(jù)集,通過房子的面積,房間數(shù)量,房子的層數(shù)來預(yù)測房價。

占地面積1800尺,房間數(shù)量3間,房子層數(shù)2層-> 房價?;

為了方便對比,我們分別看一下標(biāo)準(zhǔn)化前和標(biāo)準(zhǔn)化后的模型輸出分布是怎么樣的。

?

?

可以看出,標(biāo)準(zhǔn)化前后變量的系數(shù)不同,誤差不同,但是R平方,和變量的t值是相同的。

5.1 解釋有區(qū)別嗎?

那標(biāo)準(zhǔn)化前后得到的公式,怎么來解釋呢?

?

?

當(dāng)一個外行人在聽解釋的時候,一定會問,什么呀?所有東西都是0,空氣造的房子還能賣9萬?!

接著你會問,系數(shù)不同,那預(yù)測出來的房價會相同嗎?

5.2 預(yù)測值有區(qū)別嗎?

現(xiàn)在我們來預(yù)測一個1590尺,3個臥室,3層的房屋

?

?

我們發(fā)現(xiàn)預(yù)測出來的房價是一樣的。

這時你一定會想,既然結(jié)果都一樣,做不做標(biāo)準(zhǔn)化,都一樣嘛。說到這里,我們再看一下,建模時尋找最優(yōu)解的時間吧。

5.3 花費時間有區(qū)別嗎?

?

?

?

?

?

?

為什么標(biāo)準(zhǔn)化后的建模時間會短呢?這時候就要說起尋找系數(shù)最優(yōu)解-梯度下降法。

標(biāo)準(zhǔn)化前,由于變量的單位相差很大,導(dǎo)致了橢圓型的梯度輪廓。標(biāo)準(zhǔn)化后,把變量變成統(tǒng)一單位,產(chǎn)生了圓形輪廓。由于梯度下降是按切線方向下降,所以導(dǎo)致了系統(tǒng)在橢圓輪廓不停迂回地尋找最優(yōu)解,而圓形輪廓就能輕松找到了。

還有一種比較極端的情況,有時沒做標(biāo)準(zhǔn)化,模型始終找不到最優(yōu)解,一直不收斂。

5.4 PCA,Kmeans,KNN需要標(biāo)準(zhǔn)化數(shù)據(jù)嗎?

這種情況下,可見標(biāo)準(zhǔn)化的重要性了吧。

我們再來看一下,如果將預(yù)測房價的變量,用PCA方法來降維,會不會對結(jié)果產(chǎn)生影響。

我們看出在標(biāo)準(zhǔn)化前,用一個成分就能解釋99%的變量變化,而標(biāo)準(zhǔn)化后一個成分解釋了75%的變化。 主要原因就是在沒有標(biāo)準(zhǔn)化的情況下,我們給了居住面積過大權(quán)重,造成了這個結(jié)果。

?

?

?

?

那還有什么情況下,不做歸一化會發(fā)生這么大的影響?

Kmeans,KNN一些涉及到距離有關(guān)的算法,或者聚類的話,都是需要先做變量標(biāo)準(zhǔn)化的。

舉個例子,我們將3個城市分成兩類,變量有面積和教育程度占比;三個城市分別是這樣的:

城市A,面積挺大,但是整天發(fā)生偷盜搶劫,教育程度低;
城市B,面積也挺大,治安不錯,教育程度高;
城市C,面積中等,治安也挺好,教育程度也挺高;

?

?

?

?

我們?nèi)绻蛔鰳?biāo)準(zhǔn)化,直接做聚類模型的話,A城市和B城市分在一塊兒了,你想想,一個治安挺好的城市和一個整體偷盜搶劫城市分在一起,實在是有點違反常理。

六、總結(jié)

Tree-based models doesn’t depend on scaling

Non-tree-based models hugely depend on scaling

有時候,我們必須要特征在0到1之間,此時就只能用歸一化。有種svm可用來做單分類,里面就需要用到歸一化,由于沒有深入研究,所以我把鏈接放上,感興趣的可以自己看。

當(dāng)然,也不是所有的模型都需要做歸一的,比如模型算法里面有沒關(guān)于對距離的衡量,沒有關(guān)于對變量間標(biāo)準(zhǔn)差的衡量。比如decision tree 決策樹,他采用算法里面沒有涉及到任何和距離等有關(guān)的,所以在做決策樹模型時,通常是不需要將變量做標(biāo)準(zhǔn)化的。

轉(zhuǎn)載于:https://www.cnblogs.com/Arborday/p/10765462.html

總結(jié)

以上是生活随笔為你收集整理的[转] 标准化和归一化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。