如何修改决策树分类器以排除不可接受的(功能,决策)对?

时间:2019-12-20 13:22:38

标签: python scikit-learn decision-tree

我正在scikit-learn中进行决策树分类,以根据临床输入向患者推荐一组医疗方法中的一种。对于因受伤风险而患有癫痫病的任何患者,禁忌使用一种名为no_epi的治疗方法,因此即使对于癫痫病患者也不会建议使用这些治疗方法,即使否则会推荐这种患者。

我担心依赖训练集不足以保证场景癫痫=真和决策= no_epi永远不会发生,因此我怀疑训练后有必要将其硬编码到树中。我的第一个猜测是通过一种“反向修剪”来进行这种硬编码,其中我将从最深的no_epi叶子开始,然后用子树替换它们,如下所示 sketch

我的问题有两个:

  1. 有没有人知道比我勾勒出的反向修剪方法更好的方法?
  2. 在对树进行除癫痫以外的功能训练之后,如何在scikit-learn中实际实施这种反向修剪?我曾考虑过手动修改children_left类的属性children_rightTree,但是却遇到了例外 AttributeError: attribute 'children_left' of 'sklearn.tree._tree.Tree' objects is not writable

非常感谢所有的帮助,并祝所有庆祝的人节日快乐!

0 个答案:

没有答案