评估RFE变量筛选过程中构建的最终模型的效果

最终拟合的模型可通过rfe$fit获取,用于后续预测分析。

library(randomForest)
rfe$fit
##
## Call:
##  randomForest(x = x, y = y, importance = TRUE)
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 14
##
##         OOB estimate of  error rate: 5.08%
## Confusion matrix:
##       DLBCL FL class.error
## DLBCL    43  1  0.02272727
## FL        2 13  0.13333333

但此模型没有进行调参。虽然用的变量多了,但预测效果没有比Boruta筛选的特征变量结果好。P-Value [Acc > NIR] : 0.2022不显著。

# 获得模型结果评估矩阵(`confusion matrix`)predictions <- predict(rfe$fit, newdata=test_data)
confusionMatrix(predictions, test_data_group)
## Confusion Matrix and Statistics
##
##           Reference
## Prediction DLBCL FL
##      DLBCL    14  2
##      FL        0  2
##
##                Accuracy : 0.8889
##                  95% CI : (0.6529, 0.9862)
##     No Information Rate : 0.7778
##     P-Value [Acc > NIR] : 0.2022
##
##                   Kappa : 0.6087
##
##  Mcnemar's Test P-Value : 0.4795
##
##             Sensitivity : 1.0000
##             Specificity : 0.5000
##          Pos Pred Value : 0.8750
##          Neg Pred Value : 1.0000
##              Prevalence : 0.7778
##          Detection Rate : 0.7778
##    Detection Prevalence : 0.8889
##       Balanced Accuracy : 0.7500
##
##        'Positive' Class : DLBCL
##

基于RFE选择的特征变量再次调参构建模型

# 提取训练集的特征变量子集
rfe_train_data <- train_data[, caretRfe_variables$Item]
rfe_mtry <- generateTestVariableSet(length(caretRfe_variables$Item))

使用 Caret 进行调参和建模

library(caret)
# Create model with default parameters
trControl <- trainControl(method="repeatedcv", number=10, repeats=5)# train model
if(file.exists('rda/rfeVariable_rf_default.rda')){rfeVariable_rf_default <- readRDS("rda/rfeVariable_rf_default.rda")
} else {# 设置随机数种子,使得结果可重复seed <- 1set.seed(seed)# 根据经验或感觉设置一些待查询的参数和参数值tuneGrid <- expand.grid(mtry=rfe_mtry)rfeVariable_rf_default <- train(x=rfe_train_data, y=train_data_group, method="rf", tuneGrid = tuneGrid, # metric="Accuracy", #metric='Kappa'trControl=trControl)saveRDS(rfeVariable_rf_default, "rda/rfeVariable_rf_default.rda")
}
print(rfeVariable_rf_default)
## Random Forest
##
##  59 samples
## 216 predictors
##   2 classes: 'DLBCL', 'FL'
##
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 5 times)
## Summary of sample sizes: 53, 53, 54, 53, 53, 54, ...
## Resampling results across tuning parameters:
##
##   mtry  Accuracy   Kappa
##     1   0.9802857  0.9459213
##     2   0.9707619  0.9091146
##     3   0.9600952  0.8725321
##     4   0.9554286  0.8405432
##     5   0.9599048  0.8612016
##     6   0.9525714  0.8326301
##     7   0.9572381  0.8642968
##     8   0.9492381  0.8242968
##     9   0.9492381  0.8242968
##    10   0.9492381  0.8242968
##    16   0.9492381  0.8242968
##    25   0.9492381  0.8242968
##    27   0.9463810  0.8160615
##    36   0.9492381  0.8242968
##    49   0.9492381  0.8242968
##    64   0.9425714  0.8042968
##    81   0.9363810  0.7874901
##   100   0.9397143  0.7960615
##   125   0.9311429  0.7713556
##
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was mtry = 1.

结果还是不显著P-Value [Acc > NIR]>0.05。效果弱于Boruta筛选出的特征变量构建的模型。

# 获得模型结果评估矩阵(`confusion matrix`)predictions <- predict(rfeVariable_rf_default, newdata=test_data)
confusionMatrix(predictions, test_data_group)
## Confusion Matrix and Statistics
##
##           Reference
## Prediction DLBCL FL
##      DLBCL    14  2
##      FL        0  2
##
##                Accuracy : 0.8889
##                  95% CI : (0.6529, 0.9862)
##     No Information Rate : 0.7778
##     P-Value [Acc > NIR] : 0.2022
##
##                   Kappa : 0.6087
##
##  Mcnemar's Test P-Value : 0.4795
##
##             Sensitivity : 1.0000
##             Specificity : 0.5000
##          Pos Pred Value : 0.8750
##          Neg Pred Value : 1.0000
##              Prevalence : 0.7778
##          Detection Rate : 0.7778
##    Detection Prevalence : 0.8889
##       Balanced Accuracy : 0.7500
##
##        'Positive' Class : DLBCL
##

