编辑 scikit-learn 决策树
Posted
技术标签:
【中文标题】编辑 scikit-learn 决策树【英文标题】:Edit scikit-learn decisionTree 【发布时间】:2017-02-23 07:10:40 【问题描述】:我想编辑 sklearn 决策树, 例如改变条件或切割节点/叶子等。
但似乎没有功能可以做到这一点,如果我可以导出到文件,请编辑它以导入。
如何编辑决策树?
环境:
Windows10 python3.3 sklearn 0.17.1【问题讨论】:
【参考方案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)
【讨论】:
谢谢!我知道像我这样的python初学者很难。【参考方案2】:如果您正在考虑编辑模型,我认为没有简单的方法可以做到这一点。已经讨论了导出(相当可视化)规则集 [1], [2],但没有讨论导入规则集。但是,当它适合最佳解决方案时,手动尝试编辑规则集有什么意义?再说一遍,如果你真的知道条件,你可以简单地使用一组嵌套的 if-else 条件,而根本不用 scikit-learn。
如果你需要改变分路器的Impl,你可以按照@zemekeneng的建议去做。
【讨论】:
这些链接太棒了。 非常感谢!我明白这很困难。我要制作自己的决策树程序。以上是关于编辑 scikit-learn 决策树的主要内容,如果未能解决你的问题,请参考以下文章