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)
相关推荐
企业知识库布道者1 分钟前
从 OCR 到文档结构理解:MinerU-Popo 对 RAG 文档解析链路的补全
人工智能·ocr·私有化部署·知识库·rag·企业知识库
AC赳赳老秦2 分钟前
用 OpenClaw 整理学习笔记:自动提取视频课程内容、生成文字笔记、分类归档
大数据·运维·数据库·人工智能·学习·deepseek·openclaw
宸津-代码粉碎机3 分钟前
Spring AI企业级实战|Agent长期记忆持久化落地,彻底解决多轮对话上下文丢失问题
java·开发语言·人工智能·后端·python·spring
jinxindeep4 分钟前
字节Lance:轻量级原生统一多模态模型,以多任务协同实现理解与生成的新范式
人工智能·深度学习·计算机视觉
月诸清酒7 分钟前
苹果WWDC2026:Siri AI独立应用、文字对话、屏幕理解
人工智能
大蚂蚁2号7 分钟前
Python链式调用深度拆解:从语法糖到底层架构,入门到工业级落地
人工智能
云烟成雨TD8 分钟前
Spring AI 1.x 系列【58】提示词工程(Prompt Engineering)
java·人工智能·spring
FII工业富联科技服务9 分钟前
AI+3D世界模型:重构园区安防的“可感知、可推演、可进化”
大数据·人工智能·3d·ai·制造
千瓜9 分钟前
运动生活方式洞察 | 从“动起来”到“活过来”
大数据·人工智能·数据分析·生活·新媒体