在現實生活中,咱們會遇到各類各樣的數據,並且其中絕大多數的數據是「有毛病」的,不利於後期進行分析,因此咱們在分析前須要進行數據的預處理。數據庫
數據質量包括準確性
、完整性
、一致性
、時效性
、可信性
和可解釋性
工具
數據清理
、數據集成
、數據歸約
、數據變換
性能
數據歸約獲得數據集的簡化表示,它小得多,但能產生一樣的(或幾乎一樣的)分析結果。數據歸約策略包括維歸約
和數值歸約
。編碼
規範化
,數據離散化
和概念分層產生
。數據清理例程試圖填充缺失的值、光滑噪聲並識別離羣點,糾正數據中的不一致。code
處理缺失值的方法:事件
注:某些狀況下,缺失值並不表示錯誤,例如,一個沒有駕駛證的人去辦理信用卡,則駕駛證欄不會填ci
噪聲是被測量的變量的隨機偏差或方差。
數據光滑技術包括:it
分箱
:分箱方法經過考察數據的「近鄰」(即周圍的值),來光滑有序數據值。變量
迴歸
離羣點分析
:可經過如聚類來檢測離羣點以上方法也可用於數據離散化和數據歸約 重構
數據清理首先進行誤差檢測
,使用任何可能具備的關於數據性質的元數據
(關於數據的數據),還要防止字段過載
,還應當根據惟一性規則
、連續性規則
和空值規則
考察數據。
誤差檢測的商業工具:
數據遷移工具:
好的數據集成有助於提升其後挖掘過程的準確性和速度。
例如,計算機如何確信一個數據庫中的customer_id與另外一個數據庫中的cust_number指的是相同屬性?每一個屬性的元數據包括名字、含義、數據類型和取值範圍,以及空值規則。這樣的元數據能夠用來避免模式集成的錯誤。
有些冗餘能夠被相關分析檢測到。給定兩個屬性,這種分析能夠根據可用的數據,度量一個屬性能有多大程度蘊含另外一個。
對於標稱數據,使用$\chi^{2}$(卡方
)檢驗,對於數值屬性,使用
相關係數和
協方差`。
假設A有C個不一樣值$a_1,a_2,...,a_c$,B有r個不一樣值$b_1,b_2,...,b_r$。用A和B描述的數據元組能夠用相依表顯示,其中A的C個值構成列,B的r個值構成行。令$(A_i, B_j)$表示屬性$a_i, b_j$的聯合事件,即$(A = a_i, B = b_j)$。每一個可能的$(A_i, B_j)$聯合事件都在表中有本身的單元。$\chi^{2}$值(又稱$Pearson \chi^{2}$統計量)能夠用下式計算:
$$ \chi^{2}=\sum_{i=1}^c \sum_{j=1}^r \frac{(o_{ij}-e_{ij})^2}{e_{ij}} $$
其中,$o_{ij}$是聯合事件$(A_i, B_j)$的觀測頻度(即實際計數),而$e_{ij}$是$(A_i, B_j)$的指望頻度,能夠用下式計算:
$$ e_{ij} = \frac{count(A=a_i)*count(B=b_j)}{n} $$
其中,$n$是數據元組的個數,$count(A=a_i)$是A上具備$a_i$的元組個數,$count(B=b_j)$是B上具備$b_j$的元組個數。
注:對$\chi^2$值貢獻最大的單元是其實際計數與指望計數很不相同的單元
$\chi^2$統計檢驗假設A和B是獨立的。檢驗基於顯著水平,具備自由度$(r-1)(c-1)$。若是能夠拒絕該假設,則說明A和B是統計相關的。
能夠經過計算屬性A和B的相關係數(又稱$Pearson$積矩係數)估計這兩個屬性的相關度$r_{a,b}$
$$ r_{a,b} = \frac{\sum_{i=1}^n (a_i - A_{mean})(b_i - B_{mean})}{n\sigma_A \sigma_B} = \frac{\sum_{i=1}^n (a_i b_i) - nA_{mean}B_{mean}}{n\sigma_A \sigma_B} $$
其中,$n$是元組的個數,$a_i$和$b_i$分別是元組$i$上A和B的值,$A_{mean}$和$B_{mean}$分別是A和B的均值,$\sigma_A$和$\sigma_B$的標準差,而$\sum(a_ib_i)$是AB的叉積和。
注:$-1≤r_{A,B}≤+1$。若是$r_{A,B}$大於0,則A和B是正相關的,意味着A值隨B值的增長而增長。值越大,相關性越強。所以,一個較高的$r_{A,B}$值代表A或B能夠做爲冗餘刪除。
考慮兩個數值屬性A和B和幾回觀測的集合$\{(a_1,b_1),...,(a_n,b_n) \}$。A和B的均值又稱爲指望
,即:
$$ E(A) = A_{mean} = \frac{\sum_{i=1}^n a_i}{n}, E(B) = B_{mean} = \frac{\sum_{i=1}^n b_i}{n} $$
A和B的協方差
定義爲:
$$ Cov(A, B) = E((A-A_{mean})(B-B_{mean})) = \frac{\sum_{i=1}^n(a_i-A_{mean})(b_i-B_{mean})}{n} $$
協相關係數
$r_{A,B}$:
$$ r_{A,B} = \frac{Cov(A,B)}{\sigma_A \sigma_B} $$
其中,$\sigma_A$和$\sigma_B$分別是A和B的標準差
$$ Cov(A,B) = E(A,B) - A_{mean}B_{mean} $$
兩個趨於一塊兒改變的屬性A和B,若是A大於$A_{mean}$,則極可能B大於$B_{mean}$,所以A,B的協方差爲正,若是A和B是獨立的,則$E(A,B)=E(A)-E(B)$,因此$Cov(A,B)=E(A*B)-A_{mean}B_{mean}=E(A)*E(B)-A_{mean}B_{mean} = 0$
除了檢測屬性冗餘外,還應在元組級檢測重複。
例如,對於給定的惟一數據實體,存在兩個或多個相同的元組。
致使數據值衝突的緣由可能由於表示、尺度或編碼不一樣。
屬性也可能在不一樣的抽象層,其中屬性在一個系統中記錄的抽象層可能比另外一個系統中「相同的」屬性低。
數據歸約策略包括維歸約
、數量歸約
和數據壓縮
維歸約減小所考慮的隨機變量或屬性的個數。維歸約方法包括小波變換
、主成分分析
,屬性子集選擇
。
數量歸約用替代的較小的數據表示形式替換原數據。
數據壓縮使用變換,以便獲得原數據的歸約或「壓縮」表示。若是原數據可以從壓縮後的數據重構,而不損失信息則稱無損的
。若是能近似重構原數據則稱有損的
。
數據變換策略包括:
光滑
:去掉數據中的噪聲。包括分箱、迴歸和聚類屬性構造
(或特徵構造):能夠由給定的屬性構造新的屬性並添加到屬性集中,以幫助挖掘過程。彙集
:對數據進行彙總和彙集規範化
:吧屬性數據按比例縮放,使之落入特定小區間。概念分層
:屬性,如:stree,能夠泛化到較高的概念層,如city。注:數據預處理的主要任務之間存在許多重疊