資料預處理完成以後,特徵比較多時,就需要對特徵進行選擇。 使有意義的特徵輸入模型進行訓練。 特徵選擇通常來說從兩個方面入手:
特徵選擇的方法:
在sklearn中可以使用feature_selection庫來進行特徵選擇。
2.1.1 方差選擇法
方差選擇法需要計算各特徵的方差,然後根據給定的方差閾值選擇特徵。
from sklearn.feature_selection import variancethreshold
selected_feature = variancethreshold(threshold=3).fit_transform(features)
這裡的threshold根據不同的feature應該有所不同, 所以需要對於樣本有一定的了解。
2.1.2 卡方檢驗法
對於每乙個特徵與目標分類標籤進行卡方檢驗,根據得出的chi2統計和p-value對特徵進行選擇。
from sklearn.feature_selection import chi2
from sklearn.feature_selection import selectkbest
selected_feature = selectkbest(chi2, k=2).fit_transform(features, target)
2.2.1 遞迴特徵消除法
遞迴特徵消元法需要給定乙個**模型(基模型),然後使用最初的特徵進行模型訓練得到每乙個特徵的權值, 然後丟棄權值最小的的特徵,重新訓練模型。 如此往復直到得到所需要的數量時停止。
sklearn.feature_selection中的rfe類實現。
**例子中,選取邏輯回歸模型作為基模型。
from sklearn.feature_selection import rfe
from sklearn.linear_model import logisticregression
selected_feature = rfe(estimator=logisticregression(), n_features_to_select=2).fit_transform(features, target)
2.3.1 基於懲罰項的特徵選擇法
使用帶懲罰項的基模型, 除了篩選特徵,同時進行降維。 使用feature_selection庫的selectfrommodel類結合l1懲罰項的邏輯回歸模型實現:
from sklearn.feature_selection import selectfrommodel
from sklearn.linear_model import logisticregression
selected_feature = selectfrommodel(estimator=logisticregression(penalty="l1", c=0.1)).fit_transform(features, target)
2.3.2 基於樹模型的特徵選擇
通過樹模型的gbdt作為基模型進行特徵選擇, 使用selectfrommodel結合gbdt模型實現:
from sklearn.feature_selection import selectfrommodel
from sklearn.ensemble import gradientboostingclassifier
selected_feature = selectfrommodel(estimator=gradientboostingclassifier()).fit_transform(features, target)
類
所屬方式
說明variancethreshold
filter
方差選擇法
selectkbest
filter
可選關聯係數、卡方校驗、最大資訊係數作為得分計算的方法
rfe遞迴地訓練基模型,將權值係數較小的特徵從特徵集合中消除
selectfrommodel
embedded
訓練基模型,選擇權值係數較高的特徵
原文大神部落格
機器學習 特徵選擇
特徵選擇是特徵工程中的重要問題 另乙個重要的問題是特徵提取 坊間常說 資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。由此可見,特徵工程尤其是特徵選擇在機器學習中占有相當重要的地位。通常而言,特徵選擇是指選擇獲得相應模型和演算法最好效能的特徵集,工程上常用的方法有以下 1.計算每...
機器學習 特徵選擇
當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。通常來說,從兩個方面考慮來選擇特徵 根據特徵選擇的形式又可以將特徵選擇方法分為3種 embedded 嵌入法,先使用某些機器學習的演算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似於filter...
機器學習 特徵選擇
1 特徵選擇 特徵選擇是一種及其重要的資料預處理方法。假設你需要處理乙個監督學習問題,樣本的特徵數非常大 甚至 但是可能僅僅有少部分特徵會和對結果產生影響。甚至是簡單的線性分類,如果樣本特徵數超過了n,但假設函式的vc維確仍然是o n 那麼,除非大大擴充套件訓練集的數量,否則即會帶來過擬合的問題。在...