「数据分类」14决策树分类之CART算法

1.CART算法与ID3算法对比

(1)CART算法解决了ID3算法的不足,既能用于分类问题,又能用于回归问题。

(2)实际上,CART算法的主体结构和ID3算法基本相同,只是在以下几点有所改变:

①选择划分特征时,ID3使用信息熵量化数据集的混乱程度;CART使用基尼指数(Gini Index)和均方误差(MSE)量化数据集的混乱程度。

【注】CART算法用于分类使用基尼指数,用于回归使用均方误差。

②选定某切分特征时,ID3算法使用该特征所有可能的取值进行切分,例如一个特征有k个取值,数据集则被切成k份,创建k个子树;CART算法使用某一阈值进行二元切分,即在特征值的取值范围区间内进行选择一个阈值t,将数据集切成两份,然后使用一个数据子集(大于t)构建左子树,使用另一个数据子集(小于等于t)构造右子树,因此CART算法构建的是二叉树。

③对于已用于创建内部节点的特征,在后续运算中(创建子树中的节点时),ID3算法不会再次使用它创建其它内部节点;CART算法可能会再次使用它创建其他内部节点。

(3)CART算法不仅可以处理离散值特征,也可以处理连续值特征。

处理连续值特征的思路为:把数据集中的每一个特征动态地转换成多个布尔值特征,形成新特征空间中的数据集。

实例:假设某数据集中有一个“温度”特征,该特征出现过的值有[10,-15,0,-9,5,22]

CART算法将做以下处理:

①先将“温度”特征出现的值排序,得到列表[-15,-9,0,5,10,22](6个值);

②依次取[-15,-9,0,5,10,22]中相邻两值得中点作为阈值点,将得到阈值列表[-12,-4.5,2.5,7.5,16](5个值);

③使用每一个阈值与原来特征的值进行比较,便得到了取值为0或1的布尔值特征,例如“温度是否大于-12”、“温度是否大于-4.5”(共5个)。

使用以上处理方法,在数据集中k个取值的“温度”特征就被转换成了k-1个布尔值特征。

2.CART算法详述

CART算法相关概念及功能

【注】iris鸢尾花数据集和boston房价数据集都是sklearn库自带的数据集,编写程序时直接load进去就可以使用了。

(1)分类树案例:给iris数据集进行分类

CART分类树
模型拟合结果
iris数据集分类树

(2)回归树案例:对boston房价进行回归预测

说明:cart回归树划分数据集的过程和分类树的过程是一样的,回归树得到的预测结果是连续值,评判不纯度的指标不同;分类树采用的是基尼系数,回归树需要根据样本的离散程度来评价不纯度,采用的是均方误差

节点划分(即计算样本的离散程度)

①最小绝对偏差(LAD):样本值减去样本均值的绝对值,即

最小绝对偏差

【注】此公式不是十分肯定,后续查找到相关资料再对其进行修改。

②最小二乘偏差(LSD):每个样本值减去样本均值的平方和除以样本数,即

最小二乘偏差(均方误差)
CART回归树
模型拟合结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.前言 决策树是一种基本的分类和回归方法。决策树呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。采用...
    胜利主义章北海阅读 7,525评论 0 0
  • 决策树理论在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。...
    制杖灶灶阅读 11,193评论 0 25
  • 决策树 1.概述 决策树由节点和有向边组成,节点有两种类型,内部节点和叶节点,内部节点表示一个特征或属性,叶节点表...
    Evermemo阅读 6,865评论 0 1
  • Decision Trees (DTs) 是一种用来classification和regression的无参监督学...
    婉妃阅读 11,378评论 0 8
  • 妈妈,我想对你说,我不想再事事按着你说的做,我想为自己做一次决定。 从小到大以来,似乎没有一件事是不听你们的。大事...
    洛北北阅读 1,765评论 1 3

友情链接更多精彩内容