特徵選擇與特徵降維的差別
在machine learning中,特徵降維和特徵選擇是兩個常見的概念,在應用machine learning來解決問題的論文中經常會出現。
對於這兩個概念,很多初學者可能不是很清楚他們的區別。很多人都以為特徵降維和特徵選擇的目的都是使資料的維數降低,所以以為它們是一樣的,曾經我也這麼以為,這個概念上的誤區也就導致了我後面對問題的認識不夠深入。後來得到老師的指點才徹底搞清楚了兩者的關係,現總結出來與大家分享。
machine learning的終極目標就是為了預測,當然預測前我們要對資料進行training。通常我們不會拿原始資料來訓練,為什麼吶?可能有些人覺得原始資訊包含了樣本最豐富的資訊,沒有經過任何處理的raw data能最完整表達樣本,這個觀點沒有錯。但是用raw data來直接訓練的話,有一個問題就是我們設計的分類器在訓練集上會得到很好的performance,但在測試集上的performance卻變得非常差。這就是過擬合(overfitting)的問題。用raw data直接訓練還有一個問題就是原始維度太高,耗時長。
解決過擬合的問題就要求我們找出raw data中差異性最大的那些特徵,這樣才能保證分類器在測試集有好的performance。所以通常我們都是要對原始資料進行特徵提取的。提取特徵後通常特徵維數依然不低,而且依然可能會出現過擬合的問題,為了解決這些問題,通常的做法就是降維和特徵選擇。降維用的最多是PCA。
從上面的分析可能看到,感覺降維和特徵選擇都是為了使資料維度降小。但實際上兩者的區別是很大,他們的本質是完全不同的。下面著重說說兩者的區別。
降維本質上是從一個維度空間對映到另一個維度空間,特徵的多少別沒有減少,當然在對映的過程中特徵值也會相應的變化。舉個例子,現在的特徵是1000維,我們想要把它降到500維。降維的過程就是找個一個從1000維對映到500維的對映關係。原始資料中的1000個特徵,每一個都對應著降維後的500維空間中的一個值。假設原始特徵中有個特徵的值是9,那麼降維後對應的值可能是3。
特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後不改變值,但是選擇後的特徵維數肯定比選擇前小,畢竟我們只選擇了其中的一部分特徵。舉個例子,現在的特徵是1000維,現在我們要從這1000個特徵中選擇500個,那個這500個特徵的值就跟對應的原始特徵中那500個特徵值是完全一樣的。對於另個500個沒有被選擇到的特徵就直接拋棄了。假設原始特徵中有個特徵的值是9,那麼特徵選擇選到這個特徵後它的值還是9,並沒有改變。