【问题标题】:How to output decision tree data in sklearn如何在sklearn中输出决策树数据
【发布时间】:2019-01-22 01:39:10
【问题描述】:

有没有办法输出决策树数据,例如作为字典?我知道sklearn.tree.export_graphviz,这是一个很棒的视觉效果,但我想知道是否有办法输出,比如:

这样:

{0: 'samples': 100.0%, 'value': [0.53, 0.47],
 1: 'samples': 72.6%, 'value': [0.61, 0.39],
 2: 'samples': 27.4%, 'value': [0.38, 0.62]}

将数据设为dictionaryDataFramearray 等会更容易分析,而不仅仅是查看一些彩色框。我浏览了sklearn 文档,但找不到任何东西。

谢谢

【问题讨论】:

    标签: python dictionary scikit-learn decision-tree


    【解决方案1】:

    看起来这个here 有一个实现。玩过之后,我认为限制因素之一是这样的 dict 的深度。请记住,这样的树不是:

    {node1:[data],
     node2:[data],
     node3:[data],
     etc}
    

    更像是:

    {node1:[data],
          sub-node1:{
                     sub-sub-node1:{
                                    sub-sub-sub-node1:[data],sub-sub-sub-node2:[data],...}
                     sub-sub-node2:{
                                    sub-sub-sub-node1:[data],sub-sub-sub-node2:[data],...}
                     etc}
          sub-node2:{etc}
    }
    

    如果你有一棵树很高(或Nonemax_depth,这很快就会失控

    【讨论】:

    • sklearn.tree.export_dict() 函数似乎正是我正在寻找的,但我不知道如何调用它(不断得到一个 AttributeError: 'module' 对象有没有属性'export_dict')。在我的情况下,树深度不是问题,因为我设置了 max_depth = 2
    • 据我所知,该功能从未包含在主要版本中。我能够从该仓库复制粘贴它,包括顶部的导入(从 from . import _tree 更改为 from sklearn.tree import _tree)并将其作为常规函数运行,传入合适的 DecisionTreeClassifier
    • 这成功了!字典本身有点笨拙,但它是一些东西。谢谢,G!
    猜你喜欢
    • 2018-06-23
    • 2014-12-23
    • 2020-03-30
    • 2020-01-09
    • 2018-05-24
    • 2020-07-26
    • 2018-09-06
    • 2016-11-01
    • 2019-03-04
    相关资源
    最近更新 更多