第 54 课

随机森林模型

课程讲义导读 · 聚焦本课核心概念、分析流程与复现要点

说明:本页适合用于快速回顾本课重点、关键步骤与常用示例。

主讲老师第五十四课:随机森林模型

在临床模型,以及机器学习中,除了常用的 LASSO 模型,还有许多经典的模型方法,作为其好朋友,随机森林(randomforest.zip)首当其冲,更是一种大家耳熟能详的模型构建方法。所谓随机森林,Random Forest,是一个包含多个决策树的分类器,分析时,该分析方法在划分属性时引入了随机因素,同时,其输出结果的类型是由所有决策树输出类别的众数所决定的,换句话说,就是通过所有单一的决策树模型投票来决定最终的输出结果,随机森林因其算法简单、容易实现以及计算开销小等优点而在机器学习中受到大家的喜爱。下

面,我们一起来看下如何进行随机森林分析及其后续结果的验证

1.R 包的安装与读取

首先,是 R 包的选择与安装过程,对于随机森林算法,存在其专用的 R 包,randomForest包,其储存在 CRAN 网站中,同时,安装后续绘图以及 ROC 分析所需要的相关 R 包

2.数据读取与预处理

读取患者的表达数据,并通过标准化处理与转置,生成最终的表达谱,其中行名为患者编号,列名为不同的基因名称结果显示这是一个共包含 80 名肿瘤患者的基因表达矩阵与此同时,准备这 80 名患者的临床信息在此次讲解中,我们的结局变量是患者的生存状态(fustat),通过随机森林模型,构建预测患者预后的模型。

使用 str()函数可以观看临床信息的数据类型。

随后,设置随机种子,使用随机函数,按 7:3 将整个数据集分成两组,分别为训练组和验证组,用于随机森林模型的构建和验证。

3.使用 trainee 数据集建立随机森林模型

使用 randomForest()函数建立随机森林模型,其中参数 ntree=500 表示使用 500 棵决策树模型用于随机森林的分类在得到随机森林分类器 rf_output 后,使用 plot()函数获取随机森林的训练过程,随着决策树数量的增加,模型训练误差也随之变化。

随着使用树数量的增加,误差逐渐趋于稳定在随机森林模型的构建过程中,模型还会计算出数据中每个特征的重要程度,而且该重要程度可以使用varImpPlot()函数将其可视化结果显示了其中最重要的 20 个基因,其中 KLHDC9 基因的重要性最高随后,按重要性进行排序,并提取重要性最高的 20 个基因的名称。

4.模型验证及其可视化

当模型构建完毕,下一步自然是模型的验证,其中包括自身验证和外部验证两种情况

4.1 使用 trainee 数据集进行验证

将训练组的数据纳入构建好的随机森林模型中,使用 predict()函数进行结果预测,最终得到了预测值。

使用箱线图将预测结果进行可视化。

在生存和死亡两组中,患者的预测评分存在显著性差异

4.2 使用 testee 数据集进行验证

同样的,将验证组的病人信息纳入模型,使用 predict()函数进行结果预测。

该随机森林模型可以在一定程度上预测患者的生存和死亡状态,但无显著性差异,进一步表明该模型还有待进一步的改正与修改。

4.3 训练组的 ROC 曲线

除此之外,我们还可以借用之前讲解的内容,使用 ROC 曲线和曲线下面积来进一步评价预测模型的准确性。

4.4 验证组的 ROC 曲线

结果显示,在训练组中,模型的 AUC 值为 1,而在验证组中模型的 AUC 值为 0.722,这样,随机森林模型就构建完成了。当然,和 LASSO 一样,通过调整随机种子的数字,可以得到不同的模型结果。

← 返回批次1总导航