机器学习笔记7-CART决策树+剪枝

CART算法

CART又名分类回归树,该算法既可以用于分类还可以用于回归。

CART树有以下几个关键点:

  • CART是一棵二叉树;
  • 当CART是分类树时,采用GINI值作为节点分裂的依据;
  • 当CART是回归树时,采用样本的最小方差作为节点分裂的依据;

CART树节点的分裂分为两种情况,连续型的数据和离散型的数据。分裂的目的是为了能够让数据变纯,使决策树输出的结果更接近真实值。那么CART是如何评价节点的纯度呢?如果是分类树,CART采用GINI值(基尼指数)衡量节点纯度;如果是回归树,采用样本方差衡量节点纯度。节点越不纯,节点分类或者预测的效果就越差。

分类模型:

ID3中使用了信息增益选择特征,增益大优先选择。C4.5中,采用信息增益比选择特征,减少因特征值多导致信息增益大的问题。CART分类树算法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(比)相反。

机器学习笔记7-CART决策树+剪枝      机器学习笔记7-CART决策树+剪枝

回归模型:

采用和方差度量,度量目标是对于划分特征A,对应划分点s两边的数据集D1和D2,求出使D1和D2各自集合的均方差最小,同时D1和D2的均方差之和最小。表达式为:

机器学习笔记7-CART决策树+剪枝

 

下面举例说明:

看电视时间 婚姻情况 职业 年龄
3 未婚 学生 12
4 未婚 学生 18
2 已婚 老师 26
5 已婚 上班族 47
2.5 已婚 上班族 36
3.5 未婚 老师 29
4 已婚 学生 21

以职业这个属性来划分,总共有三种划分方法

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

机器学习笔记7-CART决策树+剪枝

预测是否已婚(分类):

机器学习笔记7-CART决策树+剪枝

预测年龄(回归):

机器学习笔记7-CART决策树+剪枝

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

机器学习笔记7-CART决策树+剪枝

预测是否已婚(分类):

机器学习笔记7-CART决策树+剪枝

预测年龄(回归):

机器学习笔记7-CART决策树+剪枝

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

机器学习笔记7-CART决策树+剪枝

预测是否已婚(分类):

机器学习笔记7-CART决策树+剪枝

预测年龄(回归):

机器学习笔记7-CART决策树+剪枝

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

回归树和模型树:

CART算法将数据集切分成多份易建模的模型。

回归树:叶子节点使用分段常数

模型树:叶子节点使用线性回归方程

CART树算法的剪枝

预剪枝:在创建树的时候添加一些限制条件,例如方差的差值大于某个阈值,划分数据集后每个数据集的数量也需要大于某个阈值等。

后剪枝:将数据集划分成测试集和训练集。接下来从上而下找到叶子节点,用测试集来判断将这些叶节点合并是否能降低测试误差。如果是的话就合并。

CART剪枝:参考博客https://blog.****.net/zhengzhenxian/article/details/79083643?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task