You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言iml包为训练好的随机森林模型绘制2D部分依赖图?

用iml包绘制2D部分依赖图(PDP)和累积局部效应图(ALE)

要在iml中生成2D的PDP或ALE图,需要使用单数形式的FeatureEffect类(而非你之前用的FeatureEffects,后者用于批量生成1D图),指定两个特征来计算它们的联合效应,后续调用plot()即可生成2D可视化。

完整代码示例

基于你提供的波士顿房价数据集代码修改:

library("randomForest") 
library("iml")
library("ggplot2") # 可选,用于自定义绘图样式

# 训练随机森林回归模型
data("Boston", package = "MASS")  
rf <- randomForest(medv ~ ., data = Boston, ntree = 50) 
mod <- Predictor$new(rf, data = Boston) 

# 2D 部分依赖图(PDP)
# 指定两个特征,method设为"pdp"
pdp_2d <- FeatureEffect$new(mod, feature = c("lstat", "rm"), method = "pdp")
# 绘制2D图,默认是热图+等高线,可通过geom参数调整
pdp_2d$plot()
# 可选:切换为散点+平滑曲面
# pdp_2d$plot(geom = "point") + geom_smooth(method = "gam")

# 2D 累积局部效应图(ALE)
ale_2d <- FeatureEffect$new(mod, feature = c("lstat", "rm"), method = "ale")
ale_2d$plot()
# 可选:自定义配色
# ale_2d$plot() + scale_fill_viridis_c()

关键说明

  • FeatureEffect(单数)用于分析单个特征或特征组合的效应,传入两个特征时自动计算联合效应,生成2D结果。
  • plot()方法默认会根据特征类型生成合适的2D可视化:数值特征组合默认用热图+等高线,也可通过geom参数切换为"point"(散点)、"tile"(纯热图)或"contour"(纯等高线)。
  • 如果需要更精细的自定义,可以将plot()的结果作为ggplot对象,叠加ggplot的图层和主题进行调整。

内容的提问来源于stack exchange,提问作者pricklpitty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:12:41