机器学习(决策树三)——简述 ID3 C4.5 CART

决策树常见的算法有ID3 C4.5 CART,这里只简述一下,不做详细介绍。因为了解了决策树的概念,再看这几个算法,特别简单。重点介绍三者的关系。

简述

1) ID3

ID3算法是决策树的一个经典的构造算法,内部使用信息熵以及信息增益来进行构建;每次迭代选择信息增益最大的特征属性作为分割属性。

传统ID3不支持连续变量;不支持缺省值(对缺省值敏感),如样本空间有三个特征,其中某样本缺少一个特征值;以某特征为标准进行划分了,后面就不能再选择这个特征了;对划分成几叉树没要求。

机器学习(决策树三)——简述 ID3 C4.5 CART_第1张图片
优点
决策树构建速度快;实现简单;(因为不考虑连续的、而且可以多分枝)

缺点

  1. 计算依赖于特征数目较多的特征,而属性值最多的属性并不一定最优(因为是多叉树而且离散,所以对某个属性划分时,就可以该属性每一个值分成一个枝,可以说划分的干干净净的。而且划分是按照信息熵低,也就是某一值出现次数比较多。但属性值最多往往不是最优的)
  2. ID3算法不是递增算法(上面说的,每一次划分都是干干净净的,每个特征只用到一次)
  3. ID3算法是单变量决策树,对于特征属性之间的关系不会考虑
  4. 抗噪性差(比如有一个异常数据,很可能分划分到一个分支)
  5. 只适合小规模数据集(需要将数据放到内存中)

2) C4.5

在ID3算法的基础上,进行算法优化提出的一种算法(C4.5);现在C4.5已经是特别经典的一种决策树构造算法;使用信息增益率来取代ID3算法中的信息增益,在树的构造过程中会进行剪枝操作进行优化;能够自动完成对连续属性的离散化处理;C4.5算法在选中分割属性的时候选择信息增益率最大的属性,涉及到的公式为:
机器学习(决策树三)——简述 ID3 C4.5 CART_第2张图片
信息增益率可以很好解决ID3的缺点1,因为此时H(A)就会比较大,如果变成增益率,这样大的幅度会变小。如果此时Gain(A)只是大一点点,那么Gain_ration(A)其实是很可能会变小的。

总归是ID3的一个优化,所以基本拥有ID3的所有优点,同时应用信息增益率也准确率也得到提高。

C4.5是一个很经典的算法,现在很多决策树的算法是在C4.5上发展过来的。ID3、C4.5是开源,具体已经贡献出来了。在C4.5基础上,发展出了很多商业算法,如C5

优点

  • 产生的规则易于理解
  • 准确率较高
  • 实现简单

缺点

  • 对数据集需要进行多次顺序扫描和排序,所以效率较低(因为每次都计算一个H(A))
  • 只适合小规模数据集(因为需要将数据放到内存中)

3) CART

使用基尼系数(回归用均方差)作为数据纯度的量化指标来构建的决策树算法就叫做CART(Classification And Regression Tree,分类回归树)算法。CART算法使用GINI增益作为分割属性选择的标准,选择GINI增益最大的作为当前数据集的分割属性;可用于分类和回归两类问题。

特别强调一点:CART构建是二叉树。(不像ID3或C4.5是多叉树,即一个属性值划分一个分支,这个属性划分完了,后面就不能用了。而CART是二叉树,就一个属性可能用到多次,可重复性使用。也就是说,CART不同之处就是:二叉树和属性可重复使用。)

当然对于使不使用基尼系数无所谓,我们完全可以用信息熵来实现。
机器学习(决策树三)——简述 ID3 C4.5 CART_第3张图片
优点

  • 特征属性可多次使用
  • 速度更快(如对得到的划分中位数,会随机选择K个,而不是扫描所有的)

缺点

  • 无论ID3,C4.5,CART都是选择一个最优的特征做分类决策,但大多数,分类决策不是由某一个特征决定,而是一组特征。这样得到的决策树更加准确,这种决策树叫多变量决策树(multi-variate decision tree)。在选择最优特征的时,多变量决策树不是选择某一个最优特征,而是选择一个最优的特征线性组合做决策。代表算法OC1。
  • 样本一点点改动,树结构剧烈改变。这个通过集成学习里面的随机森林之类的方法解决。

