數(shù)據(jù)挖掘-數(shù)據(jù)預處理

數(shù)據(jù)預處理的主要步驟包括數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)歸約和數(shù)據(jù)變換。
數(shù)據(jù)清理可以用來清除數(shù)據(jù)中的噪聲,糾正不一致。數(shù)據(jù)集成將數(shù)據(jù)由多個數(shù)據(jù)源合并成一個一致的數(shù)據(jù)存儲,如數(shù)據(jù)倉庫。數(shù)據(jù)歸約可以通過如聚集、刪除冗余特征或聚類來降低數(shù)據(jù)的規(guī)模。數(shù)據(jù)變換(如規(guī)范化)可以用來把數(shù)據(jù)壓縮到較小的區(qū)間,如0.0到1.0,從而提高涉及距離度量的算法的準確率和效率。

數(shù)據(jù)清理

現(xiàn)實世界的數(shù)據(jù)一般是不完整的、有噪聲的和不一致的。數(shù)據(jù)清理試圖填充缺失值、光滑噪聲并識別離群點、糾正數(shù)據(jù)中的不一致。

缺失值

常用的缺失值填補方法:

  1. 忽略元組:當元組有多個屬性缺少值時。
  2. 人工填寫缺失值。
  3. 使用一個全局常量填充:如unknown,簡單但并不十分可靠。
  4. 使用屬性的中心度量填充:對于對稱的數(shù)據(jù)分布用均值,傾斜的用中位數(shù)。
  5. 使用與給定元組屬同一類的所有樣本的屬性均值或中位數(shù)。
  6. 使用最可能的值填充:可以使用回歸,決策樹,貝葉斯等方法預測;最流行的策略。

噪聲數(shù)據(jù)

可以使用分箱技術光滑數(shù)據(jù),去除噪聲。
例如數(shù)據(jù)4,8,15,21,21,24,25,28,34
劃分為等頻的箱:

箱1: 4,8,15
箱2: 21,21,24
箱3: 25,28,34

用箱均值光滑:

箱1: 9,9,9
箱2: 22,22,22
箱3: 29,29,29

用箱邊界光滑(每一個值被替換為最近的邊界值):

箱1: 4,4,15
箱2: 21,21,24
箱3: 25,25,34

除此之外,還有回歸和離群點分析等方法。

數(shù)據(jù)集成

實體識別問題

由于數(shù)據(jù)語義的多樣性,如何匹配多個數(shù)據(jù)源的模式,實質(zhì)上是實體識別問題,如識別一個數(shù)據(jù)庫中的customer_id和另一個數(shù)據(jù)庫中的cust_number指的是同一個屬性。

冗余和相關分析

冗余是數(shù)據(jù)集成的另一個重要問題,如一個屬性能被另一個或幾個屬性導出。有些冗余可以被相關分析檢測到。

一、 標稱數(shù)據(jù)的\chi ^2(卡方)檢驗

標稱數(shù)據(jù),如名稱,狀態(tài)等,兩個屬性A和B之間的相關聯(lián)系可以通過\chi ^2檢驗發(fā)現(xiàn)。
\chi ^2 = \sum_{i=1}^{c} \sum_{j=1}^{r} \frac{(o_{ij}-e_{ij})^2}{e_{ij}}
其中,o_{ij}是聯(lián)合事件(A_i, B_j)的觀測頻度,而e_{ij}(A_i, B_j)的期望頻度。
e_{ij} = \frac{count(A = a_i) \times count(B = b_j)}{n}
其中,n是數(shù)據(jù)元組的個數(shù),count(A = a_i)是A上具有值a_i的元組個數(shù),而count(B = b_j)是B上具有值b_j的元組個數(shù)。
舉一個簡單的例子,如下表所示,

A1 A2 sum
B1 q r q+r
B2 s t s+t
sum q+s r+t q+r+s+t

根據(jù)上面公式,則有
o_{A1B1} = q
e_{A1B1} = \frac{(q+s) \times (q+r)}{q+r+s+t}
其余類似,由此便可以計算出\chi ^2。
\chi ^2檢驗假設A和B是獨立的,檢驗基于顯著水平,具有自由度(r-1) \times (c-1),對于此自由度,在某個置信水平下,如果可以拒絕該假設,說明A和B相關。

