如何用Tidymodels和vip绘制随机森林的变量重要性图
问题:使用vip绘制蘑菇数据集随机森林模型的变量重要性图
我使用的数据集为蘑菇数据集。
- 已通过Tidymodels完成随机森林的配方、模型及工作流定义:
df_recipe_mixt <- df_train |> recipe(class ~ cap_diameter + cap_color + does_bruise_or_bleed + gill_color + stem_height + stem_width + stem_color + has_ring + habitat + season, data = df_train) |> step_scale(all_numeric()) |> step_center(all_numeric()) |> step_dummy(all_nominal(), -all_outcomes()) |> prep() rf_mod <- rand_forest() |> set_engine("ranger") |> set_mode("classification") |> set_args(mtry = tune(), trees = tune()) rf_wf <- workflow() |> add_model(rf_mod) |> add_recipe(df_recipe_mixt)
- 已完成模型调优并应用至测试集:
n_cores <- parallel::detectCores(logical = TRUE) registerDoParallel(cores = n_cores - 1) rf_params <- extract_parameter_set_dials(rf_wf) |> update(mtry = mtry(c(1,5)), trees = trees(c(50,500))) rf_grid <- grid_regular(rf_params, levels = c(mtry = 5, trees = 3)) tic("random forest model tuning ") tune_res_rf <- tune_grid(rf_wf, resamples = df_folds, grid = rf_grid, metrics = metric_set(accuracy) ) toc() stopImplicitCluster() autoplot(tune_res_rf) + dark_mode(theme_minimal()) rf_best <- tune_res_rf |> select_best(metric = "accuracy") rf_best$trees;rf_best$mtry rf_final_wf <- rf_wf |> finalize_workflow(rf_best) rf_res <- last_fit(rf_final_wf, split = df_split) |> collect_predictions()
模型运行正常,已获取所有指标、混淆矩阵及ROC曲线,但不清楚如何使用vip包绘制变量重要性图。
内容的提问来源于stack exchange,提问作者Smorg
相关产品推荐
相关产品推荐

