更多特征变量却未能带来随机森林分类效果的提升
评估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)
机器学习算法-随机森林之决策树R 代码从头暴力实现(2)
机器学习算法-随机森林之决策树R 代码从头暴力实现(3)
机器学习算法-随机森林之理论概述
随机森林拖了这么久,终于到实战了。先分享很多套用于机器学习的多种癌症表达数据集 https://file.biolab.si/biolab/supp/bi-cancer/projections/。
机器学习算法-随机森林初探(1)
机器学习 模型评估指标 - ROC曲线和AUC值
机器学习 - 训练集、验证集、测试集
机器学习 - 随机森林手动10 折交叉验证
一个函数统一238个机器学习R包,这也太赞了吧
基于Caret和RandomForest包进行随机森林分析的一般步骤 (1)
Caret模型训练和调参更多参数解读(2)
机器学习相关书籍分享
基于Caret进行随机森林随机调参的4种方式
送你一个在线机器学习网站,真香!
UCI机器学习数据集
机器学习第17篇 - 特征变量筛选(1)
机器学习第18篇 - 基于随机森林的Boruta特征变量筛选(2)
机器学习系列补充:数据集准备和更正YSX包
机器学习第20篇 - 基于Boruta选择的特征变量构建随机森林
机器学习第21篇 - 特征递归消除RFE算法 理论
RFE筛选出的特征变量竟然是Boruta的4倍之多
更多特征变量却未能带来随机森林分类效果的提升相关推荐
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者...
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- GEE:随机森林分类教程(样本制作、特征添加、训练、精度、参数优化、贡献度、统计面积)
作者: _养乐多_ 本文将介绍在Google Earth Engine (GEE)平台上进行随机森林分类的方法和代码,其中包括制作样本点教程(本地.在线和本地在线混合制作样本点,合并样本点等),加入特 ...
- Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjal ...
- python 随机森林分类 DecisionTreeClassifier 随机搜索优化参数 GridSearchCV
@python 随机森林分类模型 随机优化参数 学习笔记 随机森林 1.随机森林模型 随机森林算法是基于决策树算法的Begging优化版本,通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策 ...
- 随机森林分类算法python代码_Python机器学习笔记:随机森林算法
随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...
- GEE东拼西凑之随机森林分类
这里记录一下使用landsat5做随机森林分类的代码,理一下思路.很多内容都是到处找教程东拼西凑的,十分感谢各位大佬. 导入研究区.制作标签 首先加载研究区边界,查看需要分类时间的原影像.在影像上添加 ...
- 随机森林分类算法python代码_独家 | 一文读懂随机森林的解释和实现(附python代码)...
作者:William Koehrsen 翻译:和中华 校对:李润嘉 本文约6000字,建议阅读15分钟. 本文从单棵决策树讲起,然后逐步解释了随机森林的工作原理,并使用sklearn中的随机森林对某个 ...
- 数学建模_随机森林分类模型详解Python代码
数学建模_随机森林分类模型详解Python代码 随机森林需要调整的参数有: (1) 决策树的个数 (2) 特征属性的个数 (3) 递归次数(即决策树的深度)''' from numpy import ...
- Python 随机森林分类
Python 随机森林分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 决策树分类简介 相关概念见下: 决策树的最大问题是 ...
最新文章
- Google Brain 研究员梁辰:从零开始搜索机器学习算法(附视频、PPT)
- Python教程:列表推导式和嵌套的列表推导式讲解
- Java Script 第十节课 Java Script的for循环练习。
- 软件常用版本英文snapshot和ga
- 前端开发掌握nginx常用功能之rewrite
- Serverless 实战 —— 基于 Serverless 的 VuePress 极简静态网站
- 广度优先搜索(BFS)——马的遍历(洛谷 P1443)
- java输出各国人的问候语_世界各国问候语及发音.doc
- c++ string 长度限制_面试中要会的String相关问题
- java arraylist6_java 集合 ArrayList
- ppsspp模拟java按键_ppsspp 手柄按键映射 北通 BTP
- 用网页做触摸屏展示的设计要点
- ecshop ectouch 不支持html,ECShop上传的商品图片在ECTouch不能显示,怎么解决
- MD5及pack安装
- linux177端口怎么打开,AIX5.3,如何使用xmanager管理?177端口打不开的相关推荐_ChinaUnix论坛...
- word2vec模型保存为npy文件 clh
- 微分方程matlab绘图,用matlab解微分方程组并作图
- 人生如烟花,只要曾经绚烂过,便不枉此生
- 计算机word中的行间距在哪里设置,word怎么把所有行间距设置成22磅
- PX4 FMU启动流程 2. 一、 nsh_newconsole