RFE筛选出的特征变量竟然是Boruta的4倍之多-程序员宅基地

技术标签: 算法  机器学习  深度学习  决策树  数据挖掘  

机器学习第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))
  # 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

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

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算法 理论

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qazplm12_3/article/details/114422293

智能推荐

Pytorch加载本地自己整理好的cifar10或cifar100数据集,并进行训练_cifar100 pytorch-程序员宅基地

文章浏览阅读6.7k次,点赞11次,收藏49次。Pytorch加载本地自己整理好的cifar10数据集,并进行训练这里写自定义目录标题1.下载数据集2.解压3.复制移动4.修改tv.datasets.CIFAR10源码使用pytorch在线下载cifar10数据集时,经常报错,而且很慢,倘若下载cifar100,那等待时间可想而知了。为了不浪费时间等待,可以将数据集先下载到本地,在自行加载,下面介绍一种修改源码简单的方法。1.下载数据集(随意下载,官网地址:http://www.cs.toronto.edu/~kriz/cifar-10-pytho_cifar100 pytorch

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

这些问题标志着我后续研究的重点方向,需要我继续深入学习AVFoundation框架的使用,特别是其控制摄像头的具体方法,并探索如何将这些控制整合到机械臂的运动调整中,以确保最终拍摄出的视频质量符合预期。尽管目前市场上有许多稳定设备如平衡环架(gimbal)来辅助拍摄,以求达到稳定和多角度的拍摄效果,但在此篇文章中,我将探索一种独特的解决方案:通过将手机安装在机械臂的末端来进行拍摄,以实现那些传统方法难以捕捉的特殊视角。随着人工智能技术的不断进步和普及,AI与机器人的结合无疑将成为未来技术发展的重要趋势。

【计算机毕业设计】springboot党员之家服务系统小程序-程序员宅基地

文章浏览阅读342次,点赞6次,收藏8次。党员之家服务系统小程序的功能已基本实现,主要包括首页、个人中心、学生管理、教师管理、任务信息管理、报名信息管理、任务排名管理、学习资料管理、每日打卡管理、交流信息管理、回复信息管理、积极分子管理、党员信息管理、交流论坛、系统管理等。论文主要从系统的分析与设计 、数据库设计和系统的详细设计等几个方面来进行论述,系统分析与设计部分主要论述了系统的功能分析、系统的设计思路,数据库设计主要论述了数据库的设计,系统的详细设计部分主要论述了几个主要模块的详细设计过程。

Failed to discover available identity versions when contacting http://controller:35357/v3. 错误解决方式_caused by newconnectionerror('<urllib3.connection.-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏12次。作为 admin 用户,请求认证令牌,输入如下命令openstack --os-auth-url http://controller:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue报错Failed to discover available identity versions whe._caused by newconnectionerror('

学校机房统一批量安装软件的方法来了_教室电脑 一起装软件-程序员宅基地

文章浏览阅读4.5k次。​可以在桌面安装云顷还原系统软件,利用软件中的网络对拷功能部署批量对拷环境,进行电脑教室软件的批量对拷安装与增量对拷安装。​_教室电脑 一起装软件

消息队列(kafka/nsq等)与任务队列(celery/ytask等)到底有什么不同?_任务队列和消息队列-程序员宅基地

文章浏览阅读3.1k次,点赞5次,收藏7次。原文链接:https://www.ikaze.cn/article/43写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在和同事介绍celery时同事说了一句“这不就是kafka吗?”。那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一..._任务队列和消息队列

随便推点

rsync+inotify实现NFS实时同步数据以及压力测试_centos6.5 rsync ino-程序员宅基地

文章浏览阅读1.2k次。1第一步:搭建NFS服务器关于NFS服务器的搭建请参考http://blog.csdn.net/qq_30256711/article/details/78463940第二步:rsync同步实现关于rsync同步请参考http://blog.csdn.net/qq_30256711/article/details/78539342第三步:inotify结合rsync实现实时同步_centos6.5 rsync ino

第11章 软件工程

2.可重复级:建立了基本的项目管理过程和实践来跟踪项目费用,进度,功能特性。5.优化级:加强了定量分析,通过过程质量反馈,新观念,新技术的反馈。1.初始级:软件过程杂乱无章,没有明确定义的步骤,英雄式核心人物。定量管理(CL4):已定量管理的过程的制度化。已管理(CL2):已管理的过程的制度化。已定义(CL3):已定义的过程的制度化。3.已定义级:过程文档化,标准化。4.已管理级:软件过程和产品质量。定量管理的:已度量和控制。优化的:集中于过程改进。已管理的:为项目服务。已定义的:为组织服务。

论文阅读--Search to Distill

标准的知识蒸馏(KD)方法将笨重的教师模型的知识蒸馏到具有预定义架构的学生模型的参数中。然而,神经网络的知识,即网络在给定输入条件下的输出分布,不仅取决于其参数,还取决于其架构。因此,对于KD的一种更广义的方法是将教师的知识蒸馏到学生的参数和架构中。为了实现这一点,我们提出了一种新的基于架构的知识蒸馏(AKD)方法,该方法找到最适合蒸馏给定教师模型的学生模型(对于教师来说是珍珠)。具体来说,我们利用带有我们的KD引导奖励的神经架构搜索(NAS)来搜索最适合给定教师模型的学生架构。

Docker知识点汇总表格总结

Docker知识比较全面的总结,使用表格总结结合示例,一目了然,运维参考以及面试参考皆可

Matplotlib.pyplot库引入失败?_如何导入 matplotlib.pyplot 导入失败-程序员宅基地

文章浏览阅读174次。用Python的人总少不了与Matplotlib接触,可是我们在引入时Python少不了报错。此时,我们就需要在错误中寻找线索。_如何导入 matplotlib.pyplot 导入失败

uni-app,uni-table表格操作_uniapp table-程序员宅基地

文章浏览阅读8.5k次,点赞2次,收藏11次。使用uni-ui UI框架实现表格加分页功能,uni-table 和uni-pagination 组件的使用示例加完整代码。_uniapp table

推荐文章

热门文章

相关标签