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)
相关推荐
俊哥V几秒前
每日 AI 研究简报 · 2026-06-12
人工智能·ai
跨境数据猎手2 分钟前
跨境电商独立站0-1搭建全流程
大数据·人工智能
宅小年4 分钟前
我给微信装了个 AI 助手,事情开始变有意思了
人工智能·aigc
科技侃谈4 分钟前
国内下载imToken为什么选择:官方渠道?有什么优势?
大数据·人工智能
星辰徐哥5 分钟前
工具推荐:HTML5+AI开发必备的前端调试工具
前端·人工智能·html5
财经资讯数据_灵砚智能5 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月11日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
2601_956139427 分钟前
性价比高的VI设计质量
大数据·人工智能·python·物联网
-山中问答-9 分钟前
【AI智能体工程化实战04】将模糊需求转化为结构化的评测规范文档
人工智能·智能体·评测规范
garmin Chen9 分钟前
prompt实战:nof1.ai Alpha Arena
java·人工智能·python·prompt
武子康9 分钟前
调查研究-171 什么是 Aha Moment:从「被使用」到「被需要」的关键瞬间
人工智能·openai