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)
相关推荐
我会冲击波1 分钟前
UI UX Pro Max:给 AI 请个设计师
人工智能·程序员
MaxStormBot1 分钟前
WPS Office Skill v1.3.0 发布:全格式图文混排 + Markdown 三件套转换
人工智能
癫狂的兔子2 分钟前
【Python】【机器学习】十大算法简介与应用
python·算法·机器学习
Asher阿舍技术站8 分钟前
【AI基础学习系列】五、AIGC从创意到创造
人工智能·学习·aigc·进阶
ZhengEnCi9 分钟前
05. 文本分块策略设计
人工智能
前端不太难9 分钟前
AI 如何改变传统 鸿蒙App 的信息架构
人工智能·架构·harmonyos
汽车软件工程师0019 分钟前
ChatGpt指导嵌入式软件开发能力——2、TriCore深度专项训练
人工智能·chatgpt·autosar
咚咚王者10 分钟前
人工智能之视觉领域 计算机视觉 第八章 图像边缘检测
人工智能·opencv·计算机视觉
minhuan11 分钟前
大模型应用:规则引擎 + 混元大模型:确定性骨架与智慧大脑的新融合实践.89
人工智能·大模型应用·规则引擎说明·rule-engine应用
数字生命卡兹克12 分钟前
2026马年春晚15个关于AI的看点 - 有一种人类之外的美。
人工智能