我正在制作一个交互式建模工具。这个想法是用决策树产生变量。但是,此变量需要具有经济意义(我希望能够删除理论上没有意义的拆分)。因此,我绘制了一棵树,并用它来听用户单击的位置。我在下面附上一张图片。
我的问题是我是否可以手动删除节点。我可以捕获点击,即要删除的节点;但是,我在DecisionTreeClassifier中看不到手动删除特定节点的选项。
有很多义务。
马林
答案 0 :(得分:1)
根据马克西米利安(Maximilian)的建议,我访问了该链接,并调整了代码以进行少量创建:
from sklearn.tree._tree import TREE_LEAF
def prune_index(inner_tree, index):
# turn node into a leaf by "unlinking" its children
inner_tree.children_left[index] = TREE_LEAF
inner_tree.children_right[index] = TREE_LEAF
# if there are shildren, visit them as well
if inner_tree.children_left[index] != TREE_LEAF:
prune_index(inner_tree, inner_tree.children_left[index])
prune_index(inner_tree, inner_tree.children_right[index])
像魅力一样工作!谢谢!