Python方差特徵過濾的例項分析

2022-09-25 07:30:18 字數 1257 閱讀 7339

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維向量...