数据归一化处理方法_数据预处理:归一化和标准化
1. 概述
數據的歸一化和標準化是特征縮放(feature scaling)的方法,是數據預處理的關鍵步驟。不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到數據分析的結果,為了消除指標之間的量綱影響,需要進行數據歸一化/標準化處理,以解決數據指標之間的可比性。原始數據經過數據歸一化/標準化處理后,各指標處于同一數量級,適合進行綜合對比評價。
歸一化/標準化實質是一種線性變換,線性變換有很多良好的性質,這些性質決定了對數據改變后不會造成“失效”,反而能提高數據的表現,這些性質是歸一化/標準化的前提。比如有一個很重要的性質:線性變換不會改變原始數據的數值排序。具體作用可總結如下:
(1)某些模型求解需要
- 在使用梯度下降的方法求解最優化問題時, 歸一化/標準化后可以加快梯度下降的求解速度,即提升模型的收斂速度。
- 一些分類器需要計算樣本之間的距離(如歐氏距離),例如KNN。如果一個特征值域范圍非常大,那么距離計算就主要取決于這個特征,從而與實際情況相悖(比如這時實際情況是值域范圍小的特征更重要)。
(2)無量綱化
例如房子數量和收入,因為從業務層知道,這兩者的重要性一樣,所以把它們全部歸一化。 這是從業務層面上作的處理。
(3)避免數值問題
太大的數會引發數值問題。
2. 歸一化和標準化(線性變換)
2.1 歸一化(Normalization)
歸一化一般是將數據映射到指定的范圍,用于去除不同維度數據的量綱以及量綱單位。
常見的映射范圍有 [0, 1] 和 [-1, 1] ,最常見的歸一化方法就是 Min-Max 歸一化。
Min-Max 歸一化(Min-Max Normalization)
也稱為離差標準化,是對原始數據的線性變換,使結果值映射到[0 - 1]之間。轉換函數如下:
其中max為樣本數據的最大值,min為樣本數據的最小值。這種歸一化方法比較適用在數值比較集中的情況。但是,如果max和min不穩定,很容易使得歸一化結果不穩定,使得后續使用效果也不穩定,實際使用中可以用經驗常量值來替代max和min。而且當有新數據加入時,可能導致max和min的變化,需要重新定義。
舉例:我們判斷一個人的身體狀況是否健康,那么我們會采集人體的很多指標,比如說:身高、體重、紅細胞數量、白細胞數量等。一個人身高 180cm,體重 70kg,白細胞計數
,etc.衡量兩個人的狀況時,白細胞計數就會起到主導作用從而遮蓋住其他的特征,歸一化后就不會有這樣的問題。作用:
- 數據映射到指定的范圍內進行處理,更加便捷快速。
- 把有量綱表達式變成無量綱表達式,便于不同單位或量級的指標能夠進行比較和加權。經過歸一化后,將有量綱的數據集變成純量,還可以達到簡化計算的作用。
補充:
①有時候我們希望將輸入轉換到[-1,1]的范圍,可以使用以下的公式:
以上兩種方式,都是針對原始數據做等比例的縮放。其中
是歸一化以后的數據, 是原始數據大小, 分別是原始數據的最大值與最小值。②歸一化到任意區間的方法:
一般常見的數據歸一化,是歸一化到0~1,或者-1~1的區間,但在一些特殊場合下,我們需要根據實際情況歸一化到其他任意區間。將數據歸一化到[a,b]區間范圍的方法:
(1)首先找到樣本數據Y的最小值Min及最大值Max
(2)計算系數為:k=(b-a)/(Max-Min)
(3)得到歸一化到[a,b]區間的數據:norY=a+k(Y-Min)
實質上,歸一化的一般規范函數是:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。
2.2 標準化(Normalization)
歸一化和標準化的英文翻譯是一致的,但是根據其用途(或公式)的不同去理解(或翻譯)標準化是依照特征矩陣的列處理數據。數據標準化方法有多種,如:直線型方法(如極值法、標準差法)、折線型方法(如三折線法)、曲線型方法(如半正態性分布)。不同的標準化方法,對系統的評價結果會產生不同的影響。其中,最常用的是Z-Score 標準化。
Z-Score 標準化(Z-Score Normalization)
這種方法給予原始數據的均值(mean)和標準差(standard deviation)進行數據的標準化。經過處理的數據符合標準正態分布,即均值為0,標準差為1,轉化函數為:
其中
是樣本數據的均值(mean),是樣本數據的標準差(std)。此外,標準化后的數據保持異常值中的有用信息,使得算法對異常值不太敏感,這一點歸一化就無法保證。作用:
- 提升模型的收斂速度(加快梯度下降的求解速度)
- 提升模型的精度(消除量級和量綱的影響)
- 簡化計算(與歸一化的簡化原理相同)
2.3 歸一化和標準化的異同
(1)區別
歸一化是將樣本的特征值轉換到同一量綱下把數據映射到[0,1]或者[-1, 1]區間內,僅由變量的極值決定,因區間放縮法是歸一化的一種。
標準化是依照特征矩陣的列處理數據,其通過求z-score的方法,轉換為標準正態分布,和整體樣本分布相關,每個樣本點都能對標準化產生影響。
(2)相同
它們的相同點在于都能取消由于量綱不同引起的誤差;都是一種線性變換,都是對向量X按照比例壓縮再進行平移。
2.4 歸一化和標準化的適用場景
(1)數據的分布本身就服從正態分布,使用Z-Score。
(2)有離群值的情況:使用Z-Score。
這里不是說有離群值時使用Z-Score不受影響,而是,Min-Max對于離群值十分敏感,因為離群值的出現,會影響數據中max或min值,從而使Min-Max的效果很差。相比之下,雖然使用Z-Score計算方差和均值的時候仍然會受到離群值的影響,但是相比于Min-Max法,影響會小一點。
(3)如果對輸出結果范圍有要求,用歸一化。
(4)如果數據較為穩定,不存在極端的最大最小值,用歸一化。
(5)如果數據存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響。
3. 非線性變換
非線性變換經常用在數據分化比較大的場景,有些數值很大,有些很小。通過一些數學函數,將原始值進行映射。該方法包括 log、指數,正切等。需要根據數據分布的情況,決定非線性函數的曲線,比如log(V, 2)還是log(V, 10)等。
1)對數函數轉換:y = log10(x)
2)反余切函數轉換:y = atan(x) * 2 / π
4. 軟件實現:歸一化/標準化
(1)Minitab
第一步:輸入原始數據。
原始數據第二步:打開標準化面板。
打開標準化面板第三步:選中要處理數據的范圍,并指定處理后數據的存放區域(需要預留)。
①若選擇處理方式為:“減去均值并處以標準差”,則是Z-Score標準化。
Z-Score標準化Z-Score標準化處理后的數據②若選擇處理方式為:“減去下面指定的第一個值,然后除以第二個值”,則是Min-Max 歸一化。其中:min=1567.95,max=1571.75,max-min=3.8。
Min-Max 歸一化Min-Max 歸一化處理后數據(2)SPSS略顯復雜,略過。
參考文章
1.數據歸一化和兩種常用的歸一化方法_haoji007的博客-CSDN博客_數據歸一化
2.歸一化方法 Normalization Method
3.歸一化 (Normalization)、標準化 (Standardization)和中心化/零均值化 (Zero-centered)
4.數據預處理——標準化/歸一化(實例) - 偵探L的文章 - 知乎 https://zhuanlan.zhihu.com/p/135473375
5.ML 入門:歸一化、標準化和正則化 - Dave的文章 - 知乎 https://zhuanlan.zhihu.com/p/29957294
6.數據的歸一化,標準化和正則化 - peng 1的文章 - 知乎 https://zhuanlan.zhihu.com/p/46377151
7.數據歸一化小結_bitcarmanlee的博客-CSDN博客
8.將數據歸一化到任意區間范圍的方法_pan_jinquan的博客-CSDN博客
9.Minitab如何進行數據標準化-百度經驗
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的数据归一化处理方法_数据预处理:归一化和标准化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断点是否处于多边形内的三种方法(转)
- 下一篇: 用户注册模块详解(30)