數(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ù)中的不一致。
缺失值
常用的缺失值填補方法:
- 忽略元組:當元組有多個屬性缺少值時。
- 人工填寫缺失值。
- 使用一個全局常量填充:如unknown,簡單但并不十分可靠。
- 使用屬性的中心度量填充:對于對稱的數(shù)據(jù)分布用均值,傾斜的用中位數(shù)。
- 使用與給定元組屬同一類的所有樣本的屬性均值或中位數(shù)。
- 使用最可能的值填充:可以使用回歸,決策樹,貝葉斯等方法預測;最流行的策略。
噪聲數(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ù)的
(卡方)檢驗
標稱數(shù)據(jù),如名稱,狀態(tài)等,兩個屬性A和B之間的相關聯(lián)系可以通過檢驗發(fā)現(xiàn)。
其中,是聯(lián)合事件
的觀測頻度,而
是
的期望頻度。
其中,是數(shù)據(jù)元組的個數(shù),
是A上具有值
的元組個數(shù),而
是B上具有值
的元組個數(shù)。
舉一個簡單的例子,如下表所示,
| A1 | A2 | sum | |
|---|---|---|---|
| B1 | q | r | q+r |
| B2 | s | t | s+t |
| sum | q+s | r+t | q+r+s+t |
根據(jù)上面公式,則有
其余類似,由此便可以計算出。
檢驗假設A和B是獨立的,檢驗基于顯著水平,具有自由度
,對于此自由度,在某個置信水平下,如果可以拒絕該假設,說明A和B相關。
二、 數(shù)值數(shù)據(jù)的相關系數(shù)
數(shù)值數(shù)據(jù)可以通過計算屬性A和B的相關系數(shù)來估計相關度。
其中, 和
分別是A和B的標準差,
是元組的個數(shù)。
取值范圍,如果
大于0,則表示正相關,值越大相關性越強;等于0則代表獨立;小于0表示負相關。
三、 數(shù)值數(shù)據(jù)的協(xié)方差
協(xié)方差用來評估兩個屬性如何一起變化。
可以證明,
此公式通常用來計算協(xié)方差,較為方便。
當A和B獨立時,則有,從而
, 反之不成立。
那么怎么算呢?舉個例子。
| A | B | |
|---|---|---|
| 0 | q | r |
| 1 | s | t |
則有
協(xié)方差與相關系數(shù)的關系如下,
數(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)等。
特征選擇:
從所有的個特征中選取大小為
的最佳子集。
其中A的每一列只有一個1。
特征提?。?/h5>
通過所有 p 特征的線性或非線性組合提取 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ù)學上的方差來表述
由于上面我們已經(jīng)將每個特征的均值都化為0了,因此方差可以表示為
找到一個方向使得投影后方差最大,這樣就完成了第一個方向的選擇,繼而我們選擇第二個投影方向。
我們希望兩個方向之間不存在相關性的,可以用兩個特征的協(xié)方差表示其相關性,由于已經(jīng)讓每個特征均值為0,則
可以看到,在特征均值為0的情況下,兩個字段的協(xié)方差可以表示為其內(nèi)積除以元素數(shù)m。
我們在這里認為協(xié)方差為0時蘊含獨立性。為了讓協(xié)方差為0,我們選擇第二個基時只能在與第一個基正交的方向上選擇。因此最終選擇的兩個方向一定是正交的。
我們發(fā)現(xiàn)特征內(nèi)方差及特征間協(xié)方差均可以表示為內(nèi)積的形式,而內(nèi)積又與矩陣相乘密切相關。
假設我們只有a和b兩個字段,那么我們將它們按行組成矩陣X:
用X乘以X的轉(zhuǎn)置,并乘上系數(shù)1/m,得到:
這個矩陣對角線上的兩個元素分別是兩個字段的方差,而其它元素是a和b的協(xié)方差。
推廣一下,設我們有m個n維數(shù)據(jù)記錄,將其按列排成n乘m的矩陣X,設,則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的關系:
優(yōu)化目標變成了尋找一個矩陣P,滿足PCPT是一個對角矩陣,并且對角元素按從大到小依次排列,那么P的前K行就是要尋找的基,用P的前K行組成的矩陣乘以X就使得X從N維降到了K維并滿足上述優(yōu)化條件。
由上文知道,協(xié)方差矩陣C是一個是對稱矩陣,在線性代數(shù)上,實對稱矩陣有一系列非常好的性質(zhì):
1)實對稱矩陣不同特征值對應的特征向量必然正交。
2)設特征向量重數(shù)為r,則必然存在r個線性無關的特征向量對應于
,因此可以將這r個特征向量單位正交化。
由上面兩條可知,一個n行n列的實對稱矩陣一定可以找到n個單位正交特征向量,設這n個特征向量為,我們將其按列組成矩陣:
則對協(xié)方差矩陣C有如下結(jié)論:
其中為對角矩陣,其對角元素為各特征向量對應的特征值(可能有重復)。
到這里,我們發(fā)現(xiàn)我們已經(jīng)找到了需要的矩陣P:
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]。
最小-最大規(guī)范化
將A的值映射到區(qū)間
z-score規(guī)范化
當屬性A的最小最大值未知或者離群點左右了最小-最大規(guī)范化時,該方法是有用的。
其中,方差可以替換為A的均值絕對偏差
對于離群點,比方差更加魯棒,因為計算
時不對到均值的偏差即
取平方,因此離群點的影響會降低。
小數(shù)定標規(guī)范化
小數(shù)定標規(guī)范化就是通過移動值的小數(shù)點的位置進行規(guī)范化,如986變換為0.986。
離散化
離散化通過把值映射到區(qū)間或較高層的概念來變換數(shù)值數(shù)據(jù)。離散化技術包括分箱、直方圖分析、聚類、決策樹等。如將年齡的原始值用高層的概念(如青年、中年和老年)取代。