决策树(CART)

决策树(CART)

CART算法全称是分类回归算法,(Classification And Regression Tree),他与ID3、C4.5的不同在于:

1、既可以处理分类问题又可以处理回归问题

2、使用基尼系数作为分类依据,比起使用熵计算简单

3、使用的是二分递归分割的技术,生成二叉树

 

原理不在赘述,基尼系数计算公式:

<span>决策树(CART)</span>

其中,A表示某一属性,C表示这个属性下共C种特征,Pi表示第i个特征发生的概率

当然,对于公式解释的有点乱,很容易搞混,下面结合实例介绍如何计算:

<span>决策树(CART)</span>

对于上面的属性,基尼系数计算如上所示。

对于信息增益的计算为:Gain(house) = Entropy(S) – 3/10*Entropy(has)-7/10*Entropy(nothas)

Entropy(S)  = -3/10*log(3/10)-7/10*log(7/10)

Entropy(has) = 0

Entropy(nothas) = -3/7*log(3/7)-4/7*log(4/7)

 

说白了,基尼系数和熵一样,也是衡量一个事件的不确定度。

故节点选择小的基尼系数的属性

 

对于Python代码,利用sklearn模块通常可以实现,

#   这里不写输入X和Y了,对应的例子有问题,待解决
from sklearn import tree
from sklearn.externals.six import StringIO
import pydotplus


clf = tree.DecisionTreeClassifier(criterion = 'gini')#算法模型

clf = clf.fit(X, Y)#模型训练
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("test.pdf")#写入pdf

  基本的程序如上,但是对于CART算法,输入的特征需要是实数,在这里需要进一步研究,有问题,待解决!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119482.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fiddler和charles哪个好用_电脑15分钟自动重启

    fiddler和charles哪个好用_电脑15分钟自动重启前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月28日
    7
  • ParameterizedThreadStart 实例化[通俗易懂]

    ParameterizedThreadStart 实例化[通俗易懂]C#之线程ParameterizedThreadStart今天用到了ParameterizedThreadStart的实例化对象,但是总提示没有与委托匹配的重载,网上搜索了很多,终于明白什么原因了,再次记录下方便以后查阅。classProgram{staticvoidMain(string[]args){Workwork=newWork();//两种实…

    2022年7月15日
    15
  • MODIS数据的简介和下载(二)——MODIS数据下载方式(FTP)「建议收藏」

    MODIS数据的简介和下载(二)——MODIS数据下载方式(FTP)「建议收藏」前一篇我们已经介绍了MODIS数据的简介、参数以及相关的典型应用。这一篇我们来介绍下MODIS数据的下载方式。当然这边主要是介绍国外网站的下载方式,国内网站的普遍是在地理空间数据云和遥感集市下载。国外网站(NASA官网)下载方式主要介绍三种。本篇主要针对第一种方式,基于完整的一景影像下载的过程(FTP工具)。后面一篇更新的是基于MODISWebService的客户端下载的方式(Matlab和R)

    2022年5月30日
    69
  • css中padding中样式的顺序含义

    css中padding中样式的顺序含义

    2022年1月19日
    72
  • pycharm自己设置补全内容

    pycharm自己设置补全内容pycharm自己设置补全内容学习网络爬虫时,发现我们写一个代码总是要到浏览器上复制User-Agent,或者到自己之前保存好的文件里复制,当然直接能把浏览器的User-agent一个字母不拉的写出来的牛人不在此列。所以我在pycharm上自定义了一个补全模板,可以帮我快速填写User-agent,如下图:1.首先打开pycharm的–》设置,然后选择–》编辑器>活动模板2.然后点右边的‘+’添加自定义代码内容3.然后编辑这个模板说明:缩写:User-Agent这里填写的是

    2022年8月25日
    3
  • 什么?女朋友生气哄不好?那是你没有这款神器!

    什么?女朋友生气哄不好?那是你没有这款神器!在一个阳光明媚的周日,我打开窗户呼吸了一口新鲜空气。阳光灿烂,岁月静好,又是一个约女朋友出去爬山吃饭看电影的好日子。想到女朋友的大眼睛,我脸上不禁洋溢起了幸福的微笑。打开微信,给女朋友发出去一个美好

    2022年7月6日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号