终于还是要发这个系列了,其实我还没有准备好,机器学习系列,有一个公众号做的非常好,是中科院上海马普所的几个同学做的,过两天我会在此推送他们的学习目录,供大家欣赏。 我就先抛砖引玉吧: 随机森林背景介绍讨厌写背景知识,大家自己去搜搜吧! 准备训练数据和测试数据集这里,我们从GEO数据库里面下载两个不同研究的表达芯片数据 training data set:GSE2034
test data set:GSE2990
它们使用的是同一个芯片平台: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 建立好模型了,可以进行简单的统计,看看模型效果如何。 接下来就可以利用建立好的模型对新的样本的多个变量的值来预测新样本的结果了。 在测试数据上使用构建好的随机森林分类器
用模型进行预测只需要一句代码即可,就可以给出每个样本的癌症复发与否的预测结果,同时也会给出复发与否的预测概率。 也可以对预测结果进行一些统计分析,预测效果检验。当然,我们没有这189个样本的癌症复发情况的信息,所以不可能得到真实的预测准确性。 具体代码见:R语言实现随机森林(3)Test the model 用生存分析来查看分类效果
结语在R里面实现随机森林是非常简单的,只需要制作好用于随机森林模型构建的所有样本的所有变量矩阵以及样本的结果即可。 一句话就建立好模型了 rf_output=randomForest(x=predictor_data, y=target, importance = TRUE, ntree = 10001, proximity=TRUE, sampsize=sampsizes)关键在于理解这个算法,可是我讲不出来,抛开算法不谈,还需要理解这个模型的输出。 这就是为什么本文拿了两个实际的芯片表达数据来做例子。 |
|