R语言中使用pdp包为随机森林模型生成带轴参数值的3D偏依赖图的方法
基于pdp包生成带完整坐标轴标注的3D偏依赖图实现
1. 先修正原代码的逻辑偏差
Price是当前随机森林模型的响应变量,不能传入partial()的pred.var参数——该参数仅支持填入需要分析交互效应的自变量,否则计算出的偏依赖结果无实际意义,需要替换为两个目标自变量,如Mileage、Year等(根据实际数据集列名调整即可)。
2. 核心绘图参数说明
plotPartial()实现3D绘图并完整显示坐标轴标注,需要调整的关键参数如下:
drape = TRUE:开启3D填充曲面模式,替代默认的2D格点渲染colorkey = TRUE:保留响应变量预测值的颜色对应刻度条screen:调整3D视图的旋转角度,避免坐标轴被曲面遮挡scales:透传底层lattice绘图的坐标轴配置,强制显示所有刻度与标注,解决默认模式下轴标注不全、被遮挡的问题
3. 完整可运行示例代码
library("randomForest") library("pdp") # 加载数据集,和原示例保持一致 data("cars") my_data <- cars[, 1:5] # 构建随机森林模型 my_rf <- randomForest(Price ~ ., data = my_data) # 计算两变量交互偏依赖值,替换为实际需要分析的自变量名 price_effect <- partial(my_rf, pred.var = c("Mileage", "Year")) # 绘制带完整坐标轴标注的3D偏依赖图 plotPartial( price_effect, drape = TRUE, colorkey = TRUE, zlab = "预测车辆价格", xlab = "行驶里程", ylab = "车辆出厂年份", # 调整视角,将坐标轴置于无遮挡位置 screen = list(z = 30, x = -70), # 配置坐标轴显示规则,保证所有标注完整可见 scales = list( arrows = FALSE, distance = 0.5, cex = 0.8, col = "black" ) )
补充调整提示
- 若需要自定义曲面配色,可新增
col.regions参数,比如设置为colorRampPalette(c("darkred", "lightyellow"))(100)实现从暗红到浅黄的渐变映射 - 若调整视角后仍有标注重叠,可微调
screen参数内的z、x角度值,直到所有刻度文字完全显示为止
内容的提问来源于stack exchange,提问作者geo_dd
相关产品推荐
相关产品推荐

