关于随机森林的简介和应用理论,请阅读之前分享的文章:

  • 一文读懂随机森林在微生态中的应用

关于随机森林进行分类的入门实战,请阅读之前分享的

  • 《RandomForest:随机森林预测生物标记biomarker——分类》,

大家可以学习此文,实现分组挖掘两组或多组的特异Features,也可以展示特征的贡献度,获得分类评估的准确度,以及使用新数据进行预测,无监督的随机森林等基础技能。

今天我们讲使用randomForest实现回归分析的实战代码。回归的应用主要包括时间序列预测模式,如预测股票、尸体死亡时间等。

本节不需要先验知识可也直接学习使用。

RandomForest安装与加载

# 安装
install.packages("randomForest")
# 加载
library(randomForest)

回归Classification

先了解一下输入数据格式,方便准备

使用R内置按天记录的空气质量数据

data(airquality)
head(airquality)

数据包括157天中,臭氧、太阳强度、风和温度,部分有缺失。前4列属性数据,后2列时间月和日为分组数据。

  Ozone Solar.R Wind Temp Month Day
1    41     190  7.4   67     5   1
2    36     118  8.0   72     5   2
3    12     149 12.6   74     5   3
4    18     313 11.5   62     5   4
5    NA      NA 14.3   56     5   5
6    28      NA 14.9   66     5   6

设置随机数种子保证结果可重复

set.seed(315)

随机森林回归臭氧与其它所有属性

ozone.rf= randomForest(Ozone ~ ., data=airquality, mtry=3,importance=TRUE, na.action=na.omit)
print(ozone.rf)

结果如下:包括分析的命令,分析类型,树数量,重要的变量(Feature)个数,平均残差平方,解析率。

    Call:randomForest(formula = Ozone ~ ., data = airquality, mtry = 3,      importance = TRUE, na.action = na.omit)Type of random forest: regressionNumber of trees: 500
No. of variables tried at each split: 3Mean of squared residuals: 304.4269% Var explained: 72.26

查看每个变量的分类贡献度,显示仅保留两位小数可读性更好

round(importance(ozone.rf), 2)%IncMSE IncNodePurity
Solar.R   10.40      10833.08
Wind      23.55      43838.66
Temp      47.13      53731.95
Month      2.04       1504.72
Day        0.91       6306.42

结果为每个相关变量对应两列值。%IncMSE是Increased in mean squared error (%),直译为增长的错误率平方均值,即去除该变量后,对目标预测的准确度下降的低,可理解为对目标变量预测准确的贡献度。IncNodePurity是Increased node purity,是另一种评估的方法。这里我们只关注%IncMSE就够了。

varImpPlot(ozone.rf)  

交叉验证cross-validation

# 先清空NA的样本,验证不允许有NA
airquality = na.omit(airquality)
myairquality= cbind(airquality[1:6], matrix(runif(96 * nrow(airquality)), nrow(airquality), 96))
# 交驻验证添加了随机数的训练集,分组,交叉验证的次数
result= rfcv(myairquality, airquality$Ozone, cv.fold=3)# 绘制错误率曲线,观查错误率与使用Markers数量的变化
with(result, plot(n.var, error.cv, log="x", type="o", lwd=2))


我们看到一个现象,不是feature越多越好,无关的feature如果多了,反而错误率上升,会影响预测的准确度。

# 使用replicate进行多次交叉验证,可选
result= replicate(5, rfcv(myairquality, airquality$Ozone), simplify=FALSE)
error.cv= sapply(result, "[[", "error.cv")
matplot(result[[1]]$n.var, cbind(rowMeans(error.cv), error.cv), type="l",lwd=c(2, rep(1, ncol(error.cv))), col=1, lty=1, log="x",xlab="Number of variables", ylab="CV Error")

多次验证结果类型,更能说明结果的可信度。

严谨总没有坏处,好的结果都是多角度证明的。

大家学习随机森林的分类、和回归。将来有时间,将带大家上手重复一些高水平文章中的分析,结合具体生物学问题会更有意思。

猜你喜欢

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

系列教程:微生物组入门 Biostar 微生物组  宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

一文读懂:宏基因组 寄生虫益处 进化树

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

扩增子分析:图表解读 分析流程 统计绘图

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

在线工具:16S预测培养基 生信绘图

科研经验:云笔记  云协作 公众号

编程模板: Shell  R Perl

生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

