我想编辑sklearn decisionTree,例如,改变条件或切割节点/叶子等
但是似乎没有这样的功能,如果我可以导出到一个文件,编辑它导入。
如何编辑decisionTree?
环境:- Windows10
- python3.3
- sklearn 0.17.1
即使文档说DecisionTreeClassifier
的splitter
kwarg是一个字符串,您也可以给它一个类。证据:
https://github.com/scikit-learn/scikit-learn/blob/412996f/sklearn/tree/tree.py L353-L360
看起来你可以在这里找到一个Splitter类的子类:
https://github.com/scikit-learn/scikit-learn/blob/0.17.X/sklearn/tree/_splitter.pyx和做的事:
my_decision_tree = sklearn.tree.DecisionTreeClassifier(splitter=mySplitter)
如果您正在考虑编辑模型,我认为没有简单的方法可以做到这一点。有关于导出(而不是可视化)规则集的讨论[1],[2],但没有关于导入规则集的讨论。但是,当规则集适合最优解决方案时,手动尝试编辑规则集有什么意义呢?然后,如果您确实知道条件,您可以简单地使用一组嵌套的if-else条件,而根本不使用scikit-learn。
如果您需要更改拆分器的Impl,您可以按照@zemekeneng的建议执行