- 基于機器學習的數(shù)據(jù)缺失值填補:理論與方法
- 賴曉晨 張立勇 劉輝 吳霞
- 1239字
- 2020-09-24 10:12:24
3.1.1 均值填補法
均值填補法是一種常用的基于樣本間相似度的填補方法。此方法將不完整屬性分為數(shù)值型和非數(shù)值型。對于數(shù)值型屬性,以不完整屬性列中現(xiàn)有值的平均值填補該屬性列的缺失值;對于非數(shù)值型屬性,利用不完整屬性列中現(xiàn)有值出現(xiàn)頻率最高的數(shù)值填補其中的缺失值。在實際應用中,根據(jù)計算均值時所采用現(xiàn)有值的來源不同,可將該方法分為單一均值填補法和分層均值填補法。
1.單一均值填補法
單一均值填補法是指利用不完整屬性中全部現(xiàn)有值的均值對該屬性中的全部缺失值進行填補。假設X={xi|xi∈n,i=1,2,…,n}表示樣本數(shù)量為n,屬性數(shù)量為s的不完整數(shù)據(jù)集,其第i個樣本為xi=[xi1,xi2,…,xis]T(i=1,2,…,n)。I=[Iij]∈
n×s用于描述數(shù)據(jù)的缺失情況,定義如式(3-1)所示:
針對數(shù)據(jù)集X中的第j個屬性,若其為數(shù)值型不完整屬性,在計算均值前先為該屬性中數(shù)據(jù)缺失的位置添加一個占位數(shù)值,使該位置的數(shù)值能夠參與運算。式(3-2)所示為該屬性中除占位數(shù)值外全部現(xiàn)有值的均值:
對于第j個屬性中的缺失值,將該平均值作為其填補結(jié)果。該方法簡單易行,是一種常用的缺失值處理方式,但由于所求解的填補值較為單一,降低了數(shù)據(jù)的離散程度并限制了屬性取值的多樣性與隨機性,故在一定程度上損失了數(shù)據(jù)信息。
2.分層均值填補法
分層均值填補法是基于單一均值填補法的改進方法。該方法利用與不完整屬性相關(guān)聯(lián)的完整屬性將數(shù)據(jù)集劃分為不同的子集,根據(jù)子集內(nèi)樣本的現(xiàn)有值計算平均值并將其作為填補結(jié)果。例如,在人口調(diào)查數(shù)據(jù)中,要對年收入這一屬性中的缺失值進行填補,可以根據(jù)年齡、受教育程度等屬性對樣本進行劃分,然后基于劃分結(jié)果依次對每個子集內(nèi)的樣本進行缺失值填補。
對于不完整數(shù)據(jù)集X,若其中的第j個屬性為數(shù)值型不完整屬性,采用分層均值填補法對其進行缺失值填補的過程如下。首先,選出與第j個屬性相關(guān)聯(lián)的一組屬性,基于該組屬性采用聚類算法將數(shù)據(jù)集X劃分為不同的子集,子集的數(shù)量記為L。聚類算法詳見3.1.4節(jié)。隨后,對于第l個子集,計算其中樣本在第j個屬性的現(xiàn)有值均值,并使用此均值填補子集內(nèi)該屬性中的缺失值。
針對同一屬性中的缺失值,分別采用單一均值填補法和分層均值填補法進行填補,所得結(jié)果的示意圖如圖3-1所示,其中,方形表示現(xiàn)有值,星形表示填補值。
圖3-1a)圖單一均值填補法通過計算屬性中現(xiàn)有值的均值,從而為屬性中全部缺失值賦予相同的填補值;圖3-1b)圖分層均值填補法分別計算各子集中現(xiàn)有值的平均值,從而為各子集中的缺失值分別提供填補結(jié)果。由此可見,與單一均值填補法相比,分層均值填補法能夠在一定程度上緩解單一填補值對數(shù)據(jù)離散程度的影響。此外,由于在填補過程中對樣本進行劃分,該方法所得填補結(jié)果在后續(xù)的聚類和分類問題中表現(xiàn)較好。
圖3-1 均值填補法結(jié)果示意圖
目前,均值填補法已經(jīng)在工業(yè)、農(nóng)業(yè)、醫(yī)療等領(lǐng)域獲得廣泛應用。該方法的優(yōu)勢在于簡單方便,沒有復雜的運算過程,時間復雜度和空間復雜度比較低,并且填補結(jié)果通常能夠保持在合理的取值范圍內(nèi),出現(xiàn)異常值的概率較低。不過由于該方法設計簡單,對現(xiàn)有值所含信息的挖掘不充分,往往會影響填補值對真實值的還原度。