特征工程系列:(六)特征選擇之方差過濾


有時候,數據集中的某一個特征,方差非常小,非常接近,這樣導致的結果就是,沒有區分度,那么這個特征其實就不是一個好的特征,因此方差過濾的思想就是,找到那些有區分度的特征(方差大)

from sklearn.feature_selection import VarianceThreshold

X = VairanceThreshold().fit_transform(X)  # VarianceThreshold 默認參數為0 
X_var0

如果一個特征服從伯努利分布,也就是說,這個特征只有兩個類別。這個時候,也可以進行方差過濾,伯努利分布的方差計算公式為:\(\sigma = p(1-p)\), 其中\(p\)為莫一個類別的占比。

例如,一個特征\(x_1\),其中一個類別數量為80,另外一個類別數量為20,這個時候,這個特征的方差為:

\(0.8(1-0.8)\) , 在sklearn中,也可以直接使用方差過濾函數來對這類特征進行篩選。

X_bvar = VarianceThreshold(.8 * (1 - .8)).fit_transform(X)
X_bvar

方差過濾的目的主要是在維持算法表現的前提下,幫助算法刷選出更有分辨的特征,從而減輕計算成本,但是方差過濾不保證能夠實現預期效果,所以在實踐中,需要進行各種實驗,通過真實實驗效果去靈活的應用。


免責聲明!

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



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