RFE篩選出的特征變量竟然是Boruta的4倍之多
機(jī)器學(xué)習(xí)第21篇 - 特征遞歸消除RFE算法 理論
RFE算法實(shí)戰(zhàn)
rfe函數(shù)有 4 個(gè)關(guān)鍵參數(shù):
x: 訓(xùn)練集數(shù)值矩陣 (不包含響應(yīng)值或分類信息)y: 響應(yīng)值或分類信息向量sizes: 一個(gè)整數(shù)向量,設(shè)定需要評(píng)估的變量子集的大小。默認(rèn)是
2^(2:4)。rfeControl: 模型評(píng)估所用的方法、性能指標(biāo)和排序方式等。
一些模型有預(yù)定義的函數(shù)集可供使用,如linear regression (lmFuncs), random forests (rfFuncs), naive Bayes (nbFuncs), bagged trees (treebagFuncs)和其它可用于train函數(shù)的函數(shù)集。
# 因運(yùn)行時(shí)間長(zhǎng),故存儲(chǔ)起運(yùn)行結(jié)果供后續(xù)測(cè)試
library(caret)
if(file.exists('rda/rfe_rffuncs.rda')){
rfe <- readRDS("rda/rfe_rffuncs.rda")
} else {
subsets <- generateTestVariableSet(ncol(train_data))
# rfFuncs
control <- rfeControl(functions=rfFuncs, method="repeatedcv", number=10, repeats=5)
rfe <- rfe(x=train_data, y=train_data_group, size=subsets, rfeControl=control)
saveRDS(rfe, "rda/rfe_rffuncs.rda")
}
print(rfe, top=10)##
## Recursive feature selection
##
## Outer resampling method: Cross-Validated (10 fold, repeated 5 times)
##
## Resampling performance over subset size:
##
## Variables Accuracy Kappa AccuracySD KappaSD Selected
## 1 0.7152 0.2585 0.1740 0.3743
## 2 0.7990 0.4464 0.1595 0.4398
## 3 0.8341 0.5143 0.1342 0.4096
## 4 0.8387 0.5266 0.1362 0.4231
## 5 0.8678 0.6253 0.1359 0.4080
## 6 0.8937 0.6790 0.1285 0.4095
## 7 0.8906 0.6796 0.1320 0.4031
## 8 0.8995 0.6939 0.1175 0.3904
## 9 0.8803 0.6343 0.1309 0.4234
## 10 0.9017 0.7036 0.1186 0.3847
## 16 0.9250 0.7781 0.1066 0.3398
## 25 0.9223 0.7663 0.1151 0.3632
## 27 0.9318 0.7927 0.1094 0.3483
## 36 0.9356 0.7961 0.1123 0.3657
## 49 0.9323 0.7895 0.1128 0.3649
## 64 0.9356 0.8076 0.1123 0.3488
## 81 0.9385 0.8193 0.1083 0.3305
## 100 0.9356 0.8076 0.1123 0.3488
## 125 0.9356 0.8095 0.1123 0.3478
## 216 0.9394 0.8129 0.1149 0.3650 *
## 256 0.9361 0.8044 0.1155 0.3656
## 343 0.9219 0.7516 0.1247 0.4062
## 512 0.9288 0.7799 0.1239 0.3933
## 625 0.9266 0.7790 0.1165 0.3658
## 729 0.9252 0.7567 0.1278 0.4211
## 1000 0.9259 0.7681 0.1272 0.4077
## 1296 0.9181 0.7313 0.1250 0.4183
## 2401 0.8787 0.5666 0.1285 0.4639
## 4096 0.8787 0.5701 0.1252 0.4525
## 6561 0.8521 0.4619 0.1221 0.4510
## 7070 0.8623 0.4987 0.1268 0.4635
##
## The top 10 variables (out of 216):
## HG4074.HT4344_at, D55716_at, U63743_at, M63835_at, L42324_at, X02152_at, D31887_at, D82348_at, X17620_at, U56102_at繪制下模型的準(zhǔn)確性隨選擇的重要性變量的數(shù)目的變化
plot(rfe, type=c("g", "o"))
可以使用predictors函數(shù)提取最終選定的最小關(guān)鍵特征變量集,也可以直接從rfe對(duì)象中提取。
predictors(rfe)## [1] "HG4074.HT4344_at" "D55716_at" "U63743_at"
## [4] "M63835_at" "L42324_at" "X02152_at"
.
.
## [211] "U30872_at" "Y09392_s_at" "U21090_at"
## [214] "U17032_at" "D00763_at" "HG3075.HT3236_s_at"存儲(chǔ)起來(lái)用于跟Boruta鑒定出的特征變量比較
caretRfe_variables <- data.frame(Item=rfe$optVariables, Type="Caret_RFE")比較Boruta與RFE篩選出的特征變量的異同
Boruta篩選出的特征變量Confirmed都在RFE篩選的特征變量中,Tentative的只有1個(gè)未被RFE篩選的特征變量覆蓋。
vairables <- rbind(boruta.finalVars, boruta.finalVarsWithTentative, caretRfe_variables)
library(VennDiagram)
library(ImageGP)
sp_vennDiagram2(vairables, item_variable = "Item", set_variable = "Type", manual_color_vector ="Set1")
這些特征變量最終用于評(píng)估模型的效果怎樣呢? 下期分曉!
機(jī)器學(xué)習(xí)系列教程
從隨機(jī)森林開(kāi)始,一步步理解決策樹(shù)、隨機(jī)森林、ROC/AUC、數(shù)據(jù)集、交叉驗(yàn)證的概念和實(shí)踐。
文字能說(shuō)清的用文字、圖片能展示的用、描述不清的用公式、公式還不清楚的寫(xiě)個(gè)簡(jiǎn)單代碼,一步步理清各個(gè)環(huán)節(jié)和概念。
再到成熟代碼應(yīng)用、模型調(diào)參、模型比較、模型評(píng)估,學(xué)習(xí)整個(gè)機(jī)器學(xué)習(xí)需要用到的知識(shí)和技能。
機(jī)器學(xué)習(xí)算法-隨機(jī)森林之決策樹(shù)R 代碼從頭暴力實(shí)現(xiàn)(2)
機(jī)器學(xué)習(xí)算法-隨機(jī)森林之決策樹(shù)R 代碼從頭暴力實(shí)現(xiàn)(3)
機(jī)器學(xué)習(xí)第21篇 - 特征遞歸消除RFE算法 理論
