- 機器學習實戰:基于Sophon平臺的機器學習理論與實踐
- 星環科技人工智能平臺團隊
- 589字
- 2020-01-07 16:02:43
2.1.7 封裝方法
由于過濾方法與具體的機器學習算法相互獨立,因此過濾方法沒有考慮所選特征集合在具體機器學習算法上的效果。與過濾方法不同,封裝方法直接使用機器學習算法評估特征子集的效果,它可以檢測出兩個或者多個特征之間的交互關系,而且選擇的特征子集會讓模型的效果達到最優。封裝方法是特征子集搜索和評估指標相結合的方法,前者提供候選的新特征子集,后者則基于新特征子集訓練一個模型,并用驗證集進行評估,為每一組特征子集進行打分。最簡單的方法則是在每一個特征子集上訓練并評估模型,從而找出最優的特征子集。
封裝方法需要對每一組特征子集訓練一個模型,所以計算量很大。封裝方法的缺點是:樣本不夠充分時容易過擬合;特征變量較多時計算復雜度太高。
最常用的封裝方法是遞歸特征消除法(recursive feature elimination)。遞歸特征消除法使用一個機器學習模型來進行多輪訓練,每輪訓練后,消除若干權值系數的對應特征,再基于新的特征集進行下一輪訓練。
下面以經典的SVM-RFE算法來討論這個特征選擇的思路。這個算法以支持向量機來為RFE的機器學習模型選擇特征。在第一輪訓練的時候,它會選擇所有的特征來訓練,得到了分類的超平面xTw+b=0后,如果有n個特征,那么SVM-RFE會選擇w 中分量的最小的序號i所對應的特征加以排除,在第二輪訓練的時候,特征數就剩下n-1個了,繼續用這n-1個特征和輸出值來訓練SVM,同樣,去掉
最小的序號i所對應的特征。以此類推,直到剩下的特征數滿足我們的需求為止。