1、通過特徵本身的方差來篩選特徵。特徵的方差越小,特徵的變化越不明顯。
2、變化越不明顯的特徵對我們區分標籤沒有太大作用,因此應該消除這些特徵。
def variance_demo():
"""過濾低方差特徵
:return:
"""# 1. 獲取資料
data = pd.read_csv('factor_returns.csv')
data = data.iloc[:, 1:-2]
print('data:\n', data)
# 2. 例項化乙個轉換器類
transfer = variancethreshold(threshold=10)
# 3. 呼叫fit_transform()
data_new = transfer.fit_transform(data)
print('data_new:\n', data_new, data_new.shape)
return none
知識點擴充:
方差過濾法
variancethreshold 是特徵選擇的乙個簡單基本方法,其原理在於–底方差的特徵的**效果往往不好。而variancethreshold會移除所有那些方差不滿足一些閾值的特徵。預設情況下,它將會移除所有的零方差特徵,即那些在所有的樣本上的取值均不變的特徵。
sklearn中的variancethreshold類中重要引數 threshold(方差的程式設計客棧閾值),表示刪除所有方差小於threshold的特徵 #不填預設為0——刪除所有記錄相同的特徵。
import pandas awww.cppcns.coms pd
import numpy as np
np.random.seed(1) #設定隨機種子,實現每次生成的隨機數矩陣都一樣
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()
程式設計客棧data
from sklearn.feature_selection import variancethreshold
sel_model = variancethreshold(threshold = 0)
#刪除不合格特徵之後的新矩陣
sel_model.fit_transform(data)
低方差特徵過濾
最近在資料的與處理中遇到了variancethreshold操作,這是sklearn.feature selection,就是資料特徵值選擇,為什麼會有這種操作呢,其實這是在進行資料分析之前的一種資料預處理作業,以為我們遇到的資料是複雜多變的,有可能會存在很多個特徵值,但是並不是每乙個特徵值都能很好...
Python過濾列表用法例項分析
過濾列表 mapping expression for element in source list if filter expression 以 if 開頭的是過濾器表示式,過濾器表示式可以是返回值為真或者假 在 python 中是 幾乎任何東西 的任何表示式。任何經過濾器表示式www.cppcn...
PCA 協方差矩陣 特徵向量 特徵值之間的關係
假如你要處理乙個資料集,資料集中的每條記錄都是乙個d d維列向量.但是這個d d太大了,所以你希望把資料維度給降下來,既可以去除一些冗餘資訊,又可以降低處理資料時消耗的計算資源 用computation budget 來描述可能更形象 用稍微正式點的語言描述 那麼,問題就來了.如何將乙個d d維向量...