數據預處理——框架總結篇

數據預處理

現實中的數據
現實中的數據庫數據很龐大,而且數據來源於“不同複雜各異”的數據源。數據庫受噪聲缺失值不一致數據的影響,使得數據低質量,導致低挖掘結果。

爲提高數據質量,和挖掘結果的質量,對數據預處理是必要的。

1.數據預處理的技術

  • 數據清理:清除數據中的噪聲,糾正不一致。
  • 數據集成:將多個數據源的數據合併到一個一致的數據存儲中,如數據倉庫。
  • 數據規約:通過聚集、刪除冗餘特徵、聚類來降低數據的規模。
  • 數據變換:(如,規範化)可以把數據壓縮到較小的區間,如0到1。對涉及距離度量的挖掘算法可提高準確率和效率。

2.數據質量:爲什麼要對數據預處理?
2.1 數據質量依賴於數據的應用。也即對於同一數據庫,不同需求的分析人員對其數據評價不同。(數據質量沒有絕對的好壞,只要能滿足分析人員的應用要求,那麼它就是高質量的。)

影響數據質量的因素:準確性、完整性、一致性、時效性、可信性、可解釋性。

假設你是銷售經理,公司要求你分析部門的銷售數據,想知道每種銷售商品是否做了降價銷售廣告,你需要分析某些屬性或維。但是你希望用數據挖掘技術分析的數據是:
不完整的(缺少屬性值或某些感興趣的屬性);
不正確的或含噪聲的(包含錯誤的或偏離期望的值);
不一致的(如,用於商品分類的部門編碼存在差異)。

以上是數據質量的三要素,是大型數據庫的共同特點。而導致三要素出現的原因有多種:

  • 收集數據的設備可能故障;
  • 人和計算機的錯誤輸入;
  • 當用戶不希望提交個人信息時,會故意輸入錯誤信息,(如出生年月、個人收入)。這被稱爲被掩蓋的缺失數據

時效性(有的數據在數據庫中需要實時更新,再數據挖掘分析之前未更新的數據將會嚴重影響數據質量)
可信性 (反映有多少數據是用戶信賴的)
可解釋性(反映數據是否容易理解,有些數據用編碼形式存儲,分析人員難以理解,會把它看成低質量的數據)

2.2 數據預處理的主要任務
數據預處理的主要步驟:數據清理、數據集成、數據歸約、數據變換。

  • 數據清理:通過填寫缺失的值光滑噪聲數據識別和刪除離羣點解決不一致性來“清理”數據。

  • 數據集成:假設分析中使用來自多個數據源的數據,這涉及集成多個數據庫、數據立方體或文件。

  • 數據歸約:由於數據集大都很龐大,降低了數據挖掘的速度,爲降低數據集的規模,而又不損害數據挖掘的結果。數據歸約能得到數據集的簡化表示,併產生同樣的分析結果。包括維歸約數值歸約
    1.)在維歸約中,使用數據編碼方案,以便得到原始數據的簡化或“壓縮”表示。包括數據壓縮技術(如,小波變換、主成分分析);和屬性子集選擇(如,去掉不相關的屬性);屬性構造(如,從原來的屬性集導出更有用的小屬性集)。
    2.)在數值歸約中,使用參數模型(如,迴歸和對數線性模型)或非參數模型(如,直方圖、聚類、抽樣、數據聚集),用較小的表示取代數據。

  • 數據變換:數據被變換成或統一成適合於挖掘的形式。包括,規範化數據離散化概念分層

如下圖爲數據預處理的形式:
預處理

3.數據清理
3.1 缺失值
假設你需要分析顧客數據,許多元組的一些屬性(如,顧客的income)沒有記錄值。如何填寫缺失值呢?

  • 忽略元組:當元組的多個屬性值缺失時,且每個屬性值的百分比變化不大時,可採用忽略該元組。忽略後該元組的剩餘屬性值不能再考慮使用。
  • 人工填寫缺失值:當數據集很大時,缺失值很多,該方法不適合。
  • 使用一個全局常量填充缺失值:將缺失屬性值用同一個常量(如,Unknown)替換。該方法簡單但並不可靠。
  • 使用屬性的中心度量(如,均值或中位數)填充缺失值:在討論數據的中心趨勢度量時,可指示數據分佈的“中間”值。因此,對於正常的(對稱的)數據分佈,可使用均值對於傾斜數據分佈可使用中位數。如,顧客的income數據分佈是對稱的,平均收入爲5000元,則可用該值替換income的缺失值。

3.1 噪聲數據
什麼是噪聲呢? 噪聲是被測量的變量的隨機誤差或方差。
如何表示呢? 使用統計描述技術(如,盒圖、散點圖)和數據可視化方法來識別代表噪聲的離羣點。
給定一個數值屬性,如price,如何“光滑”數據、去掉噪聲?

我們看看以下數據光滑技術

