DecisionTreeClassifier-手动修剪树

时间:2018-12-22 14:49:12

标签: python plotly decision-tree interactive

我正在制作一个交互式建模工具。这个想法是用决策树产生变量。但是,此变量需要具有经济意义(我希望能够删除理论上没有意义的拆分)。因此,我绘制了一棵树,并用它来听用户单击的位置。我在下面附上一张图片。

我的问题是我是否可以手动删除节点。我可以捕获点击,即要删除的节点;但是,我在DecisionTreeClassifier中看不到手动删除特定节点的选项。

Example Tree Fullsize image

有很多义务。

马林

1 个答案:

答案 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])

像魅力一样工作!谢谢!