提问者:小点点

Scikit决策树分类功能


在Tom的Mitchell机器学习书中有一个众所周知的问题,即基于以下数据构建决策树,其中Play ball是目标变量。

生成的树如下所示

我想知道是否有可能用scikit learn构建这棵树。我发现了几个例子,其中决策树可以描述为

export_graphviz(clf) 
Source(export_graphviz(clf, out_file=None))

然而,看起来Scikit不能很好地处理分类数据,数据必须被二进制化为几列。因此,不可能完全按照图中的方式构建树。是正确的吗?


共1个答案

匿名用户

是的,正确的是不可能用Scikit-学建立这样的树。

主要原因是这是一个三元树(节点最多有三个子节点),但scikit learn只实现二叉树-节点正好有两个子节点或没有子节点:

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