特徵選擇是特徵工程中的重要問題(另乙個重要的問題是特徵提取),坊間常說:資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。由此可見,特徵工程尤其是特徵選擇在機器學習中占有相當重要的地位。
通常而言,特徵選擇是指選擇獲得相應模型和演算法最好效能的特徵集,工程上常用的方法有以下:
1. 計算每乙個特徵與響應變數的相關性:工程上常用的手段有計算皮爾遜係數和互資訊係數,皮爾遜係數只能衡量線性相關性而互資訊係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裡邊都包含了這個工具(如sklearn的mine),得到相關性之後就可以排序選擇特徵了;
2. 構建單個特徵的模型,通過模型的準確性為特徵排序,藉此來選擇特徵,另外,記得jmlr'03上有一篇**介紹了一種基於決策樹的特徵選擇方法,本質上是等價的。當選擇到了目標特徵之後,再用來訓練最終的模型;
3. 通過l1正則項來選擇特徵:l1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,l1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了乙個,如果要確定哪個特徵重要應再通過l2正則方法交叉檢驗;
5. 通過特徵組合後再來選擇特徵:如對使用者id和使用者特徵最組合來獲得較大的特徵集再來選擇特徵,這種做法在推薦系統和廣告系統中比較常見,這也是所謂億級甚至十億級特徵的主要**,原因是使用者資料比較稀疏,組合特徵能夠同時兼顧全域性模型和個性化模型,這個問題有機會可以展開講。
6. 通過深度學習來進行特徵選擇:目前這種手段正在隨著深度學習的流行而成為一種手段,尤其是在計算機視覺領域,原因是深度學習具有自動學習特徵的能力,這也是深度學習又叫unsupervised feature learning的原因。從深度學習模型中選擇某一神經層的特徵後就可以用來進行最終目標模型的訓練了。
整體上來說,特徵選擇是乙個既有學術價值又有工程價值的問題,目前在研究領域也比較熱,值得所有做機器學習的朋友重視。
機器學習 特徵選擇
資料預處理完成以後,特徵比較多時,就需要對特徵進行選擇。使有意義的特徵輸入模型進行訓練。特徵選擇通常來說從兩個方面入手 特徵選擇的方法 在sklearn中可以使用feature selection庫來進行特徵選擇。2.1.1 方差選擇法 方差選擇法需要計算各特徵的方差,然後根據給定的方差閾值選擇特徵...
機器學習 特徵選擇
當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。通常來說,從兩個方面考慮來選擇特徵 根據特徵選擇的形式又可以將特徵選擇方法分為3種 embedded 嵌入法,先使用某些機器學習的演算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似於filter...
機器學習 特徵選擇
1 特徵選擇 特徵選擇是一種及其重要的資料預處理方法。假設你需要處理乙個監督學習問題,樣本的特徵數非常大 甚至 但是可能僅僅有少部分特徵會和對結果產生影響。甚至是簡單的線性分類,如果樣本特徵數超過了n,但假設函式的vc維確仍然是o n 那麼,除非大大擴充套件訓練集的數量,否則即會帶來過擬合的問題。在...