- 基于機器學習的數據缺失值填補:理論與方法
- 賴曉晨 張立勇 劉輝 吳霞
- 3040字
- 2020-09-24 10:12:26
3.2.1 基于線性回歸的填補方法
線性回歸是指對一個因變量與一個或多個自變量間的關聯關系進行線性建模的分析方法。若建模期間存在一個自變量,則稱為簡單線性回歸或一元線性回歸;若存在多個自變量,則稱為多重線性回歸或多元線性回歸。
顧名思義,簡單線性回歸是一種較為簡單的分析方法,適用于自變量和因變量間高度相關,并且可用一條直線近似擬合其關聯關系的場景。多重線性回歸可看作是簡單線性回歸的擴展,通過多個自變量的線性組合來估計因變量的取值。鑒于在真實數據集中,某樣本的屬性取值往往與其他多個屬性值相關,因此多重線性回歸在實際分析時的應用范圍更廣。標準的線性函數如式(3-36)所示:
式(3-36)中,y表示因變量,x表示自變量,β表示斜率,β0表示截距。
在式(3-36)所示的線性函數中,自變量x與因變量y間的關聯關系由一條直線完全擬合,但真實數據往往并不存在絕對的線性關系,待擬合的數據點無法全部位于一條直線上,而是會以一定誤差分散在直線周圍。因此,線性回歸引入誤差項,構建如式(3-37)所示的線性模型[12]:
式(3-37)中,ε表示隨機誤差項,β和β0是模型參數,需根據真實數據進行求解。
假設X={xi|xi∈s,i=1,2,…,n},表示樣本數量為n,屬性數量為s的數據集,其中第i個樣本為xi=[xi1,xi2,…,xis]T,i=1,2,…,n。下面以前p個屬性作為自變量,第p+1個屬性作為因變量,構建如式(3-38)所示的線性模型:
式(3-38)中,yi表示因變量,此處yi=xi(p+1),xij(j=1,2,…,p)表示自變量,βj(j=0,1,…,p)表示模型參數,εi表示隨機誤差項。
線性模型中的參數一般由最小二乘法求解,該方法通過最小化式(3-39)所示的誤差平方和來計算模型參數。
為了使描述更加清晰,先介紹簡單線性回歸中的模型求解方法。假設線性模型僅包含一個自變量,即p=1,式(3-39)可寫為式(3-40)所示的形式:
為了求解誤差平方和的最小值,可由最小二乘法計算式(3-40)關于模型參數的偏導數,并令其等于0,進而得到式(3-41):
在數學理論中,函數在某點的偏導數等于0是該點為極值點的必要條件。根據式(3-42)可知,式(3-40)所示函數的二階偏導數始終大于0,這說明該函數只存在一個極值點,并且該點恰為最小值。
進一步推導,即可根據式(3-43)和式(3-44)求解模型參數。
以上討論的是簡單線性回歸中模型參數的求解方法,當線性模型中包含多個自變量,同樣可根據最小二乘法計算參數。首先,可將式(3-38)寫成式(3-45)所示的矩陣形式:
式(3-45)中,Y=[y1,y2,…,yn]T是由因變量構成的向量,B=[β0,β1,…,βp]T是由所有模型參數構成的向量,E=[ε1,ε2,…,εn]T表示由所有誤差構成的向量,X*表示設計矩陣(Design Matrix),其定義如式(3-46)所示:
在多重回歸中,式(3-39)所示的誤差平方和可改寫為式(3-47)的形式:
根據最小二乘法的規則,計算式(3-47)關于模型參數B的導數,令其為0,接著通過式(3-48)所示的推導過程即可求解模型參數。
基于線性回歸的填補方法一般采用線性模型擬合完整屬性與不完整屬性間的關聯關系,并根據數據集中的完整樣本展開模型參數的求解。填補期間,將不完整樣本中的現有值輸入模型,利用模型輸出估計缺失值。
假設數據集X僅在第k維屬性存在缺失值,即除第k維屬性為不完整屬性外,其他屬性均為完整屬性。在該情況下,可構建以完整屬性為自變量,不完整屬性為因變量的線性模型,如式(3-49)所示:
式(3-49)中,yi是因變量,表示樣本xi在第k維屬性的取值xik,Jco={1,…,k-1,k+1,…,s}表示完整屬性的下標集合,Xco表示完整樣本集合。
接著,利用最小二乘法對式(3-50)所示函數進行最小化,從而求解模型參數。待所有參數求解完畢后,即可對不完整樣本實行填補。
為提高線性模型的有效性和準確性,以下就三方面內容進一步展開討論。
1.處理數據集中多個不完整屬性
當數據集中存在多個不完整屬性時,可根據若干個線性模型的組合填補所有缺失值。令Jco表示完整屬性的下標集合,Jin表示不完整屬性的下標集合,針對每個屬性序號j∈Jin,構建以Jco對應屬性為自變量,第j個屬性為因變量的線性模型,由此得到Jin個模型。隨后利用完整樣本對模型參數進行求解,并借助若干個模型填補所有不完整屬性下的缺失值。
上述建模思路存在一定弊端,倘若數據集中僅包含極少數完整屬性,利用少量完整屬性可能無法較好擬合所有的不完整屬性。以數據集X為例,當第j個屬性為完整屬性,其他屬性為不完整屬性時,所構建的線性模型屬于簡單線性回歸。若某個不完整樣本僅存在一個缺失值,該缺失值僅能根據樣本中第j個屬性值進行求解,其他現有值無法參與計算過程,則造成了已知信息的浪費。
除了以上建模思路外,也可針對每個不完整樣本設計專屬的線性模型。具體來說,當不完整樣本中存在多個缺失值時,依次將樣本中每個缺失值屬性作為因變量,所有現有值屬性作為自變量,構建多個線性模型。該建模方式能夠確保不完整樣本中的現有值被合理利用,但由于針對每個不完整樣本進行建模,所需的模型數量會增加。
2.確保自變量與因變量間的線性關系
基于線性回歸的填補方法假設屬性間存在線性關系,而在真實數據集中,屬性間的關聯關系復雜未知,往往體現出非線性特征。直接采用線性模型擬合具備非線性關聯關系的數據將導致一定的建模誤差,并最終影響填補的準確性。
自變量的選取對于線性函數的擬合質量至關重要,故可通過特征選擇等方法尋找與不完整屬性呈線性相關的部分屬性,并以此作為自變量展開線性建模。該方式能夠在一定程度上確保自變量與因變量間的線性關系,進而提高所建模型的準確性。
除特征選擇方法外,也可考慮在誤差函數中添加約束,從而在模型參數求解的同時實現輸入變量的選擇。套索回歸(Lasso Regression)正是在該思路基礎上改進線性模型,基于套索回歸思路所建的誤差函數如式(3-51)所示。
式(3-51)在式(3-50)的基礎上,添加了對模型參數的約束項,λ控制約束的強度。對誤差函數實施約束的操作可稱為正則化,而λ通常稱作正則化系數。研究表明,套索回歸能夠令部分模型參數變為0,進而使得這些參數相應的自變量對因變量的影響為0,以達到特征選擇的效果。
3.優化線性模型參數
基于最小二乘法的線性模型具有唯一解的前提是,式(3-48)中的矩陣X*TX*存在可逆性,即X*為滿秩矩陣。然而,當自變量間的相關性較強時,X*中的兩行元素存在較大關聯,易使X*TX*不可逆并導致參數求解的不穩定。例如,在家庭經濟調查數據集中,以“家庭人均收入”“家庭人均支出”屬性作為自變量,以“家庭經濟狀況”屬性作為因變量進行線性建模,由于兩個自變量間往往存在較大的相關性,二者對因變量的影響具有相互抵消的效應[13]。該效應是指按一定比率增大“家庭人均收入”相應的模型參數,或減小“家庭人均支出”相應的模型參數,最終對因變量將產生類似的影響,并由此導致模型參數求解的不穩定。
針對上述問題,可基于嶺回歸(Ridge Regression)的思路建立如式(3-52)所示的函數,并對其進行最小化。
式(3-52)在式(3-50)的基礎上,添加了對模型參數的約束,λ控制約束強度。為使得式(3-52)中的函數取值盡可能小,約束項
需盡可能小,因此模型參數將盡量接近于0,這在一定程度上避免了具有較高相關性的自變量對因變量的影響相互抵消。
線性模型的形式簡單,求解方便,但其假設屬性間存在線性關系,真實數據集往往難以滿足該假設,因此基于線性回歸的填補方法有時并不能有效擬合屬性間復雜的關聯關系。為了提高線性模型的填補性能,可通過特征選擇、嶺回歸等方式對其實行優化。此外,當不完整數據集內的缺失情況過于復雜時,需構建若干個線性模型,依次對模型內的參數展開求解,并通過多個模型的協作共同填補缺失值,但會降低建模效率。因此,基于線性回歸的填補方法主要適用于屬性間存在線性關系,并且不完整屬性缺失情況相對簡單的場景。