機器學習 特徵選擇

2021-09-13 04:03:24 字數 2172 閱讀 9286

資料預處理完成以後,特徵比較多時,就需要對特徵進行選擇。 使有意義的特徵輸入模型進行訓練。 特徵選擇通常來說從兩個方面入手:

特徵選擇的方法:

在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 那麼,除非大大擴充套件訓練集的數量,否則即會帶來過擬合的問題。在...