特征選擇法之方差選擇


from sklearn.feature_selection import  VarianceThreshold
X=[[100,1,2,3],
       [100,4,5,6],
       [100,7,8,9],
       [101,11,12,13]]
selector=VarianceThreshold(1)#方差為1
selector.fit(X)#訓練
print("Variances is %s"%selector.variances_)
print("After transform is %s"%selector.transform(X))#篩選結果
print("The surport is %s"%selector.get_support(True))#保留下來哪些列
print("After reverse transform is %s"%selector.inverse_transform(selector.transform(X)))

使用方差選擇法,先要計算各個特征的方差,然后根據閾值,選擇方差大於閾值的特征。如果一個特征不發散,例如方差接近於0,也就是說樣本在這個特征上基本上沒有差異,這個特征對於樣本的區分並沒有什么用。

方差過濾可以使用在巨大的稀疏矩陣中,稀疏矩陣中可以考慮將方差的過濾閾值設置為0,這樣就會將稀疏矩陣中大量特征值為0的特征過濾掉

在我自己的數據集里特征比較少,才十幾個,方差篩選后不到十個,結果在各種boost模型上都翻車了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM