机器学习实战(八)分类回归树CART(Classification And Regression Tree)

本文介绍了机器学习中的分类回归树(CART),包括回归树和模型树的概念,以及剪枝(预剪枝和后剪枝)策略。CART在复杂数据的回归中有广泛应用,具有处理非线性数据的能力。文章详细阐述了CART的构建过程,如信息增益和总方差在选择最佳特征时的作用,并探讨了模型树的线性拟合特性。此外,还讨论了剪枝对防止过拟合的重要性,以及预剪枝和后剪枝的具体实现方法。
摘要由CSDN通过智能技术生成

目录

0. 前言

1. 回归树

2. 模型树

3. 剪枝(pruning)

3.1. 预剪枝

3.2. 后剪枝

4. 实战案例

4.1. 回归树

4.2. 模型树


学习完机器学习实战的分类回归树,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。

所有代码和数据可以访问 我的 github

如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~

0. 前言

分类回归树(Classification And Regression Tree)主要用于复杂数据的回归。

  • 优点:可以对复杂和非线性的数据建模
  • 缺点:结果不易理解
  • 适用数据类型:数值型和标称型在数据(标称型数据需映射成二值型)

在 ID3 算法中,每次选择最佳的特征分割数据,特征有几种取值,树的结点就有几棵子树,而且连续型特征需转换为离散型。选择过的特征会被筛除,不会再次选择。

在 CART 算法中,每次选择最佳的特征分割数据,但是只进行二元切分,产生两棵子树。选择过的特征,不会被筛除,仍有可能被选择。

  • 回归树:叶子结点为常数,即预测值
  • 模型树:叶子结点为线性方程

1. 回归树

在 ID3 算法中,根据信息增益定义数据的混乱度。

在 CART 算法中,根据总方差(方差乘以样本大小)定义数据的混乱度:

\sum_{i=1}^{m}(y^{(i)}-\mu_y)^2

在分类中,叶子节点表示的是对应的类别。

在回归中,叶子节点表示的是对应的预测值,在训练模型的时候,使用数据结果的均值作为叶子节点

创建树的伪代码如下表示:

每次选择最佳特征和特征值时,采用误差作为衡量标准,伪代码如下表示:

注:训练数据结果相同、划分后最小误差和划分前误差相差不大、划分后数据集很小,这几种情况都直接返回叶子结点,不进行划分。

2. 模型树

模型树在训练的时候,当满足返回叶子结点的条件的时候,对剩余数据进行线性拟合,返回拟合参数,所以叶子结点是线性拟合的参数

模型树的可解释性是它优于回归树的特点,当数据由分段函数组成的时候,模型树可以更好的发挥它的作用。

在模型树中,误差的计算采用的是误差平方和:

\sum_{i=1}^{m}(y^{(i)}-\hat{y}^{(i)})^2

3. 剪枝(pruning)

如果一棵树的结点过多,可能会造成过拟合,需要对树进行剪枝,去掉不必要的枝条,以降低复杂度。

  • 预剪枝(prepruning):在创建树的时候,预先判断,如果会造成过于复杂,则不扩展这个枝条
  • 后剪枝(postpruning):在树创建了之后,对其进行测试,如果会造成过于复杂,则剪去这个枝条

一般地,为了达到更好的剪枝效果,会同时采用两种剪枝方法

3.1. 预剪枝

在选择最佳特征的伪代码中,划分后最小误差和划分前误差相差不大、划分后数据集很小,就直接返回叶子结点,不划分数据扩展枝条,这就是预剪枝。

预剪枝

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值