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 分钟前
多Agent最怕的不是答错,而是崩溃后不知道做到哪一步
人工智能
知几蜗牛4 分钟前
4 bit模型为何不等于显存缩小四倍?量化账单这样算
人工智能
deepseek234 分钟前
OpenAI 一万 Agent 解纳维-斯托克斯拆解:scaling 从参数换成并发,AGI 标尺从准确率变成连续工作时长
人工智能·多智能体·ai agent
知几蜗牛12 分钟前
Claude放宽生命科学限制:代价是验证、分级和30天留存
人工智能
知几蜗牛12 分钟前
Anthropic公开内部AI研发速度:真正该盯的是三个分母
人工智能
回眸&啤酒鸭13 分钟前
【回眸】GLM 5.3 Flash 高效落地实战指南
人工智能
吴佳浩14 分钟前
为什么 Agent 需要 Memory?Memory 和 RAG 到底有什么区别?
人工智能·agent·ai编程
skywalk816315 分钟前
在FreeBSD15.1系统安装bun,最后使用官方安装成功!
人工智能·bun
带鱼吃猫15 分钟前
LangGraph入门:支持搜索的智能代理系统
人工智能·langchain
吴佳浩15 分钟前
Agent Memory 架构设计:短时记忆、长期记忆与 Memory 生命周期
人工智能·agent·ai编程