分箱:通過考察數據的“近鄰”(周圍值)來光滑 有序數據值。將這些有序的值分佈到一些“桶”或箱中。由於分箱方法考察近鄰值,因此進行的是局部光滑。
如下圖是數據光滑的分箱方法:
數據光滑分箱方法

  • 用箱均值光滑:箱中每一個值被箱中的平均值替換。
  • 用箱中位數光滑:箱中的每一個值被箱中的中位數替換。
  • 用箱邊界光滑:箱中的最大和最小值被視爲邊界。箱中的每一個值被最近的邊界值替換。

迴歸:也可用一個函數擬合數據來光滑數據。稱爲迴歸。線性迴歸是找出擬合兩個屬性的“最佳”直線,使得一個屬性可以用來預測另一個。多元線性迴歸,涉及多個屬性將數據擬合到一個曲面。
離羣點分析:可通過聚類來檢測離羣點。直觀的,落在簇外的值被視爲離羣點。

4.數據集成
數據挖掘經常需要數據集成——合併來自多個數據存儲的數據。合理有效的集成有助於減少結果數據集的冗餘和不一致。
由於數據語義和結構的多樣性,對數據集成提出了巨大挑戰。如何匹配多個數據源的模式和對象,這實際上是實體識別問題

4.1 實體識別問題

  • 數據集成時,通常需要模式集成對象匹配,*來自多個信息源的等價實體如何才能“匹配”?*如,計算機如何確定一個數據庫中的customer_id和另一個數據庫中的cust_number指的是相同的屬性。
  • 其實,每個屬性的元數據包含名字、含義、數據類型和屬性的允許取值範圍,以及處理空白、零、NULL的空值規則。這樣的元數據可以用來幫助避免模式集成的錯誤。元數據還可以用來幫助變換數據。

4.2 冗餘和相關分析

  • 冗餘是數據集成的另一個重要問題。一個屬性(如,年收入)如果能由其他屬性導出,則這個屬性可能是冗餘的。屬性或維命名的不一致也可能導致結果數據集成的冗餘。
  • 有些冗餘可以被相關分析檢測到。對於兩個可能存在冗餘的屬性,這種分析可以根據可用的數據,度量一個屬性能在多大程度上蘊涵另一個。
    對於標稱數據,我們使用卡方檢驗。對於數值數據,我們使用相關係數和協方差它們都可以用來評估一個屬性的值如何隨另一個變化。

4.3 元組重複

除了檢測屬性間的冗餘外,還應當在元組間檢測重複(例如,對於給定的唯一數據實體,存在兩個或多個相同的元組)。

4.4 數據值衝突的檢測與處理

  • 數據集成還涉及數據值衝突的檢測與處理。例如,對於現實世界的同一實體,來自不同數據源的屬性值可能不同。這可能是因爲表示、尺度或編碼不同。例如,重量屬性可能在一個系統中以公制單位存放,而在另一個系統中以英制單位存放。
  • 屬性也可能在不同的抽象層,其中屬性在一個系統中記錄的抽象層可能比另一個系統中“相同的“屬性低。比如,total_sales在一個系統中表示分店銷售額,但在另一個系統表示區域銷售額。

5. 數據歸約
數據歸約技術可以用來得到數據集的歸約表示,它很小,但任然保持了原始數據的完整性。也即在歸約後的數據集上挖掘更有效,任然產生相同的分析結果。

5.1 數據歸約的策略概述

數據歸約策略包括維歸約、數量歸約、數據壓縮

  • 維歸約: 減少所考慮的隨機變量或屬性的個數。 維歸約方法包括小波變換主成分分析(把原數據變換或投影到較小的空間)、屬性子集選擇(其中不相關、弱相關、冗餘的屬性或維被檢測和刪除)。

  • 數量歸約:用替代的、較小的數據表示形式,替換原數據。這些技術可以是參數的或非參數的。 對於參數方法,使用模型估計數據(一般只需要存放模型參數,而不是實際數據)。非參數方法包括,直方圖、聚類、抽樣、數據立方體聚集。

  • 數據壓縮:使用變換,以便得到數據的歸約或“壓縮”表示。如果原數據能夠從壓縮後的數據重構,而不損失信息,則該數據規約稱爲無損的。如果我們只能近似重構原數據,則該數據規約稱爲有損的。

6. 數據變換與數據離散化
在數據預處理階段,數據被變換或統一,使得挖掘過程更有效,挖掘的模式可能更容易理解。

6.1 數據變換策略概述

在數據變換中,數據被變換或統一成適合於挖掘的形式。數據變換策略包括如下幾種:

  • 光滑:去掉數據中的噪聲。這類技術包括分箱迴歸聚類。 屬性構造(或特徵構造):可以由給定的屬性構造新的屬性並添加到屬性集中。
  • 聚集:對數據進行彙總或聚集。例如,可以聚集日銷售數據,來計算月和年銷售量。
  • 規範化:把屬性數據按比例縮放,使落到一個特定的小區間,如,0.0-1.0。
  • 離散化:數值屬性(如,年齡)的原始值,用區間標籤(如,0-20,21-30);或概念標籤(如,youth,adult,senior)替換。
    由標稱數據產生概念分層:屬性,如street,可以泛化到較高的概念層,如city。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章