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)
相关推荐
confiself2 分钟前
GLM5+minimax2.5+qwen3.5技术报告对比学习
人工智能
深度之眼3 分钟前
热点创新!基于Transformer与KAN网络的三种高阶玩法
人工智能·深度学习·transformer
HAREWORK_FFF4 分钟前
非技术岗位与AI岗位的能力映射与转型成功概率评估
人工智能
tq10865 分钟前
agent 记忆 = markdown + json + git
人工智能·git
石臻臻的杂货铺6 分钟前
Codex + Claude Code + 一个编排器:独立开发者的「一人军团」实战手册
人工智能
壹通GEO13 分钟前
GEO数据分析不再难:1键生成归因热力图+预警报告
人工智能·数据挖掘·数据分析
肾透侧视攻城狮16 分钟前
《TensorFlow生态全景图:核心组件、扩展工具与工业级应用深度解读》
人工智能·深度学习·tensorflow生态系统·tfcore/.js/lite·tf extended/hub·tf serving·生态系统优势对比
两万五千个小时19 分钟前
构建mini Claude Code:11 - 从「被动等待」到「主动找活」
人工智能·python·架构
朴实赋能19 分钟前
当情绪可以被看见:AI手环如何成为青少年心理的“预警哨”?
人工智能·发疯可耻但有用·男生女生一起愁愁愁·不上称的倔强·沉默的忧郁#情绪消费·爱你老己·新型校园攀
zhangshuang-peta20 分钟前
基于人工智能的客户支持,配备安全人工智能客服机器人
人工智能·安全·机器人·ai agent·mcp·peta