机器学习算法之随机森林的R语言实现-表达芯片示例

终于还是要发这个系列了,其实我还没有准备好,机器学习系列,有一个公众号做的非常好,是中科院上海马普所的几个同学做的,过两天我会在此推送他们的学习目录,供大家欣赏。

我就先抛砖引玉吧:

随机森林背景介绍

讨厌写背景知识,大家自己去搜搜吧!

准备训练数据和测试数据集

这里,我们从GEO数据库里面下载两个不同研究的表达芯片数据

training data set:GSE2034

GSE2034已经是2005年的数据了,不过资料整理的比较其实,共有180 lymph-node negative relapse free patients 和 106 lymph-node negate patients that developed a distant metastasis.

test data set:GSE2990

GSE2990是2006年的数据,数据包括:64 microarray experiments from primary breast tumors used as training set to identify genes differentially expressed in grade 1 and 3.还有129 microarray experiments from primary breast tumors of untreated patients used as validation set to validate the list of genes and its correlation with survival.

它们使用的是同一个芯片平台:Affymetrix U133A platform (GPL96).

下载GEO数据库的芯片数据并且处理成表达矩阵是非常简单的,处理方式及代码见:R语言实现随机森林(1)Prepare-dataset

最后得到:

training_data 是12437个基因在286个样本的表达矩阵

testing_data 是12437个基因在189个样本的表达矩阵

training_clinical 是训练数据集的286个样本的临床信息

testing_clinical 是测试数据集的189个样本的临床信息

这些数据在后面构建随机森林模型就会用得着啦

用训练数据构建随机森林分类器

随机森林算法只需要两个输入文件:

  • 多个变量在多个样本的数据矩阵
  • 每个样本的结果

在我们的例子里面,需要把training_data 是12437个基因在286个样本的表达矩阵进行过滤,不是所有的基因都有资格进入随机森林模型里面,还有这286个样本是否发生了癌症复发的情况。

根据这两个input建立模型的步骤见:R语言实现随机森林(2)Construct model

建立好模型了,可以进行简单的统计,看看模型效果如何。 接下来就可以利用建立好的模型对新的样本的多个变量的值来预测新样本的结果了。

在测试数据上使用构建好的随机森林分类器

测试数据也是表达矩阵,在我们的例子里面是testing_data 是12437个基因在189个样本的表达矩阵!

用模型进行预测只需要一句代码即可,就可以给出每个样本的癌症复发与否的预测结果,同时也会给出复发与否的预测概率。 也可以对预测结果进行一些统计分析,预测效果检验。当然,我们没有这189个样本的癌症复发情况的信息,所以不可能得到真实的预测准确性。

具体代码见:R语言实现随机森林(3)Test the model

用生存分析来查看分类效果

虽然我们没有那189个样本的癌症复发情况的信息,所以不可能得到真实的预测准确性。但是我们可以根据预测值把样本分成3组,然后根据不同的分组来做生存分析,因为癌症复发高风险病人的生存情况应该是会很糟糕,如果生存分析结果也是如此,那么就说明我们的预测效果还不错。 具体代码见:R语言实现随机森林(4)Justice the model

结语

在R里面实现随机森林是非常简单的,只需要制作好用于随机森林模型构建的所有样本的所有变量矩阵以及样本的结果即可。 一句话就建立好模型了

rf_output=randomForest(x=predictor_data, y=target, importance = TRUE, ntree = 10001, proximity=TRUE, sampsize=sampsizes)

关键在于理解这个算法,可是我讲不出来,抛开算法不谈,还需要理解这个模型的输出。

这就是为什么本文拿了两个实际的芯片表达数据来做例子。

原文发布于微信公众号 - 生信技能树(biotrainee)

原文发表时间:2017-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏目标检测和深度学习

从RCNN到SSD,这应该是最全的一份目标检测算法盘点

882
来自专栏机器学习算法与理论

【一文读懂】机器学习

      看到很多人都有写博客的习惯,现在开始实习了,也把之前写过的东西整理整理,发在这里,有兴趣的同学可以一起交流交流。文笔稚嫩,希望大家宽容以待!   ...

3316
来自专栏机器之心

全面解读用于文本特征提取的神经网络技术:从神经概率语言模型到GloVe

选自arXiv 作者:Vineet John 机器之心编译 参与:吴攀、李亚洲、蒋思源 文本特征提取是自然语言处理的核心问题之一,近日,加拿大滑铁卢大学的 Vi...

3418
来自专栏PPV课数据科学社区

【资源】用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等

摘要: 本文讲的是用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等,自然语言处理领域正在从统计学方法转向神经网络方法。在自然语言中,仍然存...

3095
来自专栏IT派

深度学习基础+网络模型

文中的链接请点击网址:http://yerevann.com/a-guide-to-deep-learning/ 预备知识 ? 你必须有大学数学知识。你可以在深...

3348
来自专栏AI2ML人工智能to机器学习

最大似然估计的2种论证

前面(一步一步走向锥规划 - 最小二乘法)对最小二乘法OLS进行了描述,并且使用最大似然估计Maximum Likelihood Estimation, MLE...

362
来自专栏量子位

迁移学习让AI更好地理解上下文:Salesforce新论文

李林 编译整理 量子位 报道 | 公众号 QbitAI 让神经网络理解每个词的意思很容易,但上下文、词语之间的关系,依然是自然语言处理(NLP)中的难题。 Sa...

2854
来自专栏程序生活

End to End Sequence Labeling via Bidirectional LSTM-CNNs-CRF论文摘要简介神经网络结构训练总结

1294
来自专栏新智元

年终巨献:深度学习完全指南

【新智元导读】这份指南适合有一些数学基础,了解一些编程语言,现在想深入学习深度学习的人。主要包括2个视频教程,2部重要专著,一系列深入浅出的博客文章,以及一系列...

39711
来自专栏PaddlePaddle

【AI核心技术】课程二:Modern AI课程体系

从今天开始,UAI与PaddlePaddle联合推出的【AI核心技术掌握】系列课程继续更新!

853

扫描关注云+社区