文章目录

  • ​​一、简介​​
  • ​​二、决策树分类原理​​
  • ​​1.熵​​
  • ​​2.决策树的划分依据一------信息增益​​
  • ​​3. 决策树的划分依据二----信息增益率​​
  • ​​4.决策树的划分依据三——基尼值和基尼指数​​
  • ​​5. 决策树构建的基本步骤如下:​​
  • ​​6.总结 常见决策树类型比较​​
  • ​​6.1 ID3 算法​​
  • ​​6.2 C4.5算法​​
  • ​​6.3 CART算法​​

一、简介

决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。

二、决策树分类原理

1.熵

  1. 熵 是指混乱程度(虽然以前化学课总睡觉,但这个词还是记着的)系统越有序,熵值越低;系统越混乱或者分散,熵值越高。
  2. 熵的公式
  3. 决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_数据集

  4. 如下图 是运用公式计算的一个例子。
  5. 决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_数据集_02

2.决策树的划分依据一------信息增益

  1. 信息增益 挺简单的 记住这个公式即可:
    信息增益 = entroy(前) - entroy(后)
    再或者说就是 划分前的熵值 - 划分后的熵值
  2. 看个例子:
    如下左图,第一列为论坛号码,第二列为性别,第三列为活跃度,最后一列用户是否流失。
    我们要解决一个问题:性别和活跃度两个特征,哪个对用户流失影响更大?【下面我只放了对于 “性别”影响的计算】
  3. 决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_数据集_03


  4. 决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_算法_04

3. 决策树的划分依据二----信息增益率

  1. 信息增益率信息增益的改良版。
    信息增益总是更倾向于选择分类数量多的特征。比如一组数据中的系列号,所有的序列号都不一样,是信息增益最大的一个选项,但对于实际并无意义~
  2. 信息增益率的计算方法。
  3. 决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_算法_05

4.决策树的划分依据三——基尼值和基尼指数

基尼值Gini(D):从数据集D中随机抽取两个样本,其类别标记不一致的概率。故,Gini(D)值越小,数据集D的纯度越高。

基尼值计算:【有点绕,认真看一个例子就想起来了…】

决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_信息增益_06

5. 决策树构建的基本步骤如下:

  1. 开始将所有记录看作一个节点
  2. 遍历每个变量的每一种分割方式,找到最好的分割点
  3. 分割成两个节点N1和N2
  4. 对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止。

6.总结 常见决策树类型比较

决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_数据集_07


决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤_信息增益_08

6.1 ID3 算法

存在的缺点

(1) ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息.

(2) ID3算法只能对描述属性为离散型属性的数据集构造决策树。

6.2 C4.5算法

做出的改进(为什么使用C4.5要好)

(1) 用信息增益率来选择属性

(2) 可以处理连续数值型属性

(3)采用了一种后剪枝方法

(4)对于缺失值的处理

C4.5算法的优缺点

优点: 产生的分类规则易于理解,准确率较高。

缺点:

  • 在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
  • 此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

6.3 CART算法

CART算法相比C4.5算法的分类方法,采用了简化的二叉树模型,同时特征选择采用了近似的基尼系数来简化计算。

C4.5不一定是二叉树,但CART一定是二叉树。

同时,无论是ID3, C4.5还是CART,在做特征选择的时候都是选择最优的一个特征来做分类决策,但是大多数,分类决策不应该是由某一个特征决定的,而是应该由一组特征决定的。 这样决策得到的决策树更加准确。这个决策树叫做多变量决策树(multi-variate decision tree)。在选择最优特征的时候,多变量决策树不是选择某一个最优特征,而是选择最优的一个特征线性组合来做决策。这个算法的代表是OC1,这里不多介绍。

如果样本发生一点点的改动,就会导致树结构的剧烈改变。这个可以通过集成学习里面的随机森林之类的方法解决。