2025 - 生信信息学 - GEO数据分析 - RF分析(随机森林)

GEO数据分析 - RF分析(随机森林)


01 准备数据文件

r 复制代码
#install.packages("randomForest")


#引用包
library(randomForest)
set.seed(123456)

inputFile="diffGeneExp.txt"       #输入文件
setwd("/Users/wangyang/Desktop/BCBM/02randomForest-ANN")      #设置工作目录

#读取输入文件
data=read.table(inputFile, header=T, sep="\t", check.names=F, row.names=1)
data=t(data)
group=gsub("(.*)\\_(.*)", "\\2", row.names(data))

#随机森林树
rf=randomForest(as.factor(group)~., data=data, ntree=500)
pdf(file="forest.pdf", width=6, height=6)
plot(rf, main="Random forest", lwd=2)
dev.off()

#找出误差最小的点
optionTrees=which.min(rf$err.rate[,1])
optionTrees
rf2=randomForest(as.factor(group)~., data=data, ntree=optionTrees)

#查看基因的重要性
importance=importance(x=rf2)

#绘制基因的重要性图
pdf(file="geneImportance.pdf", width=6.2, height=7.8)
varImpPlot(rf2, main="")
dev.off()

#挑选疾病特征基因
rfGenes=importance[order(importance[,"MeanDecreaseGini"], decreasing = TRUE),]
rfGenes=names(rfGenes[rfGenes>1])     #挑选重要性评分大于1的基因
#rfGenes=names(rfGenes[1:30])         #挑选重要性评分最高的30个基因
write.table(rfGenes, file="rfGenes.txt", sep="\t", quote=F, col.names=F, row.names=F)

#输出重要基因的表达量
sigExp=t(data[,rfGenes])
sigExpOut=rbind(ID=colnames(sigExp),sigExp)
write.table(sigExpOut, file="rfGeneExp.txt", sep="\t", quote=F, col.names=F)
相关推荐
千里码aicood17 分钟前
基于DCGAN的手写体文字生成系统设计与实现
人工智能
空奈qwq26 分钟前
ANN 全连接神经网络入门指南:从神经元到深度学习的第一步
人工智能·python·深度学习·神经网络·算法·机器学习
weixin_4462608529 分钟前
SeLATM:面向数据探索与资源效率的片段级智能体主题建模
人工智能
scaryFann32 分钟前
企业 AI 进入费控系统的权限与安全设计:从权限交集到端到端工作流
人工智能·安全
袁俪33 分钟前
检索增强生成
人工智能
LX5677737 分钟前
制造业学RAG,核心不是聊天是传承
人工智能
CAE虚拟与现实39 分钟前
PyTorch和scikit-learn的区别
人工智能·pytorch·scikit-learn
liaiyang66839 分钟前
我花了几天测了5个Transformer:异常层到底「异常」在哪?
人工智能
DM今天肝到几点?39 分钟前
AI 安全 · 前沿实验室OpenAI 取消 GPT-6.1 Astra 发布、再停前沿训练:Agent 逃出沙箱之后,责任该算谁的
人工智能·gpt·安全·ai安全
10年前端老司机42 分钟前
LangChain Agent 切面钩子实战:解耦业务,一键复用通用能力
人工智能·langchain·agent