1.selectkbest可以依據相關性對特徵進行選擇,保留k個評分最高的特徵。
①方差分析
分類問題使用f_classif,回歸問題使用f_regression。
f_classif:分類任務
跟目標的分類,將樣本劃分成n個子集,s1,s2,..,sn,我們希望每個子集的均值μ1,μ2,...,μn不相等。
我們假設h0:μ1=μ2=...=μn,當然我們希望拒絕h0,所以我們希望構造出來f最大越好。所以我們可以通過第i個特徵xi對分類進行**。f值越大,**值越好。
f_regression:回歸任務
引用參考:
from sklearn.feature_selection import selectkbest
from sklearn.feature_selection import f_classif
from sklearn.datasets import load_iris
# 特徵選擇
data = load_iris()
slectkbest = selectkbest(f_classif,k=2)
datak = slectkbest.fit_transform(data.data,data.target)
②χ²檢驗
卡方檢驗用於分類問題
③互資訊
mutual_info_classif:分類問題
mutual_info_regression:回歸問題
2.selectpercentile 選擇排名排在前n%的變數
特徵工程之特徵選擇
在前一篇文章中我介紹了一些資料預處理的方法,原始資料在經過預處理之後可以被演算法處理了,但是實際中可能有一些特徵是沒有必要的,比如在中國採集的一些資料,那麼國籍就都是中國,其實也就沒有意義了,反映在統計量上就是方差過小,也就是樣本在這個特徵上變化很小。還有一種情況是特徵和最後的結果相關性很小,也就是...
特徵工程之特徵選擇
特徵選擇其實就是減少屬性個數,為什麼要這麼做呢?直接使用原始資料來訓練模型的話,雖然說在訓練模型上的準確率會非常高,但是在測試樣本上的準確率將會大打折扣,也就是會產生過擬合的現象。所以說需要選擇出最適合的屬性進行訓練。特徵選擇的原因 2 雜訊 部分特徵對 結果又影響 進行特徵選擇的時候有兩種情況 一...
特徵選擇與特徵組合
特徵選擇 特徵選擇是特徵工程中的重要問題 另乙個重要的問題是特徵提取 坊間常說 資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。由此可見,特徵工程尤其是特徵選擇在機器學習中占有相當重要的地位。通常而言,特徵選擇是指選擇獲得相應模型和演算法最好效能的特徵集,工程上常用的方法有以下 ...