
一些常見的特征選擇方法
現(xiàn)實(shí)中產(chǎn)生的特征維度可能很多,特征質(zhì)量參差不齊,不僅會(huì)增加訓(xùn)練過程的時(shí)間,也可能會(huì)降低模型質(zhì)量。因此,提取出最具代表性的一部分特征來參與訓(xùn)練就很重要了。
特征抽取
對(duì)于特征之間存在正交關(guān)系,數(shù)據(jù)滿足高斯分布或指數(shù)分布的數(shù)據(jù),作線性變換,使用方差、協(xié)方差去噪,生成新的主元,接下來按重要性排序后取少數(shù)參與訓(xùn)練,達(dá)到減少特征的目的。
這里最重要的思想是把多個(gè)特征進(jìn)行線性變換,使用較少的特征表達(dá)原來多個(gè)特征的主要特點(diǎn)。
由于現(xiàn)實(shí)中取得的數(shù)據(jù)絕大部分滿足高斯分布,所以PCA應(yīng)用極廣。
人臉識(shí)別應(yīng)用
將多幅同一人的人臉圖像進(jìn)行PCA變換,找到代表人臉的主要特征模型。當(dāng)有新的人臉需要識(shí)別時(shí),進(jìn)行相同變換,并與已存在的人臉特征模型進(jìn)行匹配。
R應(yīng)用方法
//PCA方案1:用SVD實(shí)現(xiàn)
pca1<-prcomp(USArrests, scale = TRUE)
//PCA方案2:采用線性代數(shù)中的實(shí)對(duì)稱均值的對(duì)角化實(shí)現(xiàn)
pca2<-princomp(USArrests,cor=T)
summary(pc1)
summary的輸出為:
Importance of components:
PC1 PC2 PC3 PC4
Standard deviation 1.5749 0.9949 0.59713 0.41645
Proportion of Variance 0.6201 0.2474 0.08914 0.04336
Cumulative Proportion 0.6201 0.8675 0.95664 1.00000
上面三行分別為標(biāo)準(zhǔn)差,方差貢獻(xiàn)率,累計(jì)方差貢獻(xiàn)率。
根據(jù)上面的數(shù)據(jù),至PC3時(shí),累計(jì)方差貢獻(xiàn)率已達(dá)0.95664,因此只取前三個(gè)特征已經(jīng)足夠。
特征選擇
特征選擇主要有Filter、Wrapper、Embedded等幾種不同的思路。這里主要寫寫Filter。
卡方檢驗(yàn)
在有不同特征值的影響下,對(duì)兩組目標(biāo)變量作卡方檢驗(yàn),計(jì)算x2值,看兩組數(shù)據(jù)是否有統(tǒng)計(jì)學(xué)上的明顯差異。
這里給出R中的代碼例子。
1、使用卡方檢驗(yàn)判斷患者治療方式對(duì)治療效果的影響
library(vcd)//加載vcd數(shù)據(jù)包
//準(zhǔn)備進(jìn)行卡檢驗(yàn)所需的數(shù)據(jù),提取治療方式與治療效果
mytable<-xtabs(~Treatment+Improved,data=Arthritis)
//對(duì)mytable進(jìn)行卡方檢驗(yàn)
chisq.test(mytable)
以下是輸出結(jié)果
Pearson's Chi-squared test
data: mytable
X-squared = 13.055, df = 2, p-value = 0.001463
p < 0.01,可以判斷患者接受的治療方式對(duì)治療效果有明顯影響。
2、使用卡方檢驗(yàn)判斷患者的性別對(duì)治療效果的影響
library(vcd)//加載vcd數(shù)據(jù)包
//準(zhǔn)備進(jìn)行卡檢驗(yàn)所需的數(shù)據(jù),提取患者性別與治療效果
mytable<-xtabs(~Improved+Sex,data=Arthritis)
//對(duì)mytable進(jìn)行卡方檢驗(yàn)
chisq.test(mytable)
以下是輸出結(jié)果
Pearson's Chi-squared test
data: mytable
X-squared = 4.8407, df = 2, p-value = 0.08889
p > 0.05,可以判斷患者的性別對(duì)治療效果無明顯影響。
上面的實(shí)驗(yàn)中,p值表示不同列之間的相互獨(dú)立的概率。
在1中,由于p值很小,所以拒絕了治療方式與治療效果之間相互獨(dú)立的假設(shè)。
在2中,由于p值不夠小,所以無法拒絕性別與治療效果之間相互獨(dú)立的假設(shè)。
WOE、IV
預(yù)測(cè)目標(biāo)變量所需的信息總量蘊(yùn)含在所有的特征中,某個(gè)特征所蘊(yùn)含信息量(IV值)越大,則越重要。
IV值的計(jì)算以WOE為基礎(chǔ)。
詳細(xì)的概念、原理及公式可以參考這篇文章
數(shù)據(jù)挖掘模型中的IV和WOE詳解:http://www.3lll3.cn/view/24633.html
接下來看看R中的應(yīng)用
//安裝和加載woe包。
install.packages("woe")
library(woe)
//計(jì)算數(shù)據(jù)集mtcars中,cyl這一列對(duì)目標(biāo)變量am的woe值和iv值。
woe(Data=mtcars,"cyl",FALSE,"am",10,Bad=0,Good=1)
以下是輸出結(jié)果
BIN BAD GOOD TOTAL BAD% GOOD% TOTAL% WOE IV BAD_SPLIT GOOD_SPLIT
1 4 3 8 11 0.158 0.615 0.344 135.9 0.621 0.273 0.727
2 6 4 3 7 0.211 0.231 0.219 9.1 0.002 0.571 0.429
3 8 12 2 14 0.632 0.154 0.438 -141.2 0.675 0.857 0.143
//計(jì)算數(shù)據(jù)集mtcars中,mpg這一列對(duì)目標(biāo)變量am的woe值和iv值。
woe(Data=mtcars,"mpg",TRUE,"am",10,Bad=0,Good=1)
以下是輸出結(jié)果
BIN MIN MAX BAD GOOD TOTAL BAD% GOOD% TOTAL% WOE IV BAD_SPLIT GOOD_SPLIT
1 1 10.4 14.3 4 0 4 0.211 0.000 0.125 -Inf Inf 1.00 0.00
2 2 14.7 15.2 3 1 4 0.158 0.077 0.125 -71.9 0.058 0.75 0.25
3 3 15.5 17.3 3 1 4 0.158 0.077 0.125 -71.9 0.058 0.75 0.25
4 4 17.8 19.2 4 0 4 0.211 0.000 0.125 -Inf Inf 1.00 0.00
5 5 19.2 21.0 1 3 4 0.053 0.231 0.125 147.2 0.262 0.25 0.75
6 6 21.4 22.8 2 2 4 0.105 0.154 0.125 38.3 0.019 0.50 0.50
7 7 22.8 27.3 2 2 4 0.105 0.154 0.125 38.3 0.019 0.50 0.50
8 8 30.4 33.9 0 4 4 0.000 0.308 0.125 Inf Inf 0.00 1.00
信息熵與信息增益
信息的熵,表示不確定性。
在一個(gè)數(shù)據(jù)集中,先對(duì)目標(biāo)分類變量進(jìn)行熵的計(jì)算,再對(duì)目標(biāo)分類變量按某一個(gè)特征值進(jìn)行分組后進(jìn)行一次熵的計(jì)算,兩次熵值之差就是該特征值的信息增益。特征值的信息增益越大,表示該特征值的重要性越高。
這里有一個(gè)前提,即,目標(biāo)變量是一個(gè)分類變量。
這里使用R語(yǔ)言代碼作個(gè)說明
一個(gè)老太太去買菜,市場(chǎng)上可供選擇的東西有以下幾種:西紅柿(1)、白菜(2)、豆腐(3)、咸菜(4)、饅頭(5)、西瓜(6)、櫻桃(7)、蘋果(8)、豬肉(10)、牛肉(11)、羊肉(12)。不給出任何其它信息之前,我們無法判斷老太太今天會(huì)買什么菜。此時(shí)熵值最大,為
install.packages("entropy")
library(entropy)
y<-c(1,2,3,4,5,6,7,8,9,10,11,12)
//使用max likehood方式計(jì)算熵值
entropy(y,method = "ML")//輸出值為:2.327497
接下來,在給出4條老太太買菜習(xí)慣的信息后,我們發(fā)現(xiàn)老太太今天只可能會(huì)買櫻桃或西瓜。
此時(shí)不確定性變小,熵值變小,為:
y<-c(6,7)
entropy(y,method = "ML")//輸出值為:0.6901857
因此,4條老太太買菜習(xí)慣的信息增閃為:2.327497-0.6901857=1.637311
Gini指數(shù)
這個(gè)指標(biāo)同信息增益原理類似,哪個(gè)特征對(duì)Gini指數(shù)貢獻(xiàn)大,哪個(gè)特征重要。
給出R語(yǔ)言實(shí)現(xiàn)
不給出任何信息時(shí),Gini指數(shù)為:
install.packages("ineq")
library(ineq)
y<-c(1,2,3,4,5,6,7,8,9,10,11,12)
Gini(y)//輸出結(jié)果為:0.3055556
給出4個(gè)買菜習(xí)慣信息后,Gini指數(shù)為:
y<-c(6,7)
Gini(y)//輸出結(jié)果為:0.03846154
相關(guān)性
數(shù)據(jù)集中的兩個(gè)特征之間存在共線性,即較強(qiáng)的線性關(guān)系,就存在冗余,在最終訓(xùn)練時(shí)只使用其中一個(gè)就足夠。
這里列出一些衡量相關(guān)性的值。
1、協(xié)方差與相關(guān)系數(shù)。
這兩個(gè)值描述的是兩個(gè)變量與各自期望值之間的誤差是否變動(dòng)一致,它們之間可以互相轉(zhuǎn)換,一般使用相關(guān)系數(shù)較多。相關(guān)系數(shù)范圍為[-1,1],其中-1代表完全負(fù)相關(guān),1代表完全正相關(guān),0代表完全獨(dú)立。
這里列出R應(yīng)用方法
//計(jì)算兩列數(shù)據(jù)之間的相關(guān)系數(shù)
cor(mtcars$cyl,mtcars$disp,method = "pearson")//輸出值為:0.9020329,表示兩列數(shù)據(jù)正相關(guān)
cor(mtcars$mpg,mtcars$disp,method = "pearson")//輸出值為:-0.8475514,表示負(fù)相關(guān)
//計(jì)算兩列數(shù)據(jù)之間的協(xié)方差
cov(mtcars$cyl,mtcars$disp,method = "pearson")//輸出值為:199.6603
cov(mtcars$mpg,mtcars$disp,method = "pearson")//輸出值為:-633.0972
method取值有三種:
pearson:適用于連續(xù)變量,如分析血壓值和年齡的相關(guān)性。
spearman:適用于順序數(shù)據(jù),如分析數(shù)學(xué)和語(yǔ)言成績(jī)排名相關(guān)性。
kendall:適用于有序分類變量,如分析疼痛級(jí)別分類和病情嚴(yán)重程序分類。
2、偏相關(guān)
當(dāng)數(shù)據(jù)集中的特征很多時(shí),兩個(gè)特征之間的相關(guān)性會(huì)受到很多其它特征的影響。在排除掉其它特征的影響之后,計(jì)算出來的兩個(gè)特征的相關(guān)性系數(shù),叫偏相關(guān)系數(shù)。
在特征z固定的前提下,分析x、y的相關(guān)性,得到的是一階偏相關(guān)系數(shù),在特征z、q固定的前提下,得到的是二階偏相關(guān)系數(shù)。
這里給出R應(yīng)用
library(ggm)
data("marks")//加載marks數(shù)據(jù)集
var(marks)//計(jì)算marks數(shù)據(jù)集的方差矩陣
//計(jì)算固定analysis,statistics時(shí),vectors和algebra的二階偏相關(guān)系數(shù)
pcor(c("vectors", "algebra", "analysis", "statistics"), var(marks))//輸出結(jié)果為:0.388203
pcor(c(2,3,4,5), var(marks))//與上一句代碼意義相同
//偏相關(guān)系數(shù)的顯著性檢驗(yàn),入?yún)⒎謩e為:偏相關(guān)系數(shù),固定變量個(gè)數(shù),樣本量
pcor.test(0.388203,2,dim(marks)[1])//輸出值p=0.0002213427,p<0.01,因此,在固定analysis,statistics時(shí),vectors和algebra兩個(gè)特征存在明顯偏相關(guān)性
Lasso
Lasso的基本思想是在回歸系數(shù)的絕對(duì)值之和小于一個(gè)常數(shù)的約束條件下,使殘差平方和最小化,從而能夠產(chǎn)生某些嚴(yán)格等于0的回歸系數(shù),達(dá)到特征選擇的目的。
這里給出R中的應(yīng)用例子
data(diabetes)//加載數(shù)據(jù)集diabetes
//使用lasso進(jìn)行特征選擇
lars(diabetes$x,diabetes$y,type="lasso")
輸出結(jié)果為:
Call:
lars(x = diabetesx,y=diabetesy)
R-squared: 0.518
Sequence of LASSO moves:
bmi ltg map hdl sex glu tc tch ldl age hdl hdl
Var 3 9 4 7 2 10 5 8 6 1 -7 7
Step 1 2 3 4 5 6 7 8 9 10 11 12
Var行即是lasso給出的特征選擇順序,Setp行即時(shí)順序編號(hào)。
以下方法可以得到各特征的多重共線性:
data<-lars(diabetes$x,diabetes$y)
summary(data)
輸出結(jié)果為:
LARS/LASSO
Call: lars(x = diabetesx,y=diabetesy)
Df Rss Cp
0 1 2621009 453.7263
1 2 2510465 418.0322
2 3 1700369 143.8012
3 4 1527165 86.7411
4 5 1365734 33.6957
5 6 1324118 21.5052
6 7 1308932 18.3270
7 8 1275355 8.8775
8 9 1270233 9.1311
9 10 1269390 10.8435
10 11 1264977 11.3390
11 10 1264765 9.2668
12 11 1263983 11.0000
按data中Step行指定的順序,依次選取特征,則Cp的值從上往下對(duì)應(yīng)變化,Cp值越小,表示回歸模型越精確。
如果我們?nèi)∏?個(gè)特征,則cp值為86.7411。如果取前7個(gè)特征,則Cp值為8.8775,達(dá)到最小。
因此,計(jì)算量允許的范圍內(nèi),取前7個(gè)特征進(jìn)行訓(xùn)練,得到的回歸模型最精確。如果要嚴(yán)格控制計(jì)算量,則取前3個(gè)特征即可。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03