决策树、回归树算法

1. 决策树

用到是信息论

1.1 ID3算法

决策树、熵与最大熵
选择信息增益最大得那个特征,才符合算法思想。

决策树、回归树算法_第1张图片
图1

1.计算类别的自身的熵(A)。
2.选择某一特征后,看类别在此特征所占比例(如图一),首先计算这一特征下的类别的熵值,这里的特征有三个属性,分别计算后得到三个熵值。然后计算每一个属性个数与整个样本的比值,分别与上面的三个熵值相对应相乘,得到这个特征的信息熵(B)。每个特征都这样算。
3.信息增益(C),C = A - B 。选择信息增益值最大的那个,因为它能使系统的熵下降的最快。

1.2 C4.5

《机器学习实战》笔记之九——树回归
中的第一个图。
决策树都有哪些算法

1.3 基尼系数

选择基尼系数小的作为最佳分割点。

GINI指数
1、是一种不等性度量;
2、通常用来度量收入不平衡,可以用来度量任何不均匀分布;
3、是介于0~1之间的数,0-完全相等,1-完全不相等;
4、总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)
定义:分类问题中,假设有 K 个类,样本属于第 k 类的概率为 PK,则概率分布的基尼指数定义为:


对于二类分类问题,若样本点属于第1个类的概率是P,则概率分布的基尼指数为:

Gini(p) = 2P(1-P)

对于给定的样本集合D,其基尼指数为


决策树、回归树算法_第2张图片

这里CK是D中属于第k类的样本子集,K是类的个数。

如果训练数据集D根据特征A是否取某一可能值a被分割为D1和D2两部分,则在特征A的条件下,集合D的基尼指数定义为


基尼指数Gini(D)表示集合D 的不确定性,基尼指数Gini(D,A)表示经A = a 分割后集合D的不确定性。基尼指数越大,样本集合的不确定性也就越大,这一点与熵相似。
举个例子说明一下。
问题,


决策树、回归树算法_第3张图片
数据表格

具体实例以及怎么计算?


决策树、回归树算法_第4张图片

决策树、回归树算法_第5张图片

总结
如果是分类树,CART采用GINI值衡量节点纯度;如果是回归树,采用样本方差衡量节点纯度。节点越不纯,节点分类或者预测的效果就越差。

基尼指数和ID3算法完全不一样。举个例子:如果某离散属性一个有三个离散值X,Y,Z,则该属性的分裂方法有{X}、{Y,Z}, {Y}、{X,Z}, {Z}、{X,Y},分别计算每种划分方法的基尼值或者样本方差确定最优的方法。计算Gini值(二分类和多分类的公式不太一样哈),根据一个特征分成三部分,然后计算每一部分基尼指数,找到最小的基尼值。

以属性“职业”为例,一共有三个离散值,“学生”、“老师”、“上班族”。该属性有三种划分的方案,分别为{“学生”}、{“老师”、“上班族”},{“老师”}、{“学生”、“上班族”},{“上班族”}、{“学生”、“老师”},分别计算三种划分方案的子节点GINI值或者样本方差,选择最优的划分方法,如下图所示:
第一种划分方法:{“学生”}、{“老师”、“上班族”}

决策树、回归树算法_第6张图片

预测是否已婚(分类):

预测年龄(回归):

第二种划分方法:{“老师”}、{“学生”、“上班族”}
决策树、回归树算法_第7张图片

预测是否已婚(分类):

预测年龄(回归):

第三种划分方法:{“上班族”}、{“学生”、“老师”}

决策树、回归树算法_第8张图片

预测是否已婚(分类):


预测年龄(回归):



综上,如果想预测是否已婚,则选择{“上班族”}、{“学生”、“老师”}的划分方法,如果想预测年龄,则选择{“老师”}、{“学生”、“上班族”}的划分方法。

2.CART

决策树很容易发生过拟合,可以改善的方法有:

1、通过阈值控制终止条件,避免树形结构分支过细。
2、通过对已经形成的决策树进行剪枝来避免过拟合。
3、基于Bootstrap的思想建立随机森林。

这里我们用 代价复杂度剪枝 Cost-Complexity Pruning(CCP) 方法来对 CART 进行剪枝。

你可能感兴趣的:(决策树、回归树算法)