特徵提取就是將機器學習演算法不理解的原始資料抽取特徵出來,這些特徵可以描述原始的資料,使得這些特徵可以被機器學習演算法所理解,這些特徵也就作為機器學習演算法的輸入。
在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,並沒有改變。
特徵選擇與特徵提取
一 特徵選擇和特徵提取 特徵選擇 feature selection 和特徵提取 feature extraction 都屬於降維 dimension reduction 這兩者達到的效果是一樣的,就是試圖去減少特徵資料集中的屬性 或者稱為特徵 的數目 但是兩者所採用的方式方法卻不同。特徵提取的方法...
(八)特徵選擇與特徵提取
在描述物件的時候 模式識別中把每個物件都量化為一組特徵來描述,構建特徵空間是解決模式識別問題的第一步,其中通過直接測量得到的特徵稱為原始特徵。如 人體的各種生理指標 以描述健康狀況 數字影象中的每點的灰度值 以描述影象內容 原始特徵的形成一般包含三大類 物理 結構和數學特徵 物理和結構特徵 易於為人...
特徵工程 特徵提取
特徵提取 將任意資料 如文字或影象 轉換為可用於機器學習的數字特徵 注 特徵值化是為了計算機更好的去理解資料 字典特徵提取 作用 對字典資料進行特徵值化 dictvectorizer.get feature names 返回類別名稱 from sklearn.feature extraction i...