比较

  • ID3和C4.5算法均只适合在小规模数据集上使用(实际上CART也是小规模,只不过规模会相对大一些)
  • ID3和C4.5、CART算法都是单变量决策树
  • 当属性值取值比较多的时候,最好考虑C4.5算法,ID3得出的效果会比较差
  • 决策树分类一般情况只适合小数据量的情况(数据可以放内存,因为计算概率,数据得都加载)
  • CART算法是三种算法中最常用的一种决策树构建算法。
  • 三种算法的区别仅仅只是对于当前树的评价标准不同而已,ID3使用信息增益、C4.5使用信息增益率、CART使用基尼系数或均方差。
  • CART算法构建的一定是二叉树,ID3和C4.5构建的不一定是二叉树
算法 支持模型 树结构 特征选择 连续值处理 缺失值处理 剪枝 特征属性多次使用
ID3 分类 多叉树 信息增益 不支持 不支持 不支持 不支持
C4.5 分类 多叉树 信息增益率 支持 支持 支持 不支持
CART 分类、回归 二叉树 基尼系数、均方差 支持 支持 支持 支持

再补充两点

  • 缺失值处理
    比如x∈{1,2},如果其中一条样本值只有2没有1,ID3是不支持的。而C4.5和CART会给x信息加一个特殊值如x=3的情况。一般情况下“缺失值处理”这外性质也不会利用,因为前期数据处理时,会填一些特殊值,如均值。

  • 连续值处理
    C4.5,得到的划分中位数,需要所有的都计算一遍
    CART,得到的划分中位数,会随机选择K个(都计算的话,运算量比较大),找其中最优的。这样可能找到最优的,即便不是最优的,后面还可能用到这个属性进行划分。

:这些是他们的区别,其他的基本都一样,比如说:如何构建了……

分类树与回归树的区别

分类树采用信息增益、信息增益率、基尼系数来评价树的效果,都是基于概率值进行判断的(对于回归,Y值有概率值?所以不可能有概率值相关的计算);而分类树的叶子节点的预测值一般为叶子节点中概率最大的类别作为当前叶子的预测值。

在回归树种,叶子节点的预测值一般为叶子节点中所有值的均值来作为当前叶子节点的预测值。所以在回归树中一般采用MSE作为树的评价指标,即均方差。(直观表现就是数据的集中情况)当然也可以有其他 评价指标,如MAE(绝对误差)
在这里插入图片描述
一般情况下,只会使用CART算法构建回归树。

举例
1 . 离散

机器学习(决策树三)——简述 ID3 C4.5 CART_第4张图片
通过房产的情况,来看有无偿还的能力。

2 . 连续
机器学习(决策树三)——简述 ID3 C4.5 CART_第5张图片
这里是看有无房产时,对应的贷款钱数,是以叶子节点中样本的均值作为预测值。
所以最终情况,是把连续的数据变成了离散的,以每个叶子节点的均值作为各个离散的点。画在图上,是一个个的点,而不像线性回归是连续的线。换句话说,我们本身希望预测是一个连续的情况,但通过回归树变成了离散的,也就是预测结果是集中在那几个点上的。
线性回归找的是拟合的线。所以,一般来讲,线性回归预测效果更好。

总结

决策树常见的算法有ID3 C4.5 CART,这里并没有做详细的讲解。上篇博客讲的决策树,理解了决策树,再看这几个算法,其实特别简单。我也相信,看完这几个算法简单介绍后,绝对不会是那种抽象的理解。
当年自己学习决策树时,什么“信息熵”,什么“信息增益”,什么“基尼系数”了……是一脸的懵逼。
机器学习(决策树三)——简述 ID3 C4.5 CART_第6张图片
通过这些简单的,但是还算比较形象的理解之后,再看其他专业介绍的,会so easy……

你可能感兴趣的:(机器学习)