葉明喜,黃 鈺,蔣 昊
(蘭州商學院,甘肅 蘭州 730101)
改進主成分分析(PCA)魯棒性的算法比較
葉明喜,黃鈺,蔣昊
(蘭州商學院,甘肅蘭州730101)
摘要:與傳統的PCA算法相比較,基于分布特征算法的主成分分析,由于量測的不精確使特性或參數的實際值會偏離它標稱值,另一個是受環境因素影響而引起特性或參數的緩慢漂移,這樣得到的分析結果在很大程度上受到異常值的干擾.本文通過對比幾種算法,提出改善主成分分析(PCA)算法魯棒性的一種實現途徑,去除或者減少異常點影響,以提高PCA的精度.
關鍵詞:主成分分析;PCA魯棒性;標稱值;異常點;馬氏距離
傳統PCA算法是一種基于空間坐標的降維技術,將高維數據按照線性投影的方式投影到低維空間,在保留過程變量間關系結構的同時,去除了噪聲以及變量之間的相關性,但傳統主成分基于特征值分解的PCA方法存在嚴重魯棒性問題,這大大影響了PCA的運算精度.如PCA算法給出ai在隨機向量x的第i主方向,根據盡可能地靠近原始數據x,則所有的ai都應該調整大道MSE,則有下列公式:

其中:vivj=0,i≠j;x為n維的零均值的隨機向量,若給定一個數據集{xi},i=1,2,3…n;求的x的相關系數解為:

協方差矩陣:
var(F)=AXXTAT=Λ,
矩陣A為構造的正交陣,傳統PCA算法是對隨機向量x的協方差陣進行特征值分解來獲得x的協方差矩陣var (F),其為一對角矩陣,而對角元素恰好是原始數據集相關矩陣的特征值.其中樣本數據集協方差陣的估計值:

它存在n個不同的正特征值λi,Ai就是第i主成分Fi對應于特征值為λi所對應的特征向量,也即統計含義上的經過變換后主軸的方差.滿足:

但現在從主成分分析數學模型需要滿足的條件出發(Fi,Fj互不相關),為了改善PCA算法精度,對PCA魯棒性改善需要從兩個角度出發:一是如何能夠達到輸出的各主成分之間互不相關,上面的PCA算法獲得的各主成分互不相關當且僅當輸入x服從零均值、協方差為n維高斯分布,當不服從此條件下高斯分布,相關文獻提出了獨立成分分析(ICA)來解決此問題[1].
另外,傳統PCA算法基于協方差陣的二階方面考慮,因此得到的主成分只能做到互不相關,而不能做到相互獨立.為提高PCA算法的魯棒性,必須去除或者減少異常點樣本污染對算法的影響.異常點的產生原因是多方面的,例如突發的隨機噪聲,測量或者記錄的偶爾出錯等等.很自然地要考慮如何找出樣本集中的異常點樣本,在求解協方差矩陣時將其排除在外.因此首先需要確定異常點樣本的判據,下文的三種算法判別異常點樣本將作比較介紹.

算法二:是開始設定一個可能的參考異常值,初始化時將第一個點和第二點之間的馬氏距離作為標稱值,將所有點計算出到均值點的馬氏距離,計算出樣本點中大于參考標稱值點所占的比例,如果大于參考標稱值的比例比初設異常值在樣本數據中比例大,則需要將標稱值減少一個比例系數,最終使得在一個事先設置的的精度范圍內.則讓程序對較大數據點進行排序,剔除較大的數據點之后,同時重新計算協方差陣和新的樣本容量,使得留下的點都是非離群點,如果剔除的比例和自設的初識異常值比例近似相等,則中止該過程.然而,經過模擬之后發現算法二比算法一改進很多,但仍不理想,表現出算法對于異常值樣本比較敏感.
算法三:是引入參數作為統計距離的測度,而該參數取自相關系數Rij,它度量變量之間的線性相關性.這樣通過對原始數據的標準化處理后,相關系數陣的變換使得在不同維度之間變量大小具有了可比性,經過這樣一個過程處理,最終還原為原始的變量.算法三比起算法二在魯棒性上有改進.
2.1判別異常點樣本的理論基礎
基于誤差最小準則是判別異常點樣本的理論基礎,在剔除異常點樣本中應用較為廣泛.故令e=x-u為誤差,定義誤差平和函數的估計表達式:

||e||2最小所對應的矩陣A就是輸入隨機向量x的m維PCA子空間,即A各列向量構成的子空間的就是x的前m個主方向所組成的子空間.ε>0為給定的標稱值,一個實際樣本xi稱為異常點樣本.若||xi-AATxi||>ε就可以對原PCA算法進行修正,提出新的魯棒的PCA算法.下文三種算法也是基于此原理,對重構的ε方法不同,則PCA算法魯棒性就不一樣.
2.2魯棒PCA算法描述
PCA算法是主分量按順序一個個以連續提取方式從降級退化的輸入中被提取,它適用于提取出全部的特征空間.例如對一樣本進行計算,計算出均值E、協方差Q,并計算每個樣本點距離中心的馬氏距離,對樣本點和馬氏距離進行排序篩選,根據所選擇的標稱值ε,排除大于標稱值ε的樣本點.
期初給出W的估計值就是因為實際很難做到精確,以估計值來剔除異常點,從而達到精確W估計值,再剔除異常點,這樣循環下去.
初始化迭代步數k=0,設定樣本集中異常點樣本數L(k) =0;利用QΛ得到樣本估計矩陣.
根據上面得到的PCA變換矩陣,利用式(3)計算原始樣本集E中每個樣本xi在本步k的誤差,迭代步數k+1,設樣本集中異常點樣本數L(k+1)=L(k)+1,也就是從樣本集中刪除上一步重構誤差最大的L(k+1)個樣本,并由剩下的樣本構成新的待處理樣本集;判斷w(k+1)是否滿足收斂條件,若滿足則迭代結束,否則轉第2步.使得所有的樣本點馬氏距離都在給定的標稱值ε范圍內,并且無論怎樣循環下去,現有的樣本點不再被剔除,則中止循環.
算法二,主要針對的是在算法一中需要初識需要設置一個距離標稱值,在實踐中操作極為不方便,因此引入了一個可能性的壞點的比例,具體算法如下,計算出初識兩個點之間的統計距離作為參考的標稱值距離ε,初識輸入參數猜測的異常值數據的比例θ,計算出每個樣本點到均值點的距離,如果大于標稱值距離,那么就對該樣本點作一個標記,計算出所有標記的點在樣本點中所占的比例φ,如果計算出的比例值φ大于θ,需要修正參考的標稱.給出循環條件是ABS|φ-θ|>ε,根據修正后剔除了大于標稱值的數據點,最后得到的是理想的沒有異常值點的新的樣本數據,我們根據這個樣本數據,完成普通的主成分分析.算法三與算法二之間,算法三是以相關系數矩陣作為統計距離的空間度量.
3.1仿真實驗
傳統PCA算法和修正后的魯棒PCA算法,對不含異常點和包含異常點的樣本集進行主成分分析.在這里考慮輸入為2維樣本,提取其最大主成分,即n=2,m=1.隨機均勻產生500個含有異常點的二維樣本集,記為樣本集x(如下圖所示);傳統的PCA算法對樣本集x分別進行統計主成分分析,得到的主方向為Fx=[0.9020,0.4317]T.可以看出傳統PCA對于無異常點的樣本集計算精度還是很高的,Fx基本等于實際主方向.但是魯棒性很差,只要樣本集中存在少量的異常點樣本,主方向計算結果誤差非常大.

以下三個算法基于R軟件繪制如下,具體為算法一:是在我們會發現,如果d太小,變換后的信息有所失,如果d太大,變換后的數據收到異常點改變其穩定的與坐標軸平行垂直橢圓形狀.旋轉角度后在5~7范圍內較為穩定(如圖1).

圖1
算法二:取異常值的比例為0.1~0.9變化后繪制其主成分變換后的圖像,發現不是一個與坐標軸垂直平行的橢球體,因為使用的是數據集的協方差陣,沒有采用相關系數陣(如圖2).

圖2
算法三:剔除了較多的異常點數據點后,使得數據具有較強的魯棒性,具備改善PCA算法魯棒性和高效的數據壓縮特性,使得算法三在與以上兩種算法上比較上,采取相關系數構造標稱值,較為理想(如圖3).

圖3
3.2結論分析
理想的PCA算法,應先計算相關系數矩陣,而不是協方差陣進行統計距離度量.單從數據的魯棒性角度出發,可以采用相關系數矩陣進行統計距離度量作PCA,然而考慮到數據點異常點的去除,采用算法三的算法可以對原始數據的特征進行高效的轉換,且PCA魯棒性也比其他兩種算法較好,另外該算法對于初始的異常點比例的預測也無聯系. 但PCA魯棒性改善不僅僅是單純從剔除數據異常點一種方式而得到改善,本文僅從算法上比較得出改善之舉,難免有不妥之處.
——
參考文獻:
〔1〕ComonP. Independent component analysis,a new concept?.Signal Processing,1994,36(3):287-314.
〔2〕張媛.一種PCA算法及其應用.2005,15-2.
〔3〕孫文榮.基于直方圖均衡化PCA和SVM算法的人臉識別.2014,38(8).
〔4〕傅德印.Excel與多元統計分析[M].北京:中國統計出版社,2007.
中圖分類號:TP391
文獻標識碼:A
文章編號:1673-260X(2015)07-0017-03