随机森林模型构建及变量重要性分析:R语言实现
随机森林模型构建及变量重要性分析:R语言实现
本文将详细解读使用R语言构建随机森林模型,并利用rfPermute包对模型中每个变量的重要性进行检测,并通过可视化图形展示重要性结果。
1. 模型构建
首先,我们使用randomForest函数构建随机森林模型。该函数的参数解释如下:
-
set.seed(123): 设置随机数的种子为123,保证每次运行结果相同。 -
envs_rf <- randomForest(group ~ ., data = envs, importance = TRUE, proximity = TRUE): 构建随机森林模型,其中group为目标变量,.表示使用所有其他变量作为预测变量,data = envs表示使用envs数据集,importance = TRUE表示计算变量的重要性,proximity = TRUE表示计算样本之间的相似度。 -
envs_rf: 查看构建的随机森林模型的情况。
2. 变量重要性检测
接下来,我们使用rfPermute函数对随机森林模型进行重要性检测。该函数的参数解释如下:
-
set.seed(123): 设置随机数的种子为123,保证每次运行结果相同。 -
envs_rfP <- rfPermute(group ~ ., data = envs, ntree = 500, na.action = na.omit, nrep = 100, num.cores = 1): 对随机森林模型进行重要性检测,其中group ~ .表示使用所有变量预测目标变量,data = envs表示使用envs数据集,ntree = 500表示使用500个决策树构建模型,na.action = na.omit表示删除有缺失值的样本,nrep = 100表示进行100次检测,num.cores = 1表示使用单个核心运行。 -
envs_dat <- importance(envs_rfP, sort.by = NULL, decreasing = TRUE): 计算每个变量的重要性,其中envs_rfP为进行重要性检测的随机森林模型,sort.by = NULL表示不排序,decreasing = TRUE表示按照重要性从高到低排序。 -
envs_dat: 查看每个变量的重要性结果。
3. 可视化结果
最后,我们使用ggplot2包绘制图形,展示变量的重要性结果。
-
envs_dat[, c('MeanDecreaseAccuracy', 'MeanDecreaseAccuracy.pval')]: 选择重要性结果中的MeanDecreaseAccuracy和MeanDecreaseAccuracy.pval两列。 -
as_tibble(rownames = 'names'): 将结果转换为tibble数据框,并将行名改为names。 -
mutate(label = if_else(MeanDecreaseAccuracy.pval < 0.001, '***', if_else(MeanDecreaseAccuracy.pval < 0.01, '**', if_else(MeanDecreaseAccuracy.pval < 0.05, '*', 'ns')))): 添加一列label,根据MeanDecreaseAccuracy.pval的大小赋值为***、**、*、ns。 -
arrange(MeanDecreaseAccuracy): 按照MeanDecreaseAccuracy从小到大排序。 -
mutate(group = if_else(label == 'ns', 'In_sig', 'Sig'), names = forcats::fct_inorder(names)): 添加一列group,根据label的取值赋值为In_sig或Sig,同时按照变量名称排序。 -
ggplot(aes(x = names, y = MeanDecreaseAccuracy)): 使用ggplot2绘图,x轴为变量名称,y轴为MeanDecreaseAccuracy。 -
geom_bar(aes(fill = group), stat = 'identity'): 添加柱状图,根据group进行着色。 -
geom_text(aes(y = MeanDecreaseAccuracy + 0.5, label = label)): 在柱状图上添加label文本。 -
labs(x = '', y = '% Mean decrease accuracy'): 添加x轴和y轴标签。 -
coord_flip(): 将x轴和y轴翻转,变为横向柱状图。
通过以上步骤,我们可以构建随机森林模型,并检测每个变量的重要性,并通过可视化图形展示结果。这有助于我们理解哪些变量对预测结果影响最大,为我们进一步分析和建模提供参考。
原文地址: https://www.cveoy.top/t/topic/owyx 著作权归作者所有。请勿转载和采集!