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

如何在因果决策树节点显示变量名?Key Error 7问题求助

因果决策树可视化变量名显示问题解决

问题说明

  • 成功绘制因果决策树,但节点仅显示X[5]这类索引标识,而非自定义变量名
  • 尝试添加feature_names=X参数时,抛出Key Error 7错误,无法生成图像
  • 需求:让决策树节点显示预设的自定义变量名

错误原因

SingleTreeCateInterpreter.plot()方法的feature_names参数要求传入字符串列表,而非DataFrame对象。你传入的X是DataFrame,导致方法内部尝试用索引查找对应变量名时出错。

解决方案

直接传入预先定义好的feature_names字符串列表即可,该列表的顺序必须与X中列的顺序完全匹配。

修改后的完整代码

import numpy as np
import pandas as pd
import graphviz
from econml.dml import CausalForestDML
from econml.cate_interpreter import SingleTreeCateInterpreter


# 加载数据
data = pd.read_csv("Basis_Entscheidungsbaum.csv", sep=";", header=0)

# 定义变量名列表
feature_names=['DL', 'KE', 'AA', 'K', 'ST', 'G', 'BV', 'A']

Y = data['Z']
T = data['M']
X = data[feature_names]

# 初始化因果森林模型(单棵树)
tree_model = CausalForestDML(n_estimators=1, subforest_size=1, inference=False, max_depth=4)

# 拟合模型并生成因果决策树解释器
tree_model = tree_model.fit(Y=Y, X=X , T=T)
intrp = SingleTreeCateInterpreter(max_depth=3).interpret(tree_model, X)

# 可视化:传入正确的feature_names参数
intrp.plot(feature_names=feature_names, fontsize=12)

关键注意事项

  • 确保feature_names列表的顺序与X中列的顺序完全一致,否则变量名和特征会对应错误
  • 如果后续调整了X的列顺序,必须同步更新feature_names列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:55:06