數據挖掘過程中:數據預處理


原文:http://www.itongji.cn/article/0Q926052013.html

數據分析之前,我們通常需要先將數據標准化(normalization),利用標准化后的數據進行 數據分析。數據標准化也就是統計數據的指數化。數據標准化處理主要包括數據同趨化處理和無量綱化處理兩個方面。數據同趨化處理主要解決不同性質數據問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考慮改變逆指標數據性質,使所有指標對測評方案的作用力同趨化,再加總才能得出正確結果。數據無量綱化處理主要解決數據的可比性。數據標准化的方法有很多種,常用的有“最小—最大標准化”、“Z-score標准化”和“按小數定標標准化”等。經過上述標准化處理,原始數據均轉換為無量綱化指標測評值,即各指標值都處於同一個數量級別上,可以進行綜合測評分析。
數據的標准化過程也是歸一化的過程。
數據的標准化(normalization)是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。
數據歸一化的目的是為了把不同來源的數據統一到一個參考系下,這樣比較起來才有意義。
 
1 定義
歸一化就是要把你需要處理的數據經過處理后(通過某種算法)限制在你需要的一定范圍內。首先歸一化是為了后面數據處理的方便,其次是保正程序運行時收斂加快。
 
2 為什么要用歸一化呢?
首先先說一個概念,叫做奇異樣本數據,所謂奇異樣本數據數據指的是相對於其他輸入樣本特別大或特別小的樣本矢量。
下面舉例:
m=[0.11 0.15 0.32 0.45 30;
      0.13 0.24 0.27 0.25 45];
其中的第五列數據相對於其他4列數據就可以成為奇異樣本數據(下面所說的網絡均值bp)。奇異樣本數據存在所引起的網絡訓練時間增加,並可能引起網絡無法收斂,所以對於訓練樣本存在奇異樣本數據的數據集在訓練之前,最好先進形歸一化,若不存在奇異樣本數據,則不需要事先歸一化。
 
3 歸一化方法
主要有如下幾種,供大家參考:(by james)
(1)線性函數轉換,表達式如下:
    y=(x-MinValue)/(MaxValue-MinValue)
    說明:x、y分別為轉換前、后的值,MaxValue、MinValue分別為樣本的最大值和最小值。
    在統計學中,歸一化的具體作用是歸納統一樣本的統計分布性。歸一化在0-1之間是統計的概率分布,歸一化在-1--+1之間是統計的坐標分布。
(2)對數函數轉換,表達式如下:
    y=log10(x)
    說明:以10為底的對數函數轉換。
    進行Log分析時,會將原本絕對化的時間序列歸一化到某個基准時刻,形成相對時間序列,方便排查。
    通過以10為底的log函數轉換的方法同樣可以實現歸一下,具體方法也可以如下:   
    看了下網上很多介紹都是x‘=log10(x),其實是有問題的,這個結果並非一定落到[0,1]區間上,應該還要除以    log10(max),max為樣本數據最大值,並且所有的數據都要大於等於1。
(3)反余切函數轉換,表達式如下:
    y=atan(x)*2/PI
    歸一化是為了加快訓練網絡的收斂性,可以不進行歸一化處理
(4)z-score 標准化(zero-mean normalization)
    也叫標准差標准化,經過處理的數據符合標准正態分布,即均值為0,標准差為1,其轉化函數為:    
    其中μ為所有樣本數據的均值,σ為所有樣本數據的標准差。
 
4 在matlab里面,用於歸一化的方法共有三種:
(1)premnmx、postmnmx、tramnmx
(2)prestd、poststd、trastd
(3)是用matlab語言自己編程。
premnmx指的是歸一到[-1 1];prestd歸一到單位方差和零均值;關於自己編程一般是歸一到[0.1  0.9] 。
 
5 注意
需要說明的事並不是任何問題都必須事先把原始數據進行規范化,也就是數據規范化這一步並不是必須要做的,要具體問題具體看待,測試表明有時候規范化后的預測准確率比沒有規范化的預測准確率低很多.就最大最小值法而言,當你用這種方式將原始數據規范化后,事實上意味着你承認了一個假設就是測試數據集的每一模式的所有特征分量的最大值(最小值)不會大於(小於)訓練數據集的每一模式的所有特征分量的最大值(最小值),但這條假設顯然過於強,實際情況並不一定會這樣.使用平均數方差法也會有同樣類似的問題.故數據規范化這一步並不是必須要做的,要具體問題具體看待. 
歸一化首先在維數非常多的時候,可以防止某一維或某幾維對數據影響過大,其次可以程序可以運行更快。方法很多,min-max,z-score,p范數等,具體怎么使用,要根據數據集的特征來選擇。
 

(責任編輯:黑陽)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM