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

求助:如何用shapviz的sv_dependence实现X轴变量同色着色?

解决shapviz包sv_dependence函数按X轴变量着色的问题

问题说明

需要用shapviz的sv_dependence绘制SHAP依赖图,希望按X轴变量的数值对数据点着色,以此更清晰呈现SHAP值与预测变量的依赖关系。但当前版本中,将color_var设为与X轴相同的变量时无法生效,需寻找变通方案。

基于sv_dependence的变通方法

sv_dependence返回的是ggplot对象,我们可以直接修改其颜色美学映射,实现按X轴变量着色:

# 生成基础依赖图
p <- sv_dependence(shp, v = "log_carat", alpha = 0.5)

# 覆盖颜色映射,使用X轴变量值,并调整颜色标尺
p + aes(color = .data[["log_carat"]]) + 
  scale_color_viridis_c(name = "log_carat") +
  guides(color = guide_colorbar(title.position = "top"))

这样既保留了sv_dependence默认的拟合线等元素,又实现了按X轴变量着色的需求。

纯ggplot手动实现方案

如果需要完全自定义绘图逻辑,可以直接提取SHAP数据和原始特征,用ggplot从头构建:

# 提取SHAP值并与原始特征数据合并
shap_data <- get_shap_values(shp) |>
  as.data.frame() |>
  cbind(X_explain)

# 绘制依赖图
ggplot(shap_data, aes(x = log_carat, y = log_carat, color = log_carat)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "loess", se = FALSE, color = "black") +
  labs(x = "log_carat", y = "SHAP value (log_carat)", color = "log_carat") +
  theme_minimal()

这里通过get_shap_values获取SHAP值矩阵,和待解释的特征数据合并后,直接指定颜色映射为X轴变量,同时添加拟合线保证可视化效果与sv_dependence一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:16:11