随机森林RandomForest回归生物标记预测时间序列相关推荐

  1. 随机森林RandomForest挖掘生物标记预测分类

    随机森林简介 如果读者接触过决策树(Decision Tree)的话,那么会很容易理解什么是随机森林.随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习 ...

  2. 随机森林(randomForest)和极限树或者叫做极端随机树(extraTree),

    随机森林:是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定.,随机森林对回归的结果在内部是取得平均 但是并不是所有的回归都是取的平均,有些是取的和,以后会发博文来解释这样 ...

  3. kaggle项目:基于随机森林模型的心脏病患者预测分类!

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 新年的第一个项目实践~给大家分享一个新的kaggle案例:基于随机森林模型(RandomForest)的心脏病人预测分类 ...

  4. 《scikit-learn》随机森林之回归

    今天我们学习下随机森林做回归的用法 话不多说直接上测试代码,看的更加清晰,总体上和回归树是一样的使用流程 from sklearn.datasets import load_boston from s ...

  5. sklearn的随机森林实现泰坦尼克号旅客生存预测

    sklearn的随机森林实现泰坦尼克号旅客生存预测 介绍 数据集介绍 算法 学习器 分类器 实现 数据下载与导入 预处理 建立模型 评估,预测 结果 代码 介绍 参考资料: https://wenku ...

  6. 动手实操丨基于随机森林算法进行硬盘故障预测

    摘要:业界期望使用机器学习技术来构建硬盘故障预测的模型,更准确地提前感知硬盘故障,降低运维成本,提升业务体验.本案例将使用随机森林算法来训练一个硬盘故障预测模型. 本文分享自华为云社区<基于随机 ...

  7. 利用随机森林算法实现Bank风险预测

    利用随机森林算法实现Bank风险预测 源码分享及数据集分享:https://github.com/luo948521848/BigDatas 在机器学习中,随机森林是一个包含多个决策树的分类器, 并且 ...

  8. 基于随机森林算法进行硬盘故障预测

    摘要:本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法,来训练一个硬盘故障预测模型,并测试效果. 本文分享自华为云社区<基于随机森林算法进行硬盘故障预测>, ...

  9. 随机森林-RandomForest

    http://www.36dsj.com/archives/32820 简介 近年来,随机森林模型在界内的关注度与受欢迎程度有着显著的提升,这多半归功于它可以快速地被应用到几乎任何的数据科学问题中去, ...

最新文章

  1. java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...
  2. Java IO流学习总结七:Commons IO 2.5-FileUtils
  3. kerberos安装配置、配置kerberos server、client、日常操作与常见问题、卸载kerberos、hive整合kerberos
  4. 检测IP地址的正则表达式
  5. 软件工程之中期学习总结
  6. linux无线网卡连不上网,Ubuntu 16.04无线网卡不见,无法用WiFi上网的解决方法
  7. 4.2创建自定义Spring Boot自动配置Starter
  8. USB学习笔记--USB枚举过程
  9. 我国政务大数据政策的文本分析:推进逻辑与未来进路
  10. c++-密码生成小程序
  11. myeclipse安装插件phpeclipse后进行PHP代码编写
  12. 什么情况下,英文单词中的k发音变g,t发音变d,p发音变b
  13. python多线程抢红包代码_python实现的抢红包程序代码
  14. vue {{}}中小数保留几位小数的toFixed(小数位数)方法
  15. ChatGPT爆火出圈,高质量文本标注数据成关键
  16. 微星z370安装linux系统,在MSI z370主板上安装win7和BIOS设置的详细教程
  17. 视频信号指标与测试方法
  18. 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架
  19. 硬件设计学习笔记---第一季第一集
  20. 【第二趴】uni-app开发工具(手把手带你安装HBuilderX、搭建第一个多端项目初体验)

热门文章

  1. Git 分支设计规范
  2. JVM内存结构、内存模型 、对象模型那些事
  3. 推荐8个特别实用、功能强大的软件,解决痛点需求
  4. 换个角度聊系统稳定性建设(2021版)
  5. 从DDD看企业级问题解决方案框架
  6. jquery按钮禁用(全)
  7. Find函数使用语法
  8. 替换空格---StringBuilder
  9. windows opensshd 连接就close_基于Windows白名单执行Payload上线Metasploit 渗透红队笔记...
  10. python开发企业管理平台_我的第一个python web开发框架(34)——后台管理系统权限设计...