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)
相关推荐
新知图书21 小时前
用于 HR FAQ 场景的AI Agent原型演示
人工智能·langchain
许彰午21 小时前
# 从 RAG 到 Agent:社保智能客服的进化(下)——多模态与完
人工智能
agicall.com21 小时前
信电助 - 信创话务盒 UB-A-XC 型号功能列表
人工智能·语音识别
精益数智小屋21 小时前
设备维护方案核心功能拆解:一套好的设备维护方案如何解决设备突发故障
大数据·运维·网络·数据库·人工智能·面试·自动化
.柒宇.21 小时前
AI-Agent入门实战-AI私厨
人工智能·python·langchain·agent·fastapi
Pushkin.21 小时前
LangGraph 多 Agent 架构与 Supervisor 模式
人工智能·架构
阿Y加油吧21 小时前
意图识别与多路由调度策略
人工智能
甲维斯21 小时前
worktree是什么鬼?Codex和Claude双修把我搞晕了!
人工智能·ai编程
极创信息21 小时前
信创软件快速适配信创改造,实战落地思路
java·大数据·数据库·人工智能·mvc·软件工程·hibernate
前端摸鱼匠21 小时前
【AI大模型春招面试题31】什么是“零样本学习(Zero-Shot)”“少样本学习(Few-Shot)”?大模型实现这类能力的核心原因?
人工智能·学习·面试·大模型·求职招聘