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執行結果可以看出來,3,4的權重大#係數,相當於權重
2 np.abs(sfm.estimator_.coef_).mean(axis = 0)
1#特徵的重要程度
2 sfm.estimator_.feature_importances_
1#方差根據方差篩選的話,挑選出來的是1,3特徵
3.selectkbest
這個其實是統計學中的卡方驗證
1根據卡方分布,挑選出來的依舊是3,4屬性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]
驗證一下:
4.rfe 遞迴特徵消除
1model.feature_importances_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_
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...