决策树(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html css制作404页面,CSS3绘制404页面

    html css制作404页面,CSS3绘制404页面标题有点噱了…最近在做一个交通有关的项目,想做一个类似标志牌的404,所以就有了这个.只用的CSS3中的旋转,效果如下上代码:Error.circle{width:200px;height:200px;border-radius:200px;border:15pxsolid#B22727;}.circle>div{color:#B22727;font:bol…

    2022年7月27日
    7
  • springboot jpa 中使用逻辑删除[通俗易懂]

    springboot jpa 中使用逻辑删除[通俗易懂]1.indexs指定索引@Index(columnList=””),@Index(columnList=””),可指定多个2.@SQLDelete指定调用repository.delete()..时,执行的sql语句3.@Where指定调用jpa..repository查询时的条件附:常用的jpqlPS:唠唠嗑?公众号搜索:DeanKano企…

    2022年6月2日
    73
  • sql2008删除默认实例_sql2000默认实例名

    sql2008删除默认实例_sql2000默认实例名在网上找到下面几种方法,本人使用的是第一种,很实用。1.删除SQLServer的特定实例若要删除SQLServer的某个特定实例,请按照以下步骤操作:找到并删除%drive%:\\ProgramFiles\\MicrosoftSQLServer\\MSSQL\\Binn文件夹,其中%drive%是要删除的SQLServer实例的位置。找到以下注册表项:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer相应的..

    2022年10月2日
    3
  • SqlTransaction的解析

    SqlTransaction的解析SqlTransaction类表示要在SQLServer数据库中处理的Transact-SQL事务。无法继承此类应用程序通过在SqlConnection对象上调用BeginTransaction来创建SqlTransaction对象。对SqlTransactio

    2022年5月1日
    47
  • 标准正态分布的分布函数服从均匀分布_二项分布和均匀分布

    标准正态分布的分布函数服从均匀分布_二项分布和均匀分布三种由(0,1)均匀分布构造标准正态分布随机变量的方法:Box–Muller算法,中心极限定理和KindermanandMonahanmethod。

    2022年9月15日
    4
  • Delphi XE5如何读写INI文件

    Delphi XE5如何读写INI文件首先usesinifiles然后写文件procedureTHolidaySet.Button2Click(Sender:TObject);varIniFile:TIniFile;Count:Integer;begintryIniFile:=TIniFile.Create(TP…

    2022年7月18日
    14

发表回复

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

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