資料降維 特徵選擇

2022-07-22 11:48:10 字數 3061 閱讀 5433

1.為什麼要進行資料降維?

在實際的機器學習專案中,特徵選擇/降維是必須進行的,因為在資料中存在以下幾個方面的問題:

通過特徵選擇/降維的目的是:

當然有時候也存在特徵矩陣過大, 導致計算量比較大,訓練時間長的問題

降維的好處:

2.selectfrommodel

這裡舉個鳶尾花的例子,鳶尾花有四個特徵,但是並不是每個特徵都是重要的,所以篩選一下,看哪個特徵更最要

1#導包

2#特徵選擇需要的包

3from sklearn.feature_selection import

selectfrommodel4#

一些模型

5from sklearn.linear_model import

logisticregression

6from sklearn.tree import

decisiontreeclassifier

7from sklearn.neighbors import

kneighborsclassifier89

from sklearn import

datasets

1011

import

numpy as np

1213

import

warnings

14 warnings.filterwarnings('

ignore

')

1 x,y =datasets.load_iris(true)

23 estimator=logisticregression()4#

max_features保留幾個特徵 estimator模型 threshold 閾值

5 sfm=selectfrommodel(estimator=estimator,threshold=-np.inf,max_features=2)

6 x2=sfm.fit_transform(x,y)

7 x2[:10]

篩選出來的結果:

原結果:x[:10]

可以看出,第三個特徵和第四歌特徵被挑選出來,可見他們的重要性高

1

#係數,相當於權重

2 np.abs(sfm.estimator_.coef_).mean(axis = 0)

執行結果可以看出來,3,4的權重大

1

#特徵的重要程度

2 sfm.estimator_.feature_importances_

1#方差

根據方差篩選的話,挑選出來的是1,3特徵

3.selectkbest

這個其實是統計學中的卡方驗證

1

from sklearn.datasets import

load_iris

2from sklearn.feature_selection import

selectkbest

3from sklearn.feature_selection import

chi2

45 iris =load_iris()

6 x, y =iris.data, iris.target78

#k=2 選擇兩個最高的分數對應的屬性9#

chi 是統計學中的卡方驗證,測試隨機變數之間的相關性

10 x_new = selectkbest(chi2, k=2).fit_transform(x, y)

11x_new.shape

1213 x[:10]

14 x_new[:10]

根據卡方分布,挑選出來的依舊是3,4屬性

驗證一下:

4.rfe 遞迴特徵消除

1

from sklearn.feature_selection import

rfe2

from sklearn.tree import

decisiontreeclassifier

34 estimator=decisiontreeclassifier()

5 rfe=rfe(estimator)

6 x2=rfe.fit_transform(x,y)

7 x2[:10]

89 model=rfe.estimator_

10model.feature_importances_

1112

estimator.fit(x,y)

13 estimator.feature_importances_

model.feature_importances_

estimator.feature_importances_

5.補充一下卡方檢驗和卡方分布

卡方檢驗:

卡方檢驗是用途非常廣的一種假設檢驗方法,它在分類資料統計推斷中的應用,包括:兩個率或兩個構成比比較的卡方檢驗;多個率或多個構成比比較的卡方檢驗以及分類資料的相關分析等。

計算公式:

這裡等博主學習後回來更新.......

資料的特徵選擇與降維

雜訊 部分特徵對 結果有負影響 特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值 也可以不改變值,但是選擇後的特徵維數肯定比選擇前小,畢竟我們只選擇了其中的一部分特徵 輸出 2,0 1,4 1,1 1 from sklearn.feature sele...

特徵提取,特徵選擇,降維

特徵提取就是將機器學習演算法不理解的原始資料抽取特徵出來,這些特徵可以描述原始的資料,使得這些特徵可以被機器學習演算法所理解,這些特徵也就作為機器學習演算法的輸入。在machine learning中,特徵降維和特徵選擇是兩個常見的概念,在應用machine learning來解決問題的 中經常會出...

資料降維之特徵選擇 Filter(過濾式)

特徵選擇就是單純地從提取到的所有特徵中選擇部分特徵作為訓練集特徵,特徵在選擇前和選擇後可以改變值 也不改變值,但是選擇後的特徵維數肯 定比選擇前小,畢竟我們只選擇了其中的一部分特徵。初始化variancethreshlod,指定閥值方差 呼叫fit transform from sklearn.fe...