原文:http://www.cnblogs.com/xbinworld/archive/2012/11/27/2791504.html
機器學習-特征選擇 Feature Selection 研究報告
注: 這個報告是我在10年7月的時候寫的(博士一年級),最近整理電腦的時候翻到,當時初學一些KDD上的paper的時候總結的,現在拿出來分享一下。
畢竟是初學的時候寫的,有些東西的看法也在變化,看的人可以隨便翻翻,有錯指正我。
重點部分:是第3章和第4章對應的兩篇paper,具體可以在參考文獻里找到,當時還算比較新。
如引用務必請注明本文出自:http://www.cnblogs.com/xbinworld
1 介紹
在計算機視覺、模式識別、數據挖掘很多應用問題中,我們經常會遇到很高維度的數據,高維度的數據會造成很多問題,例如導致算法運行性能以及准確性的降低。特征選取(Feature Selection)技術的目標是找到原始數據維度中的一個有用的子集,再運用一些有效的算法,實現數據的聚類、分類以及檢索等任務。
特征選取的目標是選擇那些在某一特定評價標准下的最重要的特征子集。這個問題本質上是一個綜合的優化問題,具有較高的計算代價。傳統的特征選取方法往往是獨立計算每一個特征的某一得分,然后根據得分的高低選取前k個特征。這種得分一般用來評價某一特征區分不同聚類的能力。這樣的方法在二分問題中一般有不錯的結果,但是在多類問題中很有可能會失敗。
基於是否知道數據的lebal信息,特征提取方法可以分為有監督和無監督的方法。有監督的的特征提取方法往往通過特征與label之間的相關性來評估特征的重要性。但是label的代價是高昂的,很難在大數據集上進行計算。因此無監督的特征提取方法就顯得尤為重要。無監督的方法只利用數據本身所有的信息,而無法利用數據label的信息,因此要得到更好的結果往往更困難。
特征選取是一個熱門的研究領域,近年來很多相關工作[2][3][4]被提出,使得特征選取越來越多的受到關注;另外一些關於數據譜分析以及L1正則化模型的研究,也啟發了特征選取問題一些新的工作的開展。並且,隨着計算機與網絡的發展,人們越來越多的關注大規模數據的處理問題,使得研究與應用能夠真正銜接在一起。因此無監督的特征選取方法的研究顯得更加重要。在本報告中,我們重點關注無監督的特征提取方法。
2 特征選取相關工作
特征選取方法也可以分為包裝(Wrapper)類方法與過濾(Filter)類方法。包裝類型的方法,經常使用到的算法是聚類。有很多算法同時考慮數據的特征提取以及聚類,為了找到一些特征能夠更好的提高數據聚類的性能。然而包裝類型的算法往往具有較高的計算代價,因此很難被運用到大規模的數據挖掘分析工作中。
過濾類型的方法相對來說比較常見,也很容易得到擴展。最大方差(Maximum Variance)的方法也許是其中最簡單,但也十分有效的算法。該方法本質上是將數據投影到最大方差的方向上。PCA[6]也使用相同的思想,但是它使用轉換了的特征,而不是原始數據特征的一個子集。
雖然最大方差的標准可以有效的找到特征來表示數據,但是卻不能很好地區分數據。Laplacian Score算法可以有效的提取出那些體現數據潛在流形結構的特征;Fisher Score算法可以有效的區分數據,它給最有效區分數據點(不同類數據點盡可能的分開,而同一類的數據點盡可能的聚在一起)的特征賦予最高的分值。
2.1 降維方法
特征選取算法和降維算法有着非常密切的聯系,很多算法的設計都來源於一些經典的降維算法,下面簡單介紹幾種常見的降維算法(特征選取本質上也是一種降維)。
Principal Component Analysis[6](PCA)是最常用的線性降維方法,它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,並期望在所投影的維度上數據的方差最大,以此使用較少的數據維度,同時保留住較多的原數據點的特性。具體實現步驟如下:
X是矩陣,P表示維度,N表示數據個數。Y是
矩陣,d表示降維后的維度,N表示數據個數。
步驟1:先對數據進行中心化預處理,
步驟2:取協方差矩陣最大的d個特征值對應的特征向量作為投影方向W
步驟3:降維后 ,數據由P維降低到d維
將PCA的通過Kernel的方法,也可以運用在非線性降維中,即KPCA[10]。
Laplacian Eigenmaps[8]的直觀思想是希望相互間有關系的點(如在一個圖中相連的點)在降維后的空間中盡可能的靠近。Laplacian Eigenmaps可以反映出數據內在的流形結構。算法具體實現步驟:
步驟1:構建圖
使用某一種方法來將所有的點構建成一個圖,例如使用KNN算法,將每個點最近的K個點連上邊。K是一個預先設定的值。
步驟2:確定權重
確定點與點之間的權重大小,例如選用熱核函數來確定,如果點i和點j相連,那么它們關系的權重設定為:
另外一種可選的簡化設定是如果點i,j相連,權重為1,否則權重為0。
步驟3:特征映射
計算拉普拉斯矩陣L的特征向量與特征值:
使用最小的m個非零特征值對應的特征向量作為降維后的結果輸出。
Locally linear embedding[7](LLE)是一種非線性降維算法,它能夠使降維后的數據較好地保持原有流形結構。
使用LLE將三維數據映射到二維之后,映射后的數據仍能保持原有的數據流形,說明LLE有效地保持了數據原有的流行結構。
但是LLE在有些情況下也並不適用,如果數據分布在整個封閉的球面上,LLE則不能將它映射到二維空間,且不能保持原有的數據流形。那么我們在處理數據中,首先假設數據不是分布在閉合的球面或者橢球面上。
LLE算法認為每一個數據點都可以由其近鄰點的線性加權組合構造得到。算法的主要步驟分為三步:(1)尋找每個樣本點的k個近鄰點;(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值。具體的算法流程如下:
步驟1:
算法的第一步是計算出每個樣本點的k個近鄰點。例如采用KNN的策略,把相對於所求樣本點距離(常用歐氏距離)最近的k個樣本點規定為所求樣本點的 個近鄰點,k是一個預先給定值。
步驟2:
計算出樣本點的局部重建權值矩陣W,首先定義重構誤差:
以及局部協方差矩陣C:
於是,目標函數最小化:
步驟3:
將所有的樣本點映射到低維空間中。映射條件滿足如下所示:
要使損失函數值達到最小, 則取Y為M的最小m個非零特征值所對應的特征向量。在處理過程中,將M的特征值從小到大排列,第一個特征值幾乎接近於零,那么舍去第一個特征值。通常取第2到m+1間的特征值所對應的特征向量作為輸出結果。
本文接下來重點介紹無監督多聚類特征選取[5](第3章)和無監督特征選取PCA[1](第4章)兩個新提出的特征選取算法。
3 無監督多聚類特征選取
特征選取的一般問題是不考慮數據本身的結構的,而事實上很多數據本身具有多聚類結構特征,一個好的特征選取方法應該考慮到下面兩點:
l 所選取的特征應該可以最好地保持數據的聚類結構特征。最近一些研究表明一些人為產生的數據存在着內在的數據流行結構,這個因素應該被考慮在聚類算法中。
l 所選取的特征應該可以覆蓋數據中所有可能的聚類。因為不同的特征維度在區分不同的聚類時具有不同的效果,所以如果選取的特征僅僅可以區分某一些聚類而不能區分所有的聚類是不合適的。
3.1 譜嵌入聚類分析
在第2章中討論過Laplacian Eigenmaps,假設,
是公式(2)的特征向量。Y的每一行是一個數據點的降維表示。其中K是數據的內在維度,每一個
體現數據在該維度(可以理解成一個主題,或者是一個概念)上的數據分布。當使用聚類分析時,每一個
可以體現數據在這一個聚類上的分布。因此K往往可以設定成數據聚類的個數。
3.2 學習稀疏系數
在得到Y之后,我們可以衡量每一個內在維度的重要性,也就是Y的每一列,同時可以衡量每一個特征區分數據聚類的能力。
給定一個,通過最小化擬合錯誤,可以找到一個相關的特征子集,如下:
其中是一個M維度的向量(X是N*M維矩陣),
表示L1-norm。
包含了用來近似
時每一個特征的系數。由於L1-norm的性質,當
足夠大時,
的某些系數將會變為0。因此,我們可以選取一些最相關的特征子集。公式(9)本質上是一個回歸問題,稱作LASSO。
3.3 特征選取
我們需要從M個特征的數據中選取d個特征。對於一個含有K個聚類的數據來說,我們可以用上面提到的方法來計算出K個系數的系數向量,每一個
的非零元素個數為d(對應d個特征)。顯然,如果把所有選取的特征都用上,很有可能會大於d個特征。於是,使用下面這種簡單的策略來選取出d個特征。
定義每一個特征的MCFS score,如下
將所有的特征根據他們MCFS score降序排列,選取前d個特征。
3.3 計算復雜度分析
算法的計算復雜度從下面幾點分析:
l P-近鄰圖需要步來構建,同時需要
步來找到找到每一個點的p個近鄰
l 在構建好p-近鄰圖的基礎上,需要計算公式(2)的前k個特征向量,利用Lanczos algorithm需要時間
l 使用LARs來解公式(9),限制是,需要時間
,因此我們需要
的時間來計算K聚類的問題
4 無監督特征選取PCA
PCA是一種重要的線性降維算法,廣泛運用在社會、經濟、生物等各種數據上。在第2章中簡單討論過PCA,這里我們從另外一種角度來描述PCA。
4.1 子空間選取
給定一個數據矩陣,m為數據個數,n為數據維度。令
是數據降維后的維度(特征數),並假設A的列經過中心化。於是,PCA返回的是矩陣A的前k個left singular vectors(一個
的矩陣
)並且將數據投影到
列向量所在的子空間中。
令為子空間的投影矩陣,於是最佳投影實際上是在所有可能的K維子空間中,最小化:
我們希望找到一種高效的(關於m和n多項式時間內)無監督的特征選取算法,能夠挑選出k個特征,使得PCA只作用在這k個特征上的結果和作用全部特征上的結果很接近。為了定義這個接近程度,令C是一個矩陣,只包含有從A中選取出來的特征。通過計算下面的差,來衡量特征選取的好壞:
這里代表投影矩陣(投影到
的列空間張成的K維空間中),
表示矩陣
的偽逆。這等價於Column Subset Selection Problem(CSSP)問題。
在現代統計數據分析中,從高維數據中選取出原始的特征(feature selection)比選取出經過操作后的特征(feature extraction)在很多等方面都更有優勢。
4.1 兩階段CSSP
在這一節中,介紹一種兩階段的CSSP。具體步驟如下:
算法1:
1. 起始設置
l 計算A的前k個right singular vectors,表示成
2. 隨機階段
3. 確定階段
具體來看,算法1先要計算A每一列的概率,,概率分布依賴於A的前k個right singular vectors
,寫成:
由上式可以知道,只要得到就可以算出
,而本算法的時間復雜度主要取決於計算所有的
所花費的時間。
在隨機階段,算法1隨機地選擇中的
列,作為下一階段的輸入。對於
,,第j列的概率為
。如果第j列被選擇,則放縮因子等於
。因此在這個階段的末尾,我們將得到
中的
列,以及它們相應的放縮因子。因為隨機采樣,
一般會不等於c;然而很大概率下,
不會比c大很多。為了當便表示選出的列和放縮因子,我們使用下面的形式:
首先定義一個的采樣矩陣
,
初始值為空值,當第j列被選中時就將
加到
中。然后定義
對角放縮矩陣
,當第j列被選取時,
的第j個對角元素是
。因此,隨機階段的輸出結果就是
。
在確定階段,從上一個階段挑選出來的列中選取k列,實際上就是定義了一個采樣矩陣,在這個階段之后,就得到了
矩陣
作為最后的結果。
6 參考文獻
[1] Boutsidis, C., Mahoney, M. W., Drineas, P. Unsupervised feature selection for principal components analysis. In Proceeding of the 14th ACMSIGKDDinternational conference on Knowledge discovery and data mining, 2008, 61-69.
[2] Yu, L., Ding, C., Loscalzo, S. Stable feature selection via dense feature groups. In Proceeding of the 14th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 2008, 803-811.
[3] Forman, G., Scholz, M., Rajaram, S. Feature shaping for linear SVM classifiers. In Proceedings of the 15th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 2009, 299-308.
[4] Loscalzo, S., Yu, L., Ding, C. Consensus group stable feature selection. In Proceedings of the 15th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 2009, 567-576.
[5] D,Cai, C,Zhang,X,He. Unsupervised Feature Selection for Multi-Cluster Data.To be appeared in SIGKDD2010.
[6] Smith, L. I. A tutorial on principal components analysis. Cornell University, USA. 2002, 51,52.
[7] Roweis, S. T., Saul, L. K. Nonlinear dimensionality reduction by locally linear embedding. Science. 2000, 290(5500):2323.
[8] Belkin, M., Niyogi, P. Laplacian eigenmaps and spectral techniques for embedding and clustering. Advances in neural information processing systems. 2002, 1585-592.
[9] Tenenbaum, J. B., Silva, V., Langford, J. C. A global geometric framework for nonlinear dimensionality reduction. Science. 2000, 290(5500):2319.
[10] Scholkopf, B., Smola, A. J., Muller, K. R. Kernel principal component analysis. Lecture notes in computer science. 1997, 1327583-588.