【问题标题】:Edit scikit-learn decisionTree编辑 scikit-learn 决策树
【发布时间】:2017-02-23 07:10:40
【问题描述】:

我想编辑 sklearn 决策树, 例如改变条件或切割节点/叶子等。

但似乎没有功能可以做到这一点,如果我可以导出到文件,请编辑它以导入。

如何编辑决策树?

环境:

  • Windows10
  • python3.3
  • sklearn 0.17.1

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    即使文档说 DecisionTreeClassifiersplitter 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的建议去做。

    【讨论】:

    • 这些链接太棒了。
    • 非常感谢!我明白这很困难。我要制作自己的决策树程序。
    猜你喜欢
    • 2020-04-05
    • 2017-03-26
    • 2017-01-21
    • 1970-01-01
    • 2015-03-05
    • 2014-06-26
    • 2016-08-12
    • 2013-12-12
    相关资源
    最近更新 更多