数据挖掘领域十大经典算法之—CART算法(附代码)

大数据 算法
CART与C4.5类似,是决策树算法的一种。此外,常见的决策树算法还有ID3,这三者的不同之处在于特征的划分:ID3:特征划分基于信息增益、C4.5:特征划分基于信息增益比、CART:特征划分基于基尼指数。

简介

CART与C4.5类似,是决策树算法的一种。此外,常见的决策树算法还有ID3,这三者的不同之处在于特征的划分:

  • ID3:特征划分基于信息增益
  • C4.5:特征划分基于信息增益比
  • CART:特征划分基于基尼指数

基本思想

CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。

CART算法由以下两步组成:

  • 决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
  • 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。

CART决策树的生成就是递归地构建二叉决策树的过程。CART决策树既可以用于分类也可以用于回归。本文我们仅讨论用于分类的CART。对分类树而言,CART用Gini系数最小化准则来进行特征选择,生成二叉树。 CART生成算法如下:

  • 输入:训练数据集D,停止计算的条件:
  • 输出:CART决策树。

根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉决策树:

设结点的训练数据集为D,计算现有特征对该数据集的Gini系数。此时,对每一个特征A,对其可能取的每个值a,根据样本点对A=a的测试为“是”或 “否”将D分割成D1和D2两部分,计算A=a时的Gini系数。

在所有可能的特征A以及它们所有可能的切分点a中,选择Gini系数最小的特征及其对应的切分点作为最优特征与最优切分点。依最优特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去。

对两个子结点递归地调用步骤l~2,直至满足停止条件。

生成CART决策树。

算法停止计算的条件是结点中的样本个数小于预定阈值,或样本集的Gini系数小于预定阈值(样本基本属于同一类),或者没有更多特征。

代码

代码已在github上实现(调用sklearn),这里也贴出来

数据挖掘领域十大经典算法之—CART算法(附代码)

测试数据集为MNIST数据集,获取地址为train.csv

运行结果

数据挖掘领域十大经典算法之—CART算法(附代码)

责任编辑:未丽燕 来源: 简书
相关推荐

2016-01-29 11:00:55

数据挖掘算法大数据

2018-09-13 12:51:58

数据挖掘算法朴素贝叶斯

2018-05-03 09:36:53

算法数据挖掘C4.5

2018-04-25 08:10:50

算法k-means代码

2013-02-25 09:46:35

数据挖掘算法ICDM

2011-01-26 09:14:43

数据挖掘

2018-11-14 09:40:05

排序算法Java编程语言

2021-10-31 07:38:37

排序算法代码

2019-08-28 11:08:51

排序算法Java

2017-07-18 10:50:38

前端JavaScript排序算法

2022-03-10 12:03:33

Python算法代码

2021-11-08 15:12:48

排序算法面试

2010-08-31 14:01:48

CSS

2017-07-27 14:21:44

2018-02-01 18:45:12

机器学习算法线性回归

2021-01-26 05:33:07

排序算法快速

2011-03-10 10:45:05

算法

2011-05-17 13:39:01

算法

2015-11-11 08:36:40

数据中心网络运维

2013-07-09 13:56:48

微信
点赞
收藏

51CTO技术栈公众号