數據預處理


3.1 數據預處理:概覽

數據的低質量會導致低質量的數據挖掘結果。數據質量包含很多因素,如:精確性、完整性、一致性、時效性、可信性以及可解釋性。這里有幾種數據預處理的技術,包括:數據清洗,數據聚合,數據刪減,數據轉換。這些技術能提升挖掘算法的精確性和效率。它們並非相對獨立,是共同工作的。比如,數據清洗也包含數據轉化以去除錯誤數據。

不精確數據有很多可能的原因:
(1)數據收集工具可能錯誤,數據記錄中很多人為的或計算機導致的的錯誤。
(2)用戶也可能在值當他們不願意暴露個人資料的時候在一些強制必須填寫的欄目故意提交了錯誤的資料(如生日直接用默認值1月1日)。這是一些偽裝缺失的數據。
(3)數據在傳輸時也可能出錯。一些技術上的限制,例如並行同步數據的傳輸和計算時緩沖區間的有限性。
(4)不正確的數據也可能因為命名習慣或者數據編碼的不一致性,或者輸入域的格式不一致。
(5)重復的元組也需要進行數據清洗。

導致數據的不完整性的原因也有很多:
(1)感興趣的屬性並不能總是可獲得,比如銷售交易數據中的客戶資料信息。
(2)另外,很可能因為在當時的條目中,該屬性被認為是不重要的。
(3 )相關聯的數據沒有被記錄可能因為誤解或者設備故障的原因。

數據的不一致性:

(1)和其他數據記錄不一致的數據應該被被刪掉。另外,數據歷史和修改可能被忽視。缺失的數據,特別是缺失了某些屬性值的元組,值可能需要被推斷。

時效性也可能影響數據質量:
    比如你在瀏覽AllElectronics公式的每月銷售獎金的數據分布。一些銷售代表在月末的時候沒有及時的提交他們的銷售記錄。在月末之后可能有一些數據的更正和調整。從每個月的時間周期來看,數據庫中存放的數據是不完整的。因為月末的數據沒有被及時的更新導致了數據質量的負面性影響。
數據預處理的主要步驟是:
數據清洗:數據清洗的工作是清洗數據,通過填寫缺失的數據,平滑噪音數據,識別需要去除的離群點,以及解決不一致性。
數據聚合:如果你的分析中數據是多來源的,則需要進行數據聚合工作,即聚合多種數據庫,數據立方,以及文件。 一個給定概念的屬性在不同數據庫中可能有不同的命名,導致了不一致性和冗余。
數據刪減:數據刪減能得到一個數據集的刪減集,比原來的數據小很多,但是能產生相同的(或幾乎相同的)分析結果。數據刪減包括維度刪減數據塊刪減

  維度刪減是一種獲得原有數據的刪減或者壓縮集的數據編碼方案。
比如,數據壓縮技術(小波分析、主成分分析)屬性子集選擇(去除不相關屬性),以及屬性構造(如從原有數據集中建立小的更有用的屬性)

  數據塊刪減:數據被可選的更小的數據替換,使用參數模型(如回歸和對數-線性模型)或者非參數模型(直方圖,聚類,抽樣和數據聚集)。
數據轉換

3.2 數據清洗

3.2.1缺失值

如何能填寫這些屬性的缺失值呢?

1. 忽略元組。常常在類別標簽(假定是分類任務)缺失時這樣做。

2 .手工填寫缺失值。通常,這種方法耗時,並且對一個有很多缺失值的大型數據集來說並非可行。
3 .使用一個全局常數來填寫缺失值。可以將所有缺失的屬性值用同一個常數,例如標簽“Unknown”或者”-∞”來表示。如果缺失值被“Unknown”替換,挖掘算法可能錯誤的認為形成了一個有趣的概念,因為他們都有一個共同的值”Unknown”.因此,即使這種方法很簡單,卻也並非不會出錯。
4 .使用一個屬性的中心性測量來填寫缺失值。對於標准(對稱的)數據分布,可以使用平均值,對偏斜數據分布可以使用中值。

5. 使用給定元組的類別相同的所有樣本的均值或者中值。例如,如果根據顧客的信用風險來分類顧客,可以計算和該顧客的信用風險類別相同的所有顧客的收入均值,來填寫給定元組的缺失的收入屬性。如果對於給定類別數據分布是偏斜的,則使用中值。
6. 使用缺失值的最可能的值來填寫。值可以由回歸、使用Bayes公式的基於推理的工具,或者決策樹推理。如,使用你的數據集中的其他顧客的屬性,可以建立一個預測顧客缺失的收入值的決策樹。最常用的方法

