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)
相关推荐
weixin_43520816几秒前
大模型面试宝典—大模型(LLMs)基础面
人工智能·职场和发展·agent
weixin_750330231 分钟前
GEO获客与电商短视频:AI销售架构的选型分析
人工智能·架构·电商带货短视频·geo搜索排名
大力财经11 分钟前
抖音生活服务行业峰会召开:六大行业线上增长提速,平台持续护航商家经营
大数据·人工智能
王中阳Go15 分钟前
网页上答对、接口里答错:同一个知识库,差的不是模型是入口
人工智能·后端·架构
kyle~16 分钟前
MCP(Model Context Protocol)
人工智能·ai·ai编程·mcp
一级新生17 分钟前
Dify 接入大模型:本地还是云端?实战与选型
人工智能·大模型·dify·ollama
潜龙952718 分钟前
AI 驱动的移动端自动化开源项目调研报告
人工智能·测试相关
数聚天成DeepSData19 分钟前
外部标注需求里该写清哪几项,样例包才验收得动
人工智能·深度学习·机器学习·数据集·deepsdata
zhenaibo52120 分钟前
论文开题题目有了,研究问题应该怎么提?
深度学习
2601_9620710028 分钟前
MiMo-V2.6-Flash 深度解析:相比上一代 V2.5,它到底改了什么
人工智能