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)
相关推荐
学代码的CJY1 分钟前
Codex + Obsidian:搭建你的 AI 知识库(保姆级教程)
数据仓库·人工智能
QC777LX5 分钟前
CAIE认证二级:职场加分,还是能力跃迁?
人工智能
wangruofeng14 分钟前
DeepSeek 识图上线:官方 Chat、Harness、cc-switch 到 Obsidian 保姆级配置
人工智能·aigc·deepseek
FL162386312918 分钟前
人员聚集人群拥挤密度检测数据集VOC+YOLO格式163张2类别
人工智能·yolo·机器学习
智购科技自动售货机厂家18 分钟前
2026自动售货机AI视觉识别优化:从YOLOv11n模型量化到RKNN部署的端侧推理工程实践~YH
javascript·人工智能·yolo·机器学习·计算机视觉·目标跟踪·perl
clorinda1 小时前
OpenCV图像增强基础——图像金字塔、直方图与特征提取
人工智能·opencv·计算机视觉
这张生成的图像能检测吗1 小时前
(论文速读)MANTIS:时间序列分类的轻量级基础模型
人工智能·时序模型·分类模型
u0103055272 小时前
AI Agent加速安卓应用快速落地
人工智能·新浪微博
angered2 小时前
「AI 应用 / AI Agent」行业日报 · 2026-08-21
人工智能