NumPy資料的歸一化

2022-01-12 21:01:39 字數 3002 閱讀 9987

首先我們來看看歸一化的概念:

資料的標準化(normalization)是將資料按比例縮放,使之落入乙個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。其中最典型的就是資料的歸一化處理,即將資料統一對映到[0,1]區間上。

目前資料標準化方法有多種,歸結起來可以分為直線型方法(如極值法、標準差法)、折線型方法(如三折線法)、曲線型方法(如半正態性分布)。不同的標準化方法,對系統的評價結果會產生不同的影響,然而不幸的是,在資料標準化方法的選擇上,還沒有通用的法則可以遵循。

1 把數變為(0,1)之間的小數

主要是為了資料處理方便提出來的,把資料對映到0~1範圍之內處理,更加便捷快速,應該歸到數字訊號處理範疇之內。

2 把有量綱表示式變為無量綱表示式

歸一化是一種簡化計算的方式,即將有量綱的表示式,經過變換,化為無量綱的表示式,成為純量。 比如,複數阻抗可以歸一化書寫:z = r + jωl = r(1 + jωl/r) ,複數部分變成了純數量了,沒有量綱。 

另外,微波之中也就是電路分析、訊號系統、電磁波傳輸等,有很多運算都可以如此處理,既保證了運算的便捷,又能凸現出物理量的本質含義。

1. 提公升模型的收斂速度

如下圖,x1的取值為0-2000,而x2的取值為1-5,假如只有這兩個特徵,對其進行優化時,會得到乙個窄長的橢圓形,導致在梯度下降時,梯度的方向為垂直等高線的方向而走之字形路線,這樣會使迭代很慢,相比之下,右圖的迭代就會很快(理解:也就是步長走多走少方向總是對的,不會走偏)

2.提公升模型的精度

歸一化的另一好處是提高精度,這在涉及到一些距離計算的演算法時效果顯著,比如演算法要計算歐氏距離,上圖中x2的取值範圍比較小,涉及到距離計算時其對結果的影響遠比x1帶來的小,所以這就會造成精度的損失。所以歸一化很有必要,他可以讓各個特徵對結果做出的貢獻相同。

在多指標評價體系中,由於各評價指標的性質不同,通常具有不同的量綱和數量級。當各指標間的水平相差很大時,如果直接用原始指標值進行分析,就會突出數值較高的指標在綜合分析中的作用,相對削弱數值水平較低指標的作用。因此,為了保證結果的可靠性,需要對原始指標資料進行標準化處理。

在資料分析之前,我們通常需要先將資料標準化(normalization),利用標準化後的資料進行資料分析。資料標準化也就是統計資料的指數化。資料標準化處理主要包括資料同趨化處理和無量綱化處理兩個方面。資料同趨化處理主要解決不同性質資料問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考慮改變逆指標資料性質,使所有指針對測評方案的作用力同趨化,再加總才能得出正確結果。資料無量綱化處理主要解決資料的可比性。經過上述標準化處理,原始資料均轉換為無量綱化指標測評值,即各指標值都處於同乙個數量級別上,可以進行綜合測評分析。

從經驗上說,歸一化是讓不同維度之間的特徵在數值上有一定比較性,可以大大提高分類器的準確性。

現在我們再來看看基礎的numpy**是如何實現的:

>>> x=np.random.random((10,3

))>>>x

array([[

0.44951388, 0.58974524, 0.43980589

], [

0.3082853 , 0.71042825, 0.02617535

], [

0.10836115, 0.66774964, 0.85824697

], [

0.01442332, 0.76459011, 0.75151452

], [

0.64054078, 0.02121539, 0.87271819

], [

0.75971598, 0.4268253 , 0.66039724

], [

0.11865255, 0.14679259, 0.53782096

], [

0.85085254, 0.26284603, 0.00246512

], [

0.41957758, 0.96842006, 0.65555725

], [

0.70227785, 0.78120928, 0.54771033

]])>>> x.mean(0

)array([

0.43722009, 0.53398219, 0.53524118

])>>> xc=x-x.mean(0

)>>>xc

array([[

0.01229379, 0.05576305, -0.0954353

], [-0.1289348 , 0.17644606, -0.50906583

], [-0.32885894, 0.13376745, 0.32300579

], [-0.42279677, 0.23060792, 0.21627333

], [

0.20332068, -0.5127668 , 0.33747701

], [

0.32249589, -0.10715689, 0.12515606

], [-0.31856754, -0.3871896 , 0.00257978

], [

0.41363245, -0.27113616, -0.53277606

], [-0.01764252, 0.43443787, 0.12031607

], [

0.26505776, 0.24722709, 0.01246915

]])>>> xc.mean(0

)array([

5.55111512e-18, 3.33066907e-17, -4.44089210e-17])

因為最後歸一化的均值在0附近,因此在機器精度範圍之內,該均值為0。

資料歸一化

近來,在網上搜了很多關於資料歸一化的帖子,看了太多,很雜,這裡整理總結一下 歸一化是一種資料預處理方法,就是要把你需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內,為了後面資料處理的方便,其次是保正程式執行時 收斂加快。比如說,對於奇異樣本資料 所謂奇異樣本資料資料指的是相對於其他...

資料歸一化

如果對神經網路的 輸入和 輸出數 據進行 一定的 預處理 可以加快網路的訓練速 度 matlab 中 提供的預 處理方 法有歸一化處理 將每組資料都變為 1 至 1 之 間數 所涉及 的函式有 premnmx postmnmx tramnmx 標準化處理 將每組資料都為均 值為 0,方 差 為 1 ...

資料歸一化

資料標準化 歸一化 處理是資料探勘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到資料分析的結果,為了消除指標之間的量綱影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。以下是兩種常用的歸一...