机器学习系列教程

从随机森林开始,一步步理解决策树、随机森林、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算法 理论

  22. RFE筛选出的特征变量竟然是Boruta的4倍之多

更多特征变量却未能带来随机森林分类效果的提升相关推荐

  1. 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者...

    python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...

  2. GEE:随机森林分类教程(样本制作、特征添加、训练、精度、参数优化、贡献度、统计面积)

    作者: _养乐多_ 本文将介绍在Google Earth Engine (GEE)平台上进行随机森林分类的方法和代码,其中包括制作样本点教程(本地.在线和本地在线混合制作样本点,合并样本点等),加入特 ...

  3. Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjal ...

  4. python 随机森林分类 DecisionTreeClassifier 随机搜索优化参数 GridSearchCV

    @python 随机森林分类模型 随机优化参数 学习笔记 随机森林 1.随机森林模型 随机森林算法是基于决策树算法的Begging优化版本,通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策 ...

  5. 随机森林分类算法python代码_Python机器学习笔记:随机森林算法

    随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...

  6. GEE东拼西凑之随机森林分类

    这里记录一下使用landsat5做随机森林分类的代码,理一下思路.很多内容都是到处找教程东拼西凑的,十分感谢各位大佬. 导入研究区.制作标签 首先加载研究区边界,查看需要分类时间的原影像.在影像上添加 ...

  7. 随机森林分类算法python代码_独家 | 一文读懂随机森林的解释和实现(附python代码)...

    作者:William Koehrsen 翻译:和中华 校对:李润嘉 本文约6000字,建议阅读15分钟. 本文从单棵决策树讲起,然后逐步解释了随机森林的工作原理,并使用sklearn中的随机森林对某个 ...

  8. 数学建模_随机森林分类模型详解Python代码

    数学建模_随机森林分类模型详解Python代码 随机森林需要调整的参数有: (1) 决策树的个数 (2) 特征属性的个数 (3) 递归次数(即决策树的深度)''' from numpy import ...

  9. Python 随机森林分类

    Python 随机森林分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 决策树分类简介 相关概念见下: 决策树的最大问题是 ...

最新文章

  1. Google Brain 研究员梁辰:从零开始搜索机器学习算法(附视频、PPT)
  2. Python教程:列表推导式和嵌套的列表推导式讲解
  3. Java Script 第十节课 Java Script的for循环练习。
  4. 软件常用版本英文snapshot和ga
  5. 前端开发掌握nginx常用功能之rewrite
  6. Serverless 实战 —— 基于 Serverless 的 VuePress 极简静态网站
  7. 广度优先搜索(BFS)——马的遍历(洛谷 P1443)
  8. java输出各国人的问候语_世界各国问候语及发音.doc
  9. c++ string 长度限制_面试中要会的String相关问题
  10. java arraylist6_java 集合 ArrayList
  11. ppsspp模拟java按键_ppsspp 手柄按键映射 北通 BTP
  12. 用网页做触摸屏展示的设计要点
  13. ecshop ectouch 不支持html,ECShop上传的商品图片在ECTouch不能显示,怎么解决
  14. MD5及pack安装
  15. linux177端口怎么打开,AIX5.3,如何使用xmanager管理?177端口打不开的相关推荐_ChinaUnix论坛...
  16. word2vec模型保存为npy文件 clh
  17. 微分方程matlab绘图,用matlab解微分方程组并作图
  18. 人生如烟花,只要曾经绚烂过,便不枉此生
  19. 计算机word中的行间距在哪里设置,word怎么把所有行间距设置成22磅
  20. PX4 FMU启动流程 2. 一、 nsh_newconsole

热门文章

  1. Visio——软件工程实验贰——面向对象软件设计方法
  2. 【软件质量】软件可移植性
  3. 【数据库系统】管理持久对象的模式
  4. 【数据结构与算法】图结构最小生成树Kruskal算法的Java实现
  5. 命名实体识别以及词性自动标注
  6. 当Elasticsearch遇见智能客服机器人
  7. 推荐一个比FiddlerCore好用的HTTP(S)代理服务器
  8. Node.js小Httpserver
  9. onbeforeunload与onunlond的区别
  10. 中文网页重设与排版:TYPO.CSS