3.2.2噪聲數據

如何來平滑數據以去除噪聲呢?有如下技術:
1、裝箱
    裝箱方法通過參考數據值的“鄰居”(即該值周圍的數據)來平滑排好序的數據。

排好序的數據被分布到一系列的“桶”,或箱子中。因為裝箱方法參考值的鄰居,所以使用的是局部平滑。
有若干種裝箱技術:
1)等頻裝箱。例如,價格屬性先被排序,然后被分割到箱子的大小為3的等頻箱子中。
2)箱子均值平滑。箱子中的每個值被箱子的均值替代。
3)箱子中值平滑。每個箱子值被箱子中值取代。
4)箱子邊界平滑。箱子值被最靠近的邊界值(最大值或最小值)取代。
箱子的寬度也大,平滑效果也越顯著。另外,等寬度的箱子,即每個箱子間隔是個相同的常數也常被使用。箱子技術也是一種數據離散化的技術。

2、回歸:
數據平滑也可以使用回歸的方法,即將數據值通過一個函數來表達。線性回歸是尋找兩個屬性(或變量)的最好的直線來通過一個屬性預測另外一個。多元線性回歸是線性回歸的擴展。超過兩個的屬性被包含在其中,數據被擬合成一個高維超平面。
3、離群點分析:
通過聚類的方法可以檢測離群點。例如,相似的值被分組,或“簇”。值落在簇之外的被認為是離群點。

3.2.3 數據清洗作為一個過程

數據清洗作為一個過程的第一步是不一致性檢測。不一致性可能由多種原因導致:
1.設計很差的數據表
2.人為的輸入錯誤
3.故意的錯誤(不希望泄露個人信息的回答者),
4.以及數據延遲(如過期的地址)
5.還可能因為不一致的數據表達和編碼的不一致使用
6.其他的來源例如測量設備的錯誤導致的記錄數據和系統錯誤
7.錯誤也可能發生在被用於和預期不同的目的時
還有一些不一致性是因為數據聚合導致的(一個給定的屬性在不同數據庫中使用不同的名稱)

數據遷移工具允許做簡單的轉換例如將字符串“gender”變為”sex”.
    ETL(抽取/轉換/加載工具)允許用戶規定使用圖形用戶接口(GUI) 來轉換。
    這些工具常常只支持有限的轉換集,因此,我們還常常選擇編寫定制的腳本來做數據清洗的工作。
不一致性的兩個步驟即不一致性檢測和數據轉換是迭代的過程。這個過程是修剪錯誤,很耗時。
3.3 數據聚合

數據挖掘經常需要數據聚合——合並多個數據庫中的數據。
細致的聚合能幫助減少和避免結果數據集中的冗余和不一致性。並在隨后的數據挖掘過程中提高准確率和速度。
3.3.1 實體識別問題

模式聚合和對象匹配可能比較復雜。如何將真實世界中的實體等價地匹配到多個數據源中?這就是實體識別問題。

3.3.2 冗余和關聯性分析

冗余是數據聚合的另外一個重要的問題。一個屬性(例如年收入)是冗余的,如果它能從其他的屬性或屬性集合推導得到。屬性的不一致或者維度命名也會導致相應數據集中的冗余。
    這種冗余可以使用關聯性分析來檢測。給出兩個屬性,這種分析能基於可獲得的數據測量一個屬性在多強的程度上暗含了另一個。對於名詞數據,可以使用卡方檢驗。對數值型數據,使用關聯系數和協方差。
3.3.3元組復制

除了檢測屬性間的冗余,元組級別的冗余也需要被檢測。不規范表的使用(一般是為了避免連接提高性能)是另一種數據冗余的來源。在不同的復制之間常常產生不一致性。因為不精確的數據輸入或者更新了一部分而非全部的數據。

3.3.4 數據值和檢測與解析的沖突
數據聚合還包含數據值沖突的檢測和解析。例如,對於同一個真實世界實體,不同來源的屬性值可能不同。可能是因為表達、刻度或者編碼的不同。

3.4 數據刪減

3.4.1 數據刪減

刪減數據塊是將原有數據以可選的、更小的表格替換。分參數和非參數兩種技術。
》參數的方法是,使用一個模型來評估數據,常常只有數據參數被存儲,而非實際的數據。回歸和對數——線性模型是兩個參數技術的例子。
》非參數技術存放以直方圖、聚類、抽樣以及數據立方的形式表示的刪減數據。
3.4.2 小波轉換

