机器学习第21篇 - 特征递归消除RFE算法 理论

RFE算法实战

rfe函数有 4 个关键参数:

  • x: 训练集数值矩阵 (不包含响应值或分类信息)

  • y: 响应值或分类信息向量

  • sizes: 一个整数向量,设定需要评估的变量子集的大小。

    默认是2^(2:4)

  • rfeControl: 模型评估所用的方法、性能指标和排序方式等。

一些模型有预定义的函数集可供使用,如linear regression (lmFuncs), random forests (rfFuncs), naive Bayes (nbFuncs), bagged trees (treebagFuncs)和其它可用于train函数的函数集。

# 因运行时间长,故存储起运行结果供后续测试
library(caret)
if(file.exists('rda/rfe_rffuncs.rda')){rfe <- readRDS("rda/rfe_rffuncs.rda")
} else {subsets <- generateTestVariableSet(ncol(train_data))# rfFuncscontrol <- 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

绘制下模型的准确性随选择的重要性变量的数目的变化

plot(rfe, type=c("g", "o"))

可以使用predictors函数提取最终选定的最小关键特征变量集,也可以直接从rfe对象中提取。

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"

存储起来用于跟Boruta鉴定出的特征变量比较

caretRfe_variables <- data.frame(Item=rfe$optVariables, Type="Caret_RFE")

比较Boruta与RFE筛选出的特征变量的异同

Boruta筛选出的特征变量Confirmed都在RFE筛选的特征变量中,Tentative的只有1个未被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")

这些特征变量最终用于评估模型的效果怎样呢? 下期分晓!

机器学习系列教程

从随机森林开始,一步步理解决策树、随机森林、ROC/AUC、数据集、交叉验证的概念和实践。

文字能说清的用文字、图片能展示的用、描述不清的用公式、公式还不清楚的写个简单代码,一步步理清各个环节和概念。

再到成熟代码应用、模型调参、模型比较、模型评估,学习整个机器学习需要用到的知识和技能。

  1. 机器学习算法 - 随机森林之决策树初探(1)

  2. 机器学习算法-随机森林之决策树R 代码从头暴力实现(2)

  3. 机器学习算法-随机森林之决策树R 代码从头暴力实现(3)

  4. 机器学习算法-随机森林之理论概述

  5. 随机森林拖了这么久,终于到实战了。先分享很多套用于机器学习的多种癌症表达数据集 https://file.biolab.si/biolab/supp/bi-cancer/projections/。

  6. 机器学习算法-随机森林初探(1)

  7. 机器学习 模型评估指标 - ROC曲线和AUC值

  8. 机器学习 - 训练集、验证集、测试集

  9. 机器学习 - 随机森林手动10 折交叉验证

  10. 一个函数统一238个机器学习R包,这也太赞了吧

  11. 基于Caret和RandomForest包进行随机森林分析的一般步骤 (1)

  12. Caret模型训练和调参更多参数解读(2)

  13. 机器学习相关书籍分享

  14. 基于Caret进行随机森林随机调参的4种方式

  15. 送你一个在线机器学习网站,真香!

  16. UCI机器学习数据集

  17. 机器学习第17篇 - 特征变量筛选(1)

  18. 机器学习第18篇 - 基于随机森林的Boruta特征变量筛选(2)

  19. 机器学习系列补充:数据集准备和更正YSX包

  20. 机器学习第20篇 - 基于Boruta选择的特征变量构建随机森林

  21. 机器学习第21篇 - 特征递归消除RFE算法 理论

RFE筛选出的特征变量竟然是Boruta的4倍之多相关推荐

  1. 向前logistic回归与向后筛选出一样的变量_风控建模之特征筛选与建模(python)...

    特征筛选 在建模之前的一步就是将特征工程做好的变量进行筛选,在风控项目中筛选分为两步:初步筛选.逐步回归筛选以及稳定性筛选. 初步筛选 通常评分卡模型的特征筛选主要从以下4个角度出发: 缺失率(一般变 ...

  2. 向前logistic回归与向后筛选出一样的变量_什么泊松分布?泊松回归又能做什么?...

    之前的文章中我们介绍过最常用的--线性回归:数据不满足线性关系时可以使用的--曲线回归:当Y为定类数据时使用的--Logistic回归等.还有一些专门用来解决回归分析中出现的种种问题的回归方法,如解决 ...

  3. 向前logistic回归与向后筛选出一样的变量_了解逻辑回归系数

    或者以更好的方式根据证据考虑概率 Photo by Franki Chamaki on Unsplash Logistic回归存在一个普遍的挫败感:系数难以解释. 如果您使用Logistic回归模型, ...

  4. 更多特征变量却未能带来随机森林分类效果的提升

    评估RFE变量筛选过程中构建的最终模型的效果 最终拟合的模型可通过rfe$fit获取,用于后续预测分析. library(randomForest) rfe$fit ## ## Call: ## ra ...

  5. 机器学习第18篇 - Boruta特征变量筛选(2)

    前面(机器学习第17篇 - 特征变量筛选(1))评估显示Boruta在生物数据中具有较高的特征变量选择准确度,下面就具体看下如何应用Boruta进行特征变量选择. Boruta算法概述 Boruta得 ...

  6. 实操|特征变量多重共线性的分析与检验(含代码)

    对于Linear回归.Logistic回归等线性模型来讲,特征变量的多重共线性是衡量模型性能的一个重要维度.因此,如何有效识别并解决模型特征的多重共线性问题,是实际业务场景建立线性模型过程的必要环节. ...

  7. 【天池基础知识】 - 查看特征变量的相关性(计算相关性系数+画出热力图+筛选特征变量+Box-Cox变换)

    文章目录 1.计算相关性系数 2.画出热力图 3.筛选特征变量 4.Box-Cox变换 1.计算相关性系数 使用函数corr() 代码展示: train_corr = train_data.corr( ...

  8. 绘制近红外光谱特征选择筛选出的变量分布图

    这里写自定义目录标题 绘制近红外光谱特征选择筛选出的变量分布图(特征波长图) 用python绘制变量分布图 用MATLAB绘制特征波长图 绘制近红外光谱特征选择筛选出的变量分布图(特征波长图) 在近红 ...

  9. 机器学习第20篇 - 基于Boruta选择的特征变量构建随机森林

    前面机器学习第18篇 - Boruta特征变量筛选(2)已经完成了特征变量筛选,下面看下基于筛选的特征变量构建的模型准确性怎样? 定义一个函数生成一些列用来测试的mtry (一系列不大于总变量数的数值 ...

最新文章

  1. php导包,Thinkphp5.1 导入第三方包的问题
  2. vimdiff使用总结
  3. image_thumb1
  4. Win64 驱动内核编程-22.SHADOW SSDT HOOK(宋孖健)
  5. 视频 + PPT | 打开用户标签 “五扇门”,高效赋能银行业数字化运营
  6. #用construct2做游戏
  7. 除了工作怎么交朋友_夫妻感情不好怎么办?夫妻关系紧张该如何解决?
  8. python 机器学习_基于 Python 语言的机器学习工具Sklearn
  9. 如何绘制业务架构图 — 3.分解图
  10. java jexl 工具类_jexl表达式解析、计算工具类.md
  11. CuteChat for Community Server 2.0 beta 3!
  12. python在化学中的应用_用Python配平化学方程式的方法
  13. 微信小游戏开发(11)-文件系统
  14. 平滑阴影blender_【Blender笔记】简单的创建一个平平无奇的石头
  15. 主板检测卡c5_主板检测卡代码(常见)及解决方法
  16. DNF调整建议与新团本策划
  17. 电芯容量在前期循环中容量增加_锂电池随着使用次数增加而最大容量下降,为什么...
  18. sumo学习——sumo的路网介绍
  19. 计算机性能和拷机软件
  20. 多“维”优化——前端高并发策略的更深层思考

热门文章

  1. 作者:余超(1993-),男,作者:华东政法大学民商法学硕士生,主要研究方向为民商法。...
  2. 作者:郑纬民,男,清华大学教授、博士生导师,中国计算机学会理事长。
  3. 【数据库系统】SQL查询的注意事项
  4. 【Java】《基于Java的面向对象范式》学习笔记分享
  5. 【XML】Java对象数据的XML和JSON表示
  6. 基本不等式解决乘积最大问题(洛谷P1887题题解,Java语言描述)
  7. 【IntelliJ IDEA】使用idea解决新建jsp文件而找不到jsp文件模版的新建选项
  8. ERP软件的追加开发环节存在特殊价值
  9. Facebook在欧洲推出网络极端内容与仇恨言论打压行动
  10. 程序员愤怒了:我们不仅要当管理者还要当CEO!