1. 程式人生 > >資料探勘-資料預處理模組

資料探勘-資料預處理模組

資料預處理 

     在資料探勘中,海量的原始資料中存在著大量的不完整(有缺失值)、不一致、有異常的資料,嚴重影響到資料探勘建模的執行效率,甚至可能導致挖掘結果的偏差,所以進行資料清洗顯得尤為重要,資料清洗完成後接著進行或者同時進行資料整合、變換、規約等一系列的處理,該過程就是資料預處理。

資料預處理的主要內容包括資料清洗,資料整合,資料規約,資料變換等。

1. 資料清洗

1.1 缺失值處理

     從統計上說,缺失的資料可能會產生有偏估計,從而這樣使樣本資料不能很好的代表總體,而實現中絕大部分資料都包含缺失值,因此如何處理缺失值很重要。缺失值的處理包括兩個步驟,即缺失資料的識別和缺失值處理。在對是否存在缺失值進行判斷之後需要進行缺失值處理,常用的方法有刪除法、替換法、插補法等。

1)刪除法

刪除法是最簡單的缺失值處理法,根據資料處理不同角度可分為刪除觀測樣本、刪除變數兩種。

2)替換法

變數按屬性可分為數值型和非數值型,二者的處理方法不同。如果缺失值所在的變數為數值型的,一般用該變數在其他所有物件的取值的均值來替換變數的缺失值,如果為非數值型變數,則使用該變數其他全部有效觀測值的中位數或者眾數替代。

3)插補法

     在面對缺失值問題,常用的插補法有迴歸插補、多重插補等。迴歸插補法利用迴歸模型,將需要插值補缺的變數作為因變數,其他相關變數作為自變數,通過迴歸函式lm()預測出因變數的值來對缺失變數進行補缺。

1.2異常值處理

     在異常處理之前需要對異常值進行識別,一般多采用單變數散點圖或是箱形圖來達到目的。

異常值處理方法

方法描述

刪除含有異常值的記錄

直接將含有異常值的記錄刪除

視為缺失值

將異常值視為缺失值,利用缺失值處理的方法進行處理

平均值修正

可用前後兩個觀測值的平均值修正該異常值

不處理

直接在具有異常值的資料集上進行挖掘建模

2.  資料整合

     資料探勘需要的資料往往分佈在不同的資料來源中,資料整合就是將多個數據源合併存放在一個一致的資料儲存中的過程。

在資料整合時,來自多個數據源的現實世界實體的表達形式是不一樣的,有可能不匹配,要考慮實體識別問題和屬性冗餘問題,從而將源資料在最底層上加以轉換、提煉和整合。

1)實體識別

     實體識別是從不同的資料來源識別出現實世界的實體,它的任務是統一不同元資料的矛盾之處,常見的矛盾有如下幾個,同名異義,異名同義,單位不統一。

2)冗餘屬性識別

資料整合往往導致資料冗餘,如:

l  同一屬性多次出現

l  同一屬性命名不一致,導致重複

3.  資料變換

      資料變換主要是對資料進行規範化處理、連續變數的離散化以及變數屬性的構造,將資料轉換成“適當的”形式,以滿足資料探勘任務及演算法的需要。

3.1 簡單函式變換

簡單函式變換是對原始資料進行某些資料函式變換,常用的包括平方、開方、取對數、差分運算等。

3.2 規範化

     不同評價指標往往具有不同的量綱,數值間的差別可能很大,不進行處理可能會影響到資料分析的結果。為了消除指標之間的量綱和取值範圍差異的影響,需要進行標準化處理,將資料按照比例進行縮放,使之落入一個特定的區域,便於進行綜合分析。主要有最小-最大規範化,零-均值規範化,小數定標規範化等方法。

3.3 連續屬性離散化

     一些資料探勘演算法,特別是某些分類演算法(如ID3演算法、Apriori演算法等),要求資料是分類屬性形式。常常需要將連續屬性變換成分類屬性,即連續屬性離散化。

1)離散化的過程

      連續屬性的離散化就是在資料的取值範圍內設定若干個離散的劃分點,將取值範圍劃分為一些離散化的區間,最後用不同的符合或整數值代表落在每個子區間中的資料值。

2)常用離散化方法

常用的離散化方法有等寬法,等頻法,聚類等。

等寬法:該法將屬性的值域分成具有相同寬度的區間,區間的個數由資料本身的特點決定,或者由使用者決定。

等頻法:該法將相同數量的記錄放進每個區間

聚類:聚類的方法包括兩個步驟,首先將連續屬性的值用聚類演算法進行聚類,然後再將聚類得到的簇進行處理,合併到一個簇連續屬性值並做同一標記。

3.4屬性構造

      在資料探勘的過程中,為了便於提取更有用的資訊,挖掘更深層次的模式,提高挖掘結果的精度,需要利用已有的屬性集構造出新的屬性,並加入到現有的屬性集合中。

4. 資料規約

      資料規約可以產生更小的但保持原資料完整性的新資料集。在規約後的資料集上進行分析和挖掘將更有效率。

 資料規約的意義在於:

l  降低無效、錯誤資料對建模的影響,提高建模的準確性

l  少量且具有代表性的資料將大幅縮減資料探勘所需的時間

l  降低儲存資料的成本

1)屬性規約

       屬性規約通過屬性合併來建立新屬性維數,或者直接通過刪除不相關的屬性來減少資料維數。屬性規約的目標是尋找出最小的屬性子集並確保新資料子集的概率分佈儘可能地接近原來資料集的概率分佈。屬性規約常用方法如下表所示:

屬性規約方法

方法描述

合併屬性

將一些舊屬性合為新屬性

逐步向前選擇

從一個空屬性集開始,每次從原來屬性集合中選擇一個當前最優的屬性新增到當期屬性子集中。直到無法選擇出最優屬性或滿足一定閾值約束為止

逐步向後刪除

從一個全屬性集開始,每次從當前屬性子集中選擇一個當前最差的屬性並將其從當前屬性子集中消去。直到無法選擇出最差屬性為止或滿足一定閾值約束為止

決策時歸納

利用決策樹的歸納方法對初始資料進行分類歸納學習,獲得一個初始決策樹,所有沒有出現在這個決策樹上的屬性均可認為是無關屬性,因此將這些屬性從初始集合中刪除,就可以獲得一個較優的屬性子集

主成分分析

用較少的變數取解釋原始資料中的大部分變數,即將許多相關性很高的變數轉化彼此相互或不相關的變數

2)數值規約

      數值規約通過選擇替代的、較小的資料來減少資料量,包括有引數方法和無引數方法兩類。有引數方法是使用一個模型來評估資料,只需存放參數,而不需要存放實際資料,無參方法就需要存放實際資料。數值規約主要有直方圖,聚類,抽樣,引數迴歸等方法。

5. R語言主要資料預處理函式

函式名

函式功能

所屬函式包

lm()

利用因變數與自變數建立線性迴歸模型

通用函式包

predict()

依據已有模型對資料進行預測

通用函式包

mice()

對缺失資料進行多重插補

mice函式包

which()

返回服從條件的觀測所在位置

通用函式包

scale()

對資料進行零-均值規範化

通用函式包

rnorm

隨機產生服從正態分佈的一列數

通用函式包

ceiling

向上舍入接近的整數

通用函式包

kmeans()

對資料快速進行聚類分析

通用函式包

princomp()

對指標變數矩陣進行主成分分析

通用函式包

dwt()

對資料進行小波分解

waveslim函式包