離散小波轉換(DWT)是一個線性信號處理技術。對一個數據向量X, 使用小波系數,轉換成一個不同的數值向量X’。

DWT和離散傅里葉轉換(DFT)關聯性很強。DFT是一種包含正弦余弦的信號處理技術。一般情況下,DWT能得到更好的無損壓縮。即如果在給定數據向量上應用DWT和DFT,DWT能得到原有數據更好的近似集。因此,得到一個相同的近似集,DWT需要更少的空間。
DWT的步驟:
1、輸入數據向量的長度L必須是2的整數次冪。這個條件可以在必要時以0填充數據向量來滿足。
2、每個轉換包含應用兩個函數。第一個應用一些數據平滑,例如求和或者加權平均。第二個使用一個加權差,為了表達數據的具體特征。
3、這兩個函數被應用到向量X的每一個對(x2i , x2i+1). 這會得到兩個長度為L/2的數據集。一般情況下,它們一個表達的是平滑的或者低頻的輸入數據的版本,另一個是高頻的內容。
4、這兩個函數被遞歸的應用到前一個循環得到的數據集上,直到數據集的長度變成2.
5、從前一次迭代的數據集中選擇值,將其指明為轉換數據的小波系數。
3.4.3 主成分分析

  假定要刪減的數據包含n個屬性或維度。主成分分析(PCA) 尋找K個n維正交向量,這些向量能最好的表達數據,k<n. 原有的數據因此被投影到一個更小的空間,得到刪減的維度。
    不同於屬性子集選擇,PCA通過創建一個可選的更好的變量集,得到重要屬性的聯合。PCA常常揭示之前沒有察覺的關系,因此得到通常沒有的解釋。
PCA的基本步驟:
1、將輸入數據標准化,每個屬性落在相同的值區間。確保屬性在更大范圍的不會占有更大權重。
2、計算K個正交向量,提供標准輸入數據的基礎。這是一些單位向量。每個點在方向上與其他的垂直。這些向量被稱為主要成分。輸入數據是主成分的線性組合。
3、主成分按重要性或者長度遞減的次序存放。主成分作為數據的新的坐標軸的集合,提供重要的方差信息。即,排序的坐標軸中,第一個軸表示數據的最大方差,第二個表示次高的方差,以此類推。
4、因為主成分按重要性的降序排列,數據尺寸可以通過去除次要成分來減少,即具有更小方差信息的。使用最強的主成分,得到原有數據的很好的近似集的重構是可能的。
PCA能被應用於次序或者非次序屬性。能處理稀疏和偏斜的數據。高維數據能被減少為2個。相比於小波轉換,PCA能更好的處理稀疏數據,而小波轉換更適合處理高維數據。
3.4.4 屬性子集選擇
剪枝式的啟發式方法通常被用於屬性子集選擇。這些方法通常是貪心式的,策略是做一個局部最優的選擇用以得到一個全局優化的解。

“最好的”(以及“最差的”)屬性常常是使用統計顯著性檢驗來決定,假定屬性之間是互相獨立的。許多其他的屬性評估方法如決策樹分類中的信息增益。
    基本的屬性子集選擇的啟發式技術如下:
    1、逐步向前選擇。該方法從一個屬性的空集合開始作為刪減集合。然后確定一個原有屬性的最好屬性,加入到刪減集合中。每一次迭代,都把剩余屬性集中最好的屬性加入到該集合。
    2、逐步向后刪除。該方法從全體屬性集開始,每一次從中去除剩余屬性集合中最差的屬性。
    3、結合向前選擇和向后刪除的方法。
   4、決策樹推導。
決策樹算法(如ID3,C4.5, 和CART)最初被用於分類。決策樹推導是創建一個流程圖結構,每一個內部節點(非葉子節點)表示一個屬性的檢驗,每一個分支對應於一個檢驗的結果,每一個外部節點(葉子節點)表示一個類別預測。在一個節點,算法選擇最好的屬性去將數據分割成單個的類別。
當決策樹用於屬性子集選擇時,給定數據的樹被創建。所有沒有出現在樹中的屬性被認為是不相關的。出現在樹中的屬性構成了刪減屬性子集。
在某些情形下,可能需要基於一些屬性創建一些新的屬性。這類屬性構造能幫助提高對高維數據的精確性和結構的理解。比如,基於屬性height和width創建area屬性。通過結合屬性,屬性構造能發現數據屬性之間的缺失信息,有利於知識發現。
3.4.5 回歸和對數——線性模型:參數數據刪減

