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)
相关推荐
xiaoxiang96091 分钟前
TDD测试驱动开发:从理论到实战的完整指南(含AI增强工作流)
人工智能·驱动开发·tdd
小张同学8242 分钟前
Python 封神技巧:1 行代码搞定 90% 日常数据处理,效率直接拉满
开发语言·人工智能·python
PoplarLittle4 分钟前
机器学习学习笔记-鸢尾花案例
机器学习
Captain_Data5 分钟前
SQL优化实战:如何让查询速度提升10倍
数据库·sql·mysql·性能优化·数据分析
源码之家5 分钟前
计算机毕业设计:Python棉花产业数据可视化与预测系统 Django框架 ARIMA算法 数据分析 可视化 爬虫 大数据 大模型(建议收藏)✅
人工智能·python·算法·信息可视化·数据挖掘·django·课程设计
chatexcel6 分钟前
北大ChatExcel团队推出AI办公桌宠“仓鼠元元”:桌面宠物开始做效率助手了
人工智能·宠物
数字供应链安全产品选型6 分钟前
从影子AI到合规溯源:悬镜安全灵境AIDR如何覆盖智能体安全全生命周期?
人工智能
梵得儿SHI7 分钟前
(第一篇)Spring AI 架构设计与优化:从单实例到万级 QPS 分布式服务的演进之路
人工智能·分布式架构·spring ai·万级 qps·ai 服务高并发·模型 / 向量 / 业务·qps分布式服务
qq_348231858 分钟前
Ubuntu 24.04 环境配置 AI自动化编程 gstack
linux·运维·人工智能·ubuntu
长沙红胖子Qt12 分钟前
深度学习开发笔记(一):跨平台纯C++训练和推理框架LibTorch介绍、开发环境搭建和Demo
pytorch·深度学习·c++深度学习·纯c++训练