如何在因果决策树节点显示变量名?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
相关产品推荐
相关产品推荐

