Scikit决策树分类功能

时间:2017-12-01 04:16:06

标签: machine-learning scikit-learn decision-tree

Tom's Mitchell Machine Learning书中有一个众所周知的问题,即根据以下数据构建决策树,其中Play ball是目标变量。

enter image description here

生成的树正在跟随

enter image description here

我想知道是否可以用scikit-learn构建这棵树。我找到了几个可以将决策树描述为

的例子
export_graphviz(clf) 
Source(export_graphviz(clf, out_file=None))

然而,看起来scikit对分类数据效果不佳,数据必须二进制化为多列。因此,不可能像图片中那样完全构建树。这是对的吗?

1 个答案:

答案 0 :(得分:2)

是的,用scikit-learn构建这样的树是不正确的。

主要原因是这是一个三元树(最多有三个孩子的节点),但是scikit-learn implements only binary trees - 节点只有两个或没有子节点:

cdef class Tree:
    """Array-based representation of a binary decision tree.
...

但是,可以获得格式为

的等效二叉树
Outlook == Sunny
    true  => Humidity == High
        true  => no
        false => yes      
    false => Outlook == Overcast
        true  => yes
        false => Wind == Strong
            true  => no
            false => yes