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)
相关推荐
半亩码田几秒前
小米MiMo Code深度解析:基于OpenCode的长程编程Agent,三项Benchmark超越Claude Code
人工智能·语言模型·ai编程
xianghongtao0116几秒前
把“AI 依赖”变成一个可计算的量:Offloading Score 论文精读
人工智能·ai
kepppt3 分钟前
LikeShop 开源商城系统新增 AI 协同开发能力
人工智能·开源商城
namexingyun3 分钟前
GPT-5.6 前端生成能力深度解析:kindle/kepler/Levi三版本UI实测与技术推演
java·前端·人工智能·gpt·机器学习·ui
2301_818527785 分钟前
瑜伽服品牌出海——AI助力中国瑜伽服走向世界
人工智能
掘金酱6 分钟前
📱 TRAE SOLO 移动端上线征文——“我的第一次移动端AI办公” 评测 | 获奖名单公示
前端·人工智能·trae
sou_time6 分钟前
从 0 到 商用:AI Agent x SKILL x MCP 全栈实战教程:L3 商用篇:性能 / 成本 / 可观测性 / 安全 / 部署
人工智能·安全
m0_718677496 分钟前
关于用AI做游戏的分析
人工智能·游戏
babe小鑫7 分钟前
2026财务类岗位学数据分析的价值
数据挖掘·数据分析
逐米时代8 分钟前
为什么制造型企业需要企业知识库建设?
大数据·人工智能