線性回歸中,數據被擬合成一條直線。

對數——線性模型基於一個更小的維度聯合的子集,來估計每個點在高維空間的概率。這樣就能從低維空間構建高維數據空間。因此,模型可以用於維度刪減(因為低維點常常比原有數據點占有更少的空間)以及數據平滑(因為低維空間的聚合估計比高維空間的估計對抽樣變化主觀度更小)

回歸和對數——線性模型都能用在稀疏數據上,即使應用比較有限。兩種方法都能處理偏斜數據,回歸做的更好。對高維數據,回歸的計算復雜度很高,而對數——線性模型對高於10維的數據有更好的可擴展性。
3.4.6 直方圖

直方圖使用箱子來近似數據分布,是一種流行的數據刪減的形式。
3.4.7 聚類

聚類技術將數據元組當成對象。將對象划分成分組,或簇,在同一個簇中對象是相似的,跟其他簇中的對象是不相似的。相似性一般是基於距離函數,以對象在空間上的距離有多接近來定義。

3.4.8 抽樣
最常用的數據刪減的抽樣技術包括:
1、無置換的簡單隨機抽樣(SRSWOR)。方法是從N個元組中以概率1/N從D中抽樣s個數據,每個元組被抽樣的概率都相等。
2、有置換的簡單隨機抽樣(SRSWR)。類似於SPSWOR, 除了每次從D中抽樣一個元組之后,記錄它然后替換。即元組被抽樣之后,再放回D中下次還可以被繼續抽到。
3、聚類樣本。如果D中的元組被分成M個互不相交的簇,然后就可以抽樣得到s個簡單隨機抽樣簇,s<M.
4、分層抽樣:如果D被分成互不相交的層,分層抽樣可以通過對每個層進行簡單隨機抽樣來生成。這能在數據偏斜的時候,選出具有代表性的樣本。
3.4.9 數據立方聚合

3.5 數據轉換和數據離散化

3.5.1 數據轉換換策略概覽

數據轉換把數據轉換或合並成適合數據挖掘的形式。數據轉換的策略包括:
1、平滑。用於去除數據中的噪聲。技術包括裝箱,回歸和聚類。
2、屬性構造(或特征構造)。從給定屬性中構造或增加新屬性以便於挖掘過程。
3、聚合。在數據上應用聚合或者概括操作。例如,聚合每日銷售數據以計算每月和每年的總體數據。通常這個步驟用在構造用於多層抽象級別數據分析的數據立方。

4、規范化。屬性被按比例縮放到一個更小的范圍,如-1.0 到 1.0, 或 0.0到1.0之間。
5、離散化。數值屬性的原始值被區間標簽或概念標簽置換。標簽能被遞歸的組織成高層概念。形成一個數值屬性的概念層級。超過一個的概念層級可以被用來滿足不同用戶的需求。
6、名詞數據的概念層級生成。例如steet屬性可以擴展成高層概念,如city和country. 許多名詞屬性的層次是隱藏在數據庫模式中的,可以在模式定義級別自動定義。

3.5.2 數據標准化

標准化數據會給所有屬性相同權重。

3.5.3 裝箱離散化技術

裝箱技術沒有使用分類信息,因此是無監督的離散化技術。它對人為指定的箱子個數以及離群點比較敏感。

3.5.4直方圖分析的離散化技術

直方圖也是一種無監督的離散化技術。

3.5.5 聚類、決策樹以及關聯分析離散化技術
  聚類分析是一種流行的數據離散化方法。一個聚類算法可以應用到數值屬性上,將屬性A的值分割成簇或分組。聚類考慮屬性A的分布,和數據點的緊密度,因此會產生高質量的離散化結果。
  決策樹分類技術也可以用來做數據的離散化。這種技術采用自頂向下的分割方法。不同於其他的前面提到的方法,這是一種有監督的離散化方法,即使用分類標簽的信息。
  關聯分析也可以用於數據離散化。ChiMerge是一種基於卡方分布的離散化方法。之前的離散化方法中,都是采用一種自頂向下的分割策略。
3.5.6 名詞屬性的概念層次生成

3.6 總結
數據質量包括精確性、完整性、一致性、時效性、可信性和可解釋性。質量的評估基於對數據的預期使用。



免責聲明!

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



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