Tom's Mitchell Machine Learning书中有一个众所周知的问题,即根据以下数据构建决策树,其中Play ball是目标变量。
生成的树正在跟随
我想知道是否可以用scikit-learn构建这棵树。我找到了几个可以将决策树描述为
的例子export_graphviz(clf)
Source(export_graphviz(clf, out_file=None))
然而,看起来scikit对分类数据效果不佳,数据必须二进制化为多列。因此,不可能像图片中那样完全构建树。这是对的吗?
答案 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