二、 數(shù)值數(shù)據(jù)的相關系數(shù)

數(shù)值數(shù)據(jù)可以通過計算屬性A和B的相關系數(shù)來估計相關度。
r_{A,B} = \frac{\sum_{i=1}{n} (a_i - \bar A )(b_i - \bar B)}{n \sigma _{A} \sigma _{B}}
其中,\sigma _{A}\sigma _{B}分別是A和B的標準差,n是元組的個數(shù)。
取值范圍-1 \leq r_{A,B} \geq 1,如果r_{A,B}大于0,則表示正相關,值越大相關性越強;等于0則代表獨立;小于0表示負相關。

三、 數(shù)值數(shù)據(jù)的協(xié)方差

協(xié)方差用來評估兩個屬性如何一起變化。
Cov(A,B) = E((A-\bar A)(B-\bar B)) = \frac{\sum_{i=1}^{n}(a_i - \bar A)(b_i - \bar B)}{n}
可以證明,
Cov(A,B) = E(A \cdot B) - \bar A \bar B
此公式通常用來計算協(xié)方差,較為方便。
當A和B獨立時,則有E(A \cdot B) = E(A) \cdot E(B),從而Cov(A,B) = 0, 反之不成立。
那么E(A \cdot B)怎么算呢?舉個例子。

A B
0 q r
1 s t

則有
E(A \cdot B) = \frac{q \times r + s \times t}{2}
協(xié)方差與相關系數(shù)的關系如下,
r_{A,B} = \frac{Cov(A,B)}{\sigma _{A} \sigma _{B}}

數(shù)據(jù)規(guī)約

數(shù)據(jù)規(guī)約包括維規(guī)約、數(shù)量規(guī)約和數(shù)據(jù)壓縮。

維規(guī)約(Dimensionality reduction)

減少所考慮的屬性的個數(shù),包括特征提?。‵eature extraction):無監(jiān)督方法主成分分析(PCA)、有監(jiān)督方法線性判別分析(LDA);屬性子集選擇(Feature selection)等。

特征選擇:

從所有的p個特征中選取大小為d的最佳子集。
A \in [0,1]^{p \times d}
其中A的每一列只有一個1。

特征提?。?/h5>

通過所有 p 特征的線性或非線性組合提取 d 個新特征。
A\in R^{p \times d} : x \in R^p \rightarrow z = A^T x \in R^d

PCA

對于主成分分析(principal components analysis),基本思想是將數(shù)據(jù)投影到一個小得多的空間上,投影后投影值盡可能分散,即方差盡可能大(我們認為方差大意味著蘊含了原數(shù)據(jù)更多的信息)。PCA計算k個標準正交向量,作為輸入數(shù)據(jù)的基,這些向量稱為主成分。把數(shù)據(jù)變換到一個新的坐標系統(tǒng)中,使得任何數(shù)據(jù)投影的第一大方差在第一個坐標(稱為第一主成分)上,第二大方差在第二個坐標(第二主成分)上,依次類推。

下面看如何選擇這k個標準正交基。將一組N維向量降為K維(K大于0,小于N),其目標是選擇K個標準正交基,使得原始數(shù)據(jù)變換到這組基上后,各特征兩兩間協(xié)方差(為了讓兩個特征盡可能表示更多的原始信息,我們不希望它們之間存在相關性的,而協(xié)方差正可以兩個特征間的相關性)為0(正交基保證了為0),而特征的方差則盡可能大(在正交的約束下,取最大的K個方差)。

