文章目录

  • 一、决策树
  • 1.ID3(利用信息增益选择属性)
  • 1.计算根节点的信息熵
  • 2.计算每个属性的信息熵
  • 3.划分
  • 2.C4.5(利用信息增益率)
  • 3.基尼指数
  • 二、剪枝
  • 1.预剪枝




一、决策树

1.ID3(利用信息增益选择属性)

实际上决策树就是一个迭代的计算信息熵的过程。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_决策树

1.计算根节点的信息熵

这一步就是计算label的信息熵

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_02


可以看见label(好瓜)是二分类,有8个是,9个否。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_03

2.计算每个属性的信息熵

每个属性都有几个值,分别查看每个值对应的label并带入公式。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_04


这是关于色泽的计算,青绿有6个,其中3个是和3个否。

乌黑有6个,其中4个是和2个否。

浅白有5个,其中1个是和4个否。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_周志华机器学习西瓜决策树程序_05


计算信息增益。每个属性都可以这样获得一个增益,我们需要选择增益最大的作为节点,即属性的熵最小。

3.划分

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_信息增益_06


可以看见纹理的增益最大,那么根节点就是纹理了。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_07


纹理有三个取值,就分成三个子节点。每个子节点拥有划分后的数据集,例如最左边的节点的数据的纹理全部是清晰。如此根据新的数据集重复上述操作。

2.C4.5(利用信息增益率)

C4.5是ID的一种改进。我们依旧需要计算信息增益,在此基础上还要计算分割增益(IV)。

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_信息增益_08


周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_决策树_09


IV的计算与计算每个属性的熵不同,它不关注label。它关注属性的分类,D是样本数目,Dv是属性每个分类的样本数目。

3.基尼指数

CART 决策树根据基尼指数进行分割。CART 算法一定是二叉树。

总的基尼指数:

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_信息增益_10


分割后的基尼指数,用来计算增益率(与ID3一样计算所有的属性分割后的基尼指数):

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_11


举例:

周志华机器学习西瓜决策树程序 西瓜数据集决策树计算_学习_12


gini(T)是总的基尼指数,gini(T1)和gini(T2)是分割后节点的基尼指数,根据公式Gini_index获得ginis1(T)。

二、剪枝

1.预剪枝

预剪枝通过一系列参数来限制决策树的展开,减少过拟合的风险。书中介绍的方法是在进行节点展开时计算展开前后的精确度,如果划分后精确度提升就要划分。
此外,预剪枝也可以通过设置一系列参数进行,例如限制树的层数或当某个划分中的样本数小于某个值就停止划分。