Python方差特征過濾的實(shí)例分析
說明
1、通過特征本身的方差來篩選特征。特征的方差越小,特征的變化越不明顯。
2、變化越不明顯的特征對(duì)我們區(qū)分標(biāo)簽沒有太大作用,因此應(yīng)該消除這些特征。
實(shí)例
def variance_demo(): """ 過濾低方差特征 :return: """ # 1. 獲取數(shù)據(jù) data = pd.read_csv('factor_returns.csv') data = data.iloc[:, 1:-2] print('data:\n', data) # 2. 實(shí)例化一個(gè)轉(zhuǎn)換器類 transfer = VarianceThreshold(threshold=10) # 3. 調(diào)用fit_transform() data_new = transfer.fit_transform(data) print('data_new:\n', data_new, data_new.shape) return None
知識(shí)點(diǎn)擴(kuò)充:
方差過濾法
VarianceThreshold 是特征選擇的一個(gè)簡(jiǎn)單基本方法,其原理在于–底方差的特征的預(yù)測(cè)效果往往不好。而VarianceThreshold會(huì)移除所有那些方差不滿足一些閾值的特征。默認(rèn)情況下,它將會(huì)移除所有的零方差特征,即那些在所有的樣本上的取值均不變的特征。
sklearn中的VarianceThreshold類中重要參數(shù) threshold(方差的閾值),表示刪除所有方差小于threshold的特征 #不填默認(rèn)為0——?jiǎng)h除所有記錄相同的特征。
import pandas as pd import numpy as np np.random.seed(1) #設(shè)置隨機(jī)種子,實(shí)現(xiàn)每次生成的隨機(jī)數(shù)矩陣都一樣 a= np.random.randint(0, 200,10) b= np.random.randint(0, 200,10) c= np.random.randint(0, 200,10) d= [9,9,9,9,9,9,9,9,9,9] data=pd.DataFrame({"A" : a,"B" : b,"C" : c,"D" : d}) data from sklearn.feature_selection import VarianceThreshold sel_model = VarianceThreshold(threshold = 0) #刪除不合格特征之后的新矩陣 sel_model.fit_transform(data)
到此這篇關(guān)于Python方差特征過濾的實(shí)例分析的文章就介紹到這了,更多相關(guān)Python方差特征過濾的實(shí)現(xiàn)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。