舉個例子:
為了方便表示,我們首先將每個特征的所有值都減去該特征的均值,其結(jié)果是將每個特征都變?yōu)榫禐?。
我們的目標是投影后投影值盡可能分散,而這種分散程度,可以用數(shù)學上的方差來表述
Var(a)=\frac{1}{m}\sum_{i=1}^m{(a_i-\mu)^2}
由于上面我們已經(jīng)將每個特征的均值都化為0了,因此方差可以表示為
Var(a)=\frac{1}{m}\sum_{i=1}^m{a_i^2}
找到一個方向使得投影后方差最大,這樣就完成了第一個方向的選擇,繼而我們選擇第二個投影方向。
我們希望兩個方向之間不存在相關性的,可以用兩個特征的協(xié)方差表示其相關性,由于已經(jīng)讓每個特征均值為0,則
Cov(a,b)=\frac{1}{m}\sum_{i=1}^m{a_ib_i}
可以看到,在特征均值為0的情況下,兩個字段的協(xié)方差可以表示為其內(nèi)積除以元素數(shù)m。
我們在這里認為協(xié)方差為0時蘊含獨立性。為了讓協(xié)方差為0,我們選擇第二個基時只能在與第一個基正交的方向上選擇。因此最終選擇的兩個方向一定是正交的。
我們發(fā)現(xiàn)特征內(nèi)方差及特征間協(xié)方差均可以表示為內(nèi)積的形式,而內(nèi)積又與矩陣相乘密切相關。
假設我們只有a和b兩個字段,那么我們將它們按行組成矩陣X:
X=\begin{pmatrix} a_1 & a_2 & \cdots & a_m \\\\ b_1 & b_2 & \cdots & b_m \end{pmatrix}
用X乘以X的轉(zhuǎn)置,并乘上系數(shù)1/m,得到:
\frac{1}{m}XX^\mathsf{T}=\begin{pmatrix} \frac{1}{m}\sum_{i=1}^m{a_i^2} & \frac{1}{m}\sum_{i=1}^m{a_ib_i} \\\\ \frac{1}{m}\sum_{i=1}^m{a_ib_i} & \frac{1}{m}\sum_{i=1}^m{b_i^2} \end{pmatrix}
這個矩陣對角線上的兩個元素分別是兩個字段的方差,而其它元素是a和b的協(xié)方差。
推廣一下,設我們有m個n維數(shù)據(jù)記錄,將其按列排成n乘m的矩陣X,設C=\frac{1}{m}XX^\mathsf{T},則C是一個對稱矩陣,其對角線分別個各個字段的方差,而第i行j列和j行i列元素相同,表示i和j兩個字段的協(xié)方差。C被稱為協(xié)方差矩陣。
我們的目標即使得各個特征內(nèi)的方差最大,而特征之間的協(xié)方差為0,即如何將協(xié)方差矩陣轉(zhuǎn)換為一個對角矩陣,除對角線外的其它元素化為0,并且在對角線上將元素按大小從上到下排列。

我們進一步看下原矩陣與基變換后矩陣協(xié)方差矩陣的關系:
設原始數(shù)據(jù)矩陣X對應的協(xié)方差矩陣為C,而P是一組基按行組成的矩陣,設Y=PX,則Y為X對P做基變換后的數(shù)據(jù)。設Y的協(xié)方差矩陣為D,我們推導一下D與C的關系:
\begin{array}{l l l} D & = & \frac{1}{m}YY^\mathsf{T} \\\\ & = & \frac{1}{m}(PX)(PX)^\mathsf{T} \\\\ & = & \frac{1}{m}PXX^\mathsf{T}P^\mathsf{T} \\\\ & = & P(\frac{1}{m}XX^\mathsf{T})P^\mathsf{T} \\\\ & = & PCP^\mathsf{T} \end{array}
優(yōu)化目標變成了尋找一個矩陣P,滿足PCPT是一個對角矩陣,并且對角元素按從大到小依次排列,那么P的前K行就是要尋找的基,用P的前K行組成的矩陣乘以X就使得X從N維降到了K維并滿足上述優(yōu)化條件。
由上文知道,協(xié)方差矩陣C是一個是對稱矩陣,在線性代數(shù)上,實對稱矩陣有一系列非常好的性質(zhì):

1)實對稱矩陣不同特征值對應的特征向量必然正交。

2)設特征向量\lambda重數(shù)為r,則必然存在r個線性無關的特征向量對應于\lambda,因此可以將這r個特征向量單位正交化。
由上面兩條可知,一個n行n列的實對稱矩陣一定可以找到n個單位正交特征向量,設這n個特征向量為e_1,e_2,\cdots,e_n,我們將其按列組成矩陣:
E=\begin{pmatrix} e_1 & e_2 & \cdots & e_n \end{pmatrix}
則對協(xié)方差矩陣C有如下結(jié)論:
E^\mathsf{T}CE=\Lambda=\begin{pmatrix} \lambda_1 & & & \\\\ & \lambda_2 & & \\\\ & & \ddots & \\\\ & & & \lambda_n \end{pmatrix}
其中\Lambda為對角矩陣,其對角元素為各特征向量對應的特征值(可能有重復)。
到這里,我們發(fā)現(xiàn)我們已經(jīng)找到了需要的矩陣P:
P=E^\mathsf{T}
P是協(xié)方差矩陣的特征向量單位化后按行排列出的矩陣,其中每一行都是C的一個特征向量。如果設P按照Λ中特征值的從大到小,將特征向量從上到下排列,則用P的前K行組成的矩陣乘以原始數(shù)據(jù)矩陣X,就得到了我們需要的降維后的數(shù)據(jù)矩陣Y。

屬性子集選擇

屬性子集選擇即通過刪除不相關或冗余的屬性來減少數(shù)據(jù)量,與PCA的區(qū)別是它是在原來就有的屬性上選擇一個好的屬性集合。

數(shù)量規(guī)約(Numerosity reduction )

用替代的、較小的數(shù)據(jù)表示形式替換原數(shù)據(jù)。有參數(shù)方法,包括使用模型如回歸等估計數(shù)據(jù),使得只需要存儲模型參數(shù),而不是實際數(shù)據(jù);非參數(shù)方法包括直方圖、聚類、抽樣等。
可以使用直方圖(histogram)來近似數(shù)據(jù)的分布,使用等寬(每個桶寬度一致)或者等頻(每個桶大致包含相同個數(shù)的鄰近樣本)劃分。
抽樣可以是無放回的簡單隨機抽樣(SRSWOR),也可以是有放回的簡單隨機抽樣(SRSWR),二者區(qū)別是后者同一個樣本有可能被抽取多次。

數(shù)據(jù)壓縮(Data compression)

包括無損的和有損的,維規(guī)約和數(shù)量規(guī)約也可以看作某種形式的數(shù)據(jù)壓縮。
一個原則:花費在數(shù)據(jù)規(guī)約上的計算時間不應超過或抵消在規(guī)約后的數(shù)據(jù)上挖掘所節(jié)省的時間。

數(shù)據(jù)變換

對于數(shù)據(jù)變換,我們介紹規(guī)范化和離散化。

規(guī)范化

一般而言,用較小單位表示的屬性將導致該屬性具有較大值域,因此趨向于使這樣的屬性具有較大影響或權重,尤其對于神經(jīng)網(wǎng)絡或基于距離的算法或聚類。規(guī)范化試圖賦予所有屬性相等的權重,使之落入較小的共同區(qū)間,如[-1,1]或[0,1]。

  1. 最小-最大規(guī)范化
    將A的值v_i映射到區(qū)間[newMin_A, newMax_A]
    \hat v_i = \frac{v_i - min_A}{max_A - min_A} (newMax_A - newMin_A) + newMin_A

  2. z-score規(guī)范化
    \hat v_i = \frac{v_i-\bar A}{\sigma _A}
    當屬性A的最小最大值未知或者離群點左右了最小-最大規(guī)范化時,該方法是有用的。
    其中,方差\sigma _A可以替換為A的均值絕對偏差s_A
    s_A = \frac{1}{n} (|v_1-\bar A| + \cdots + |v_n- \bar A|)
    對于離群點,s_A比方差更加魯棒,因為計算s_A時不對到均值的偏差即|x_i - \bar x|取平方,因此離群點的影響會降低。

  3. 小數(shù)定標規(guī)范化
    小數(shù)定標規(guī)范化就是通過移動值的小數(shù)點的位置進行規(guī)范化,如986變換為0.986。

離散化

離散化通過把值映射到區(qū)間或較高層的概念來變換數(shù)值數(shù)據(jù)。離散化技術包括分箱、直方圖分析、聚類、決策樹等。如將年齡的原始值用高層的概念(如青年、中年和老年)取代。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容