python中的sklearn中决策树使用的是哪一种算法
3个回答
展开全部
要弄清楚这个问题,首先要弄懂决策树三大流行算法ID3、C4.5和CART的原理,以及sklearn框架下DecisionTreeClassifier的帮助文档。
3个算法的主要区别在于度量信息方法、选择节点特征还有分支数量的不同。
ID3,采用熵(entropy)来度量信息不确定度,选择“信息增益”最大的作为节点特征,它是多叉树,即一个节点可以有多个分支。
C4.5,同样采用熵(entropy)来度量信息不确定度,选择“信息增益比”最大的作为节点特征,同样是多叉树,即一个节点可以有多个分支。
CART,采用基尼指数(Gini index)来度量信息不纯度,选择基尼指数最小的作为节点特征,它是二叉树,即一个节点只分两支。
然后你认真阅读sklearn的DecisionTreeClassifier的帮助文档,可以发现,度量信息的方法默认是Gini,但可以改成entropy,请按需选择;构建的树是二叉树;可以通过设置max_deepth、max_leaf等来实现“剪枝”,这是根据CART的损失函数减少的理论进行的。
所以总结说,如果信息度量方法按照默认的设置,那么sklearn所用的决策树分类器就是CART,如果改成了entropy,那么只是使用了别的度量方法而已。其实两者差不多。
3个算法的主要区别在于度量信息方法、选择节点特征还有分支数量的不同。
ID3,采用熵(entropy)来度量信息不确定度,选择“信息增益”最大的作为节点特征,它是多叉树,即一个节点可以有多个分支。
C4.5,同样采用熵(entropy)来度量信息不确定度,选择“信息增益比”最大的作为节点特征,同样是多叉树,即一个节点可以有多个分支。
CART,采用基尼指数(Gini index)来度量信息不纯度,选择基尼指数最小的作为节点特征,它是二叉树,即一个节点只分两支。
然后你认真阅读sklearn的DecisionTreeClassifier的帮助文档,可以发现,度量信息的方法默认是Gini,但可以改成entropy,请按需选择;构建的树是二叉树;可以通过设置max_deepth、max_leaf等来实现“剪枝”,这是根据CART的损失函数减少的理论进行的。
所以总结说,如果信息度量方法按照默认的设置,那么sklearn所用的决策树分类器就是CART,如果改成了entropy,那么只是使用了别的度量方法而已。其实两者差不多。
展开全部
1首先需要安装Cython,网上下载后进行本地安装pythonsetup.pyinstall2下载Sklearn包,进行本地安装(使用pip或easy_install总是出错,如cannotimportmurmurhash3_32,最终本地安装成功)3安装后可用nosetests-vsklearn来进行测试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像是GINI,但是也可以选择信息增益
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询