4 特徵選擇

2021-10-02 15:07:06 字數 1217 閱讀 9132

過濾式方法先對資料集進行特徵選擇,然後再訓練學習器,特徵選擇過程與後續學習器無關。這相當於先用特徵選擇對初始特徵進行「過濾」,再用過濾後的特徵來訓練模型。relief(relevant features)[kira and rendell, 1992]是一種著名的過濾式特徵選擇方法,該方法設計了乙個「相關統計量」來度量特徵的重要性。

與過濾式特徵選擇不考慮後續學習器不同,包裹式特徵選擇直接把最終要使用的學習器的效能作為特徵子集的評價準則。一般而言,由於包裹式特徵選擇方法直接針對給定學習器進行優化,因此從最終學習器效能來看,包裹式特徵選擇比過濾式更好,但另一方面,由於特徵選擇過程中需要多次訓練學習器,因此包裹式特徵選擇的計算開銷通常比過濾式特徵選擇大得多。

在過濾式與包裹式特徵選擇方法中,特徵選擇過程與學習器訓練過程有明顯的分別;與此不同,嵌入式特徵選擇是將特徵選擇過程與學習器訓練過程融為一體,二者在同一優化過程中完成,即在學習器訓練過程中自動進行特徵選擇。我們考慮最簡單的線性回歸模型,以平方誤差為損失函式。損失函式引入l1範數正則化。如下圖所示

採用l1範數比l2範數更易於得到稀疏解,w取得稀疏解意味著初始的d個特徵中僅有對應著w的非零分類的特徵才會出現在最終模型中。

下面例子是基於l1地嵌入式特徵選擇。

from sklearn.svm import linearsvc

from sklearn.datasets import load_iris

from sklearn.feature_selection import selectfrommodel

iris = load_iris(

)x, y = iris.data, iris.target

print

(x.shape)

#(150, 4)

lsvc = linearsvc(c=

0.01

, penalty=

"l1"

, dual=

false

).fit(x, y)

model = selectfrommodel(lsvc, prefit=

true

)x_new = model.transform(x)

print

(x_new.shape)

#(150, 3)

4 特徵選擇方法

特徵選擇是指選擇獲得相應模型和演算法最好效能的特徵集,工程上常用的方法有以下 a.計算每乙個特徵與響應變數的相關性 工程上常用的手段有計算皮爾遜係數和互資訊係數,皮爾遜係數只能衡量線性相關性而互資訊係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裡邊都包含了這個工具 如sk...

特徵選擇 單變數特徵選擇

1.selectkbest可以依據相關性對特徵進行選擇,保留k個評分最高的特徵。方差分析 分類問題使用f classif,回歸問題使用f regression。f classif 分類任務 跟目標的分類,將樣本劃分成n個子集,s1,s2,sn,我們希望每個子集的均值 1,2,n不相等。我們假設h0 ...

特徵工程之特徵選擇

在前一篇文章中我介紹了一些資料預處理的方法,原始資料在經過預處理之後可以被演算法處理了,但是實際中可能有一些特徵是沒有必要的,比如在中國採集的一些資料,那麼國籍就都是中國,其實也就沒有意義了,反映在統計量上就是方差過小,也就是樣本在這個特徵上變化很小。還有一種情況是特徵和最後的結果相關性很小,也就是...