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)
相关推荐
Elastic 中国社区官方博客几秒前
使用 Azure SRE Agent 和 Elasticsearch 提升 SRE 生产力
大数据·人工智能·elasticsearch·microsoft·搜索引擎·云原生·azure
發糞塗牆3 分钟前
【Azure 架构师学习笔记 】- Azure AI(19) - Agent升级增强
人工智能·ai·azure
luoganttcc6 小时前
自动驾驶 世界模型 有哪些(二)
人工智能·机器学习·自动驾驶
人工智能AI技术6 小时前
315曝光AI投毒!用C#构建GEO污染检测与数据安全防护方案
人工智能·c#
Hamm6 小时前
不想花一分钱玩 OpenClaw?来,一起折腾这个!
javascript·人工智能·agent
乌白云7 小时前
深度学习中的四种归一化方法
深度学习·归一化·批量归一化·层归一化
_李小白7 小时前
【AI大模型学习笔记之平台篇】第二篇:Gemini
人工智能·音视频
一点一木7 小时前
🚀 2026 年 2 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
理性的曜7 小时前
VoloData——基于LangChain的智能数据分析系统
人工智能·vscode·数据分析·npm·reactjs·fastapi·ai应用
flying_13147 小时前
图神经网络分享系列-MPNN(Neural Message Passing for Quantum Chemistry)(二)
人工智能·深度学习·神经网络·图神经网络·消息传递·门控机制·mpnn