特徵選擇 可用

2021-10-21 20:18:03 字數 1257 閱讀 9603

fromsklearn.feature_selection importvariancethreshold

x = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]

sel = variancethreshold(threshold=(.8* (1- .8)))

sel.fit_transform(x)#fit

相當於建模,並沒有應用

sel.fit_transform(x)#這步是應用,但是沒有賦值,所以應用後的新值不會儲存到x

x= sel.fit_transform(x)#賦值新值,x可以換名字,也可以不換

from sklearn.datasets import make_friedman1

from sklearn.feature_selection import rfecv

from sklearn.svm import svr

x, y = make_friedman1(n_samples=50, n_features=10, random_state=0)#只用了資料的50行,10個字段來實驗

estimator = svr(kernel="linear")

# step=1

每次刪除的特徵數目為1,

cv=5

是交叉驗證

selector = rfecv(estimator, step=1, cv=5)

selector = selector.fit(x, y)  #訓練

x_svr_new = selector.transform(x) #賦值

from sklearn.ensemble import extratreesclassifier

from sklearn.datasets import load_iris

from sklearn.feature_selection import selectfrommodel

iris = load_iris()

x, y = iris.data, iris.target

x.shape

clf = extratreesclassifier()

clf = clf.fit(x, y)

clf.feature_importances_

model = selectfrommodel(clf, prefit=true)

x_new = model.transform(x)

x_new.shape

特徵選擇 單變數特徵選擇

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

特徵工程之特徵選擇

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

特徵工程之特徵選擇

特徵選擇其實就是減少屬性個數,為什麼要這麼做呢?直接使用原始資料來訓練模型的話,雖然說在訓練模型上的準確率會非常高,但是在測試樣本上的準確率將會大打折扣,也就是會產生過擬合的現象。所以說需要選擇出最適合的屬性進行訓練。特徵選擇的原因 2 雜訊 部分特徵對 結果又影響 進行特徵選擇的時候有兩種情況 一...