原文:http://dataunion.org/5009.html
一:為什么要預處理數據?
(1)現實世界的數據是骯臟的(不完整,含噪聲,不一致)
(2)沒有高質量的數據,就沒有高質量的挖掘結果(高質量的決策必須依賴於高質量的數據;數據倉庫需要對高質量的數據進行一致地集成)
(3)原始數據中存在的問題:
不一致 —— 數據內含出現不一致情況
重復
不完整 —— 感興趣的屬性沒有
含噪聲 —— 數據中存在着錯誤、或異常(偏離期望值)的數據
高維度
二:數據預處理的方法
(1)數據清洗 —— 去噪聲和無關數據
(2)數據集成 —— 將多個數據源中的數據結合起來存放在一個一致的數據存儲中
(3)數據變換 —— 把原始數據轉換成為適合數據挖掘的形式
(4)數據規約 —— 主要方法包括:數據立方體聚集,維度歸約,數據壓縮,數值歸約,離散化和概念分層等。
(5)圖說事實
三:數據選取參考原則
(1)盡可能富余屬性名和屬性值明確的含義
(2)統一多數據源的屬性編碼
(3)去除唯一屬性
(4)去除重復屬性
(5)去除可忽略字段
(6)合理選擇關聯字段
(7)進一步處理:
通過填補遺漏數據、消除異常數據、平滑噪聲數據,以及糾正不一致數據,去掉數據中的噪音、填充空值、丟失值和處理不一致數據
四:用圖說話,(我還是習慣用統計圖說話)
數據清洗的路子:剛拿到的數據 —-> 和數據提供者討論咨詢 —–> 數據分析(借助可視化工具)發現臟數據 —->清洗臟數據(借助MATLAB或者Java/C++語言) —–>再次統計分析(Excel的data analysis不錯的,最大小值,中位數,眾數,平均值,方差等等,以及散點圖) —–> 再次發現臟數據或者與實驗無關的數據(去除) —–>最后實驗分析 —-> 社會實例驗證 —->結束。
一 數據清理
試圖填充缺失值,光滑噪聲並識別離群點,並糾正數據中的不一致。
1)處理缺失值方法:
a.忽略元祖,挖掘任務涉及分類任務中如果缺少類標號時通常這樣做
b.人工填寫缺失值,量大時行不通
c.使用一個全局常量填充缺失值,簡單但不可靠
d.使用屬性的均值填充缺失值
e.使用與給定元組屬同一類的所有樣本的屬性均值
f.使用最有可能的值填充缺失值,可以用回歸,使用貝葉斯形式化的基於推理的工具或決策樹歸納確定,是流行的做法。
2)數據光滑技術:噪聲是被測量的變量的隨機誤差或方差
a.分箱,分箱方法通過考察數據的“近鄰”(即周圍的值)來光滑有序數據的值,有序值分布到一些“桶”或箱中。由於分箱方法考察近鄰的值,因此進行局部光滑。幾種分箱技術:用箱均值光滑、用箱邊界光滑、用箱中位數光滑。
b.回歸:可以用一個函數(如回歸函數)擬合數據來光滑數據。線性回歸涉及找出擬合兩個屬性(或變量)的“最佳”線,是的一個屬性可以用來預測另一個。多元線性回歸是線性回歸的擴展,其中涉及的屬性多於兩個,並且數據擬合到一個多維曲面。
c.聚類:通過聚類檢測離群點
3)數據清理作為一個過程的方法:過程的第一步是偏差檢測,有大量商業工具幫助我們進行偏差檢測,數據清洗工具、數據審計工具、數據遷移工具、ETL工具。新的數據清理方法強調加強交互性,如Potter's Wheel,集成了偏差檢測和數據變換。
二 數據集成和變換
1)數據集成:數據分析任務多半涉及數據集成。數據集成合並多個數據源中的數據,存放在一個一致的數據存儲(如數據倉庫)中。這些數據源可能包括多個數據庫、數據立方體或一般文件。數據集成有三個主要問題:a.模式集成和對象匹配,實體識別問題:來自多個信息源的現實世界的等價實體如何才能匹配?元數據可以幫助避免模式集成的錯誤。b.冗余:有些冗余可以被相關分析檢測到。通過計算屬性A,B的相關系數(皮爾遜積矩系數)來判斷是否冗余;對於離散數據,可通過卡方檢驗來判斷兩個屬性A和B之間的相關聯系。c.數據值沖突的檢測與處理
2)數據變換:將數據轉換或統一成適合於挖掘的形式。涉及如下內容:
a.光滑:去掉數據的噪聲,包括分箱,回歸和聚類
b.聚集:對數據進行匯總或聚集。這一步通常用來為多粒度數據分析構造數據立方體
c.數據泛化:使用概念分層,用高層概念替換底層或“原始”數據。
d.規范化:又稱為歸一化,feature scaling特征縮放。將屬性數據按比例縮放,使之落入一個小的特定區間。規范化方法:
1.最小-最大規范化:v'=[(v-min)/(max-min)]*(new_max-new_min)+new_min
2.z-score規范化(或零均值規范化):v'=(v-屬性A的均值E)/屬性A的標准差∽
3.小數定標規范化:v'=v/10的j次方,j是使Max(|v'|)<1的最小整數
e.屬性構造(或特征構造):可以構造新的屬性並添加到屬性集中,以幫助挖掘過程。
三 數據歸約
數據集可能非常大!面對海量數據進行復雜的數據分析和挖掘將需要很長的時間。數據歸約技術可以用來得到數據集的歸約表示,它小很多,但仍接近保持原數據的完整性。數據歸約策略如下:
1)數據立方體聚集:聚集操作用於數據立方體結構中的數據。數據立方體存儲多維聚集信息。
2)屬性子集選擇,參見文本分類概述中特征選擇算法
3)維度歸約:使用數據編碼或變換,以便得到原數據的歸約或“壓縮”表示。歸約分為無損的和有損的。有效的有損維歸約方法為:小波變換和主成分分析
4)數值歸約:通過選擇替代的、‘較小的’數據表示形式來減少數據量
5)離散化和概念分層產生