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)
相关推荐
田里的水稻2 分钟前
FA_CNN卷积神经网络二---PyTorch
人工智能·pytorch·python·深度学习·cnn
镜象科技7 分钟前
校园抑郁筛查实战:匿名、隐私与信任的平衡
人工智能
远航计算机8 分钟前
AI 看不见图,它只读旁边的字
人工智能·chatgpt·aigc
tq108611 分钟前
AI 时代 UX 的范式重构:从空间寻路到注意力分配
人工智能
玫瑰互动GEO14 分钟前
把GeoReady九维当工程项做:储能管理官网的AI就绪度改造笔记
人工智能·ai·ai搜索·seo优化·豆包·deepseek·geo优化
体验家17 分钟前
智能家居AI+BI数据洞察:体验家如何连接设备运行与用户评价
数据分析·智能家居·客户体验管理
文慧的科技江湖23 分钟前
2026年10月21日充电桩行业招投标早报:平台第一次进了标的名字,还是没进报价表
大数据·人工智能·开源·新能源·充电桩·新能源汽车·招投标
xiangjiaodalishi24 分钟前
从 0 到 1 搭建 AI 友好的网站结构:信息架构与 GEO 的交叉地带
人工智能·python
KEYSTONE_lucy25 分钟前
海外仓维修系统架构与成本拆解:家具维修海外仓技术方案与价格对比
数据分析