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)
相关推荐
人工智能AI技术1 分钟前
告别AI瞎编API!GitMCP实战:Web‑CAD开发准确率拉满
人工智能
用户73499134716532 分钟前
为 DeepSeek V4 Flash 加上视觉:40M 参数连接器实战
人工智能
workflower5 分钟前
智能无人机成低空经济核心赛道
运维·人工智能·机器学习·机器人·云计算·无人机
谁在黄金彼岸8 分钟前
12 小时 50k Star:DeepSeek Harness(dsh)到底是什么,凭什么?
人工智能
沐风___11 分钟前
Agent Skills 实测:一条命令给 AI 编程工具装上工程素养
人工智能
安逸Ai18 分钟前
卷积神经网络 CNN 是什么?为什么适合处理图像?
人工智能·面试
Hello-FPGA19 分钟前
AI 如何自动通过 PDF 原理图生成管脚映射
人工智能·fpga开发·pdf
Jason68119 分钟前
一文讲透 AI 绘画 Prompt 工程:从原理到可复用的方法论
人工智能
程序员七平20 分钟前
让 AI 帮我点咖啡:瑞幸 my-coffee skill 体验
人工智能
leoZ23122 分钟前
Vue3 还原一个企业级后台-14-项目总结
开发语言·人工智能·后端·opencv·计算机视觉·数据挖掘·rust