决策树之 CART

继上篇文章决策树之 ID3 与 C4.5,本文继续讨论另一种二分决策树 Classification And Regression Tree,CART 是 Breiman 等人在 1984 年提出的,是一种应用广泛的决策树算法,不同于 ID3 与 C4.5, CART 为一种二分决策树, 每次对特征进行切分后只会产生两个子节点,而ID3 或 C4.5 中决策树的分支是根据选定特征的取值来的,切分特征有多少种不同取值,就有多少个子节点(连续特征进行离散化即可)。CART 设计回归与分类,接下来将分别介绍分类树与回归树。

回归树与模型树

首先简单回忆线性回归:是对于数据集 $D = {(x_1,y_1),(x_2,y_2),…,(x_N,y_N)}$ ,线性回归的模型为:

\[ \bar{y}_i = \theta ^T x_i \]

损失函数可以记做:

\[L(\theta) = \frac{1}{N}\sum_i(\bar{y}_i  - y_i)^2\]

Liner Regression 已经很强大,可以处理线性数据集,对于一些样本呈弯曲的点,可以考虑引入高次特征的线性回归,或者进行局部加权回归,局部加权回归模型同线性回归,只不过损失函数进行了一些改进:

\[L(\theta) = \frac{1}{N}\sum_iw_i(\bar{y}_i  - y_i)\]

\[w_i = exp \left (\frac{x_i-x}{2 \tau ^2}  \right ) \]

这里 $\tau$ 控制了权值变化的速率,每个样本  $x_i$  都有一个权值,权值根据 $\tau$ 来调整大小,离样本点 $x_i$ 越近的样本其权值却大,局部加权回归的预测模型同线性回归,关于局部加权回归与线性回归的图形分别如下:

线性回归是一个关于全局数据的模型,把整个数据集合当做一个目标优化,当数据并不呈现线性的时候,比如如下图所示的数据,全局共享一个优化目标显然不是一个很好的选择,这时可以对数据进行划分,划分后的数据进行分片线性回归明显是一个不错的选择。下图所示的数据可以划分为 5 个分片分别进行处理,分片之后可以对每个分片分别做一个模型,这种情况可以称之为模型树;也可以简单的对分片后的数据取均值,这种情况就是最普通的回归树。接下来分别对回归树与模型树进行介绍。

回归树采用均方误差作为损失函数,树生成时会递归的按最优特征与最优特征下的最优取值对空间进行划分,直到满足停止条件为止,停止条件可以人为设定,比如说设置某个节点的样本容量  $ < MIN$ 则不再进行切分,或者当切分后的损失减小值  $< \varepsilon $,则停止切分,生成叶节点。

对于生成的回归树,每个叶节点的类别为落到该叶节点数据的标签的均值,假设特征空间被划分为 $M$ 个部分,即现在有 $M$ 个叶节点分别为 $R_1,R_2,…,R_M$ , 对应的数据量分别为 $N_1,N_2,…,N_M$ ,则叶节点的预测值分别为:

\[c_m = \frac{1}{N_m}\sum_{x_i \in R_m} y_i  \ \ \ \ \ \ (*)\]

回归树为一颗二叉树,每次都是按特征下的某个取值进行划分,每一个内部节点都是做一个对应特征的判断,直至走到叶节点得到其类别,构建这棵树的难点在于怎么选取最优的切分特征与切分特征对应的切分变量。若这里按第 $j$ 个特征的取值 $s$ 进行切分,切分后的两个区域分别为:

\[R_1(j,s) = \left \{ x_i|x_i^j \le s \right \} \ \ \ R_2(j,s) = \left \{ x_i|x_i^j > s \right \}\]

根据 $(*)$ 分别计算 $R_1$ 与 $R_2$ 的类别估计 $c_1$ 与 $c_2$, 然后计算按 $(j,s)$ 切分后得到的损失:

\[\min_{j,s} \left [   \sum _{x_i \in R_1}(y_i –c_1)^2 + \sum_{x_i \in R_2} (y_i –c_2)^2  \right ]\]

找到使损失最小的 $(j,s)$ 对即可,递归执行 $(j,s)$ 的选择过程直到满足停止条件为止。综上给出回归树的算法:

输入: 训练数据集 $D$

输出: 回归树 $T$

1)求解选择最优的切分特征 $j$ 与 切分特征取值 $s$ ,$(j,s)$ 应满足以下条件:

\[\min_{j,s} \left [   \sum _{x_i \in R_1}(y_i –c_1)^2 + \sum_{x_i \in R_2} (y_i –c_2)^2  \right ]\]

2)计算按照最优 $(j,s)$ 切分的数据集:

\[R_1(j,s) = \left \{ x_i|x_i^j \le s \right \} \ \ \ R_2(j,s) = \left \{ x_i|x_i^j > s \right \}\]

\[c_1 = \frac{1}{N_1}\sum_{x_i \in R_1} y_i   \ \ \ \ c_2 = \frac{1}{N_2}\sum_{x_i \in R_2} y_i  \]

3)递归条用 $1) \sim  2)$ ,知道满足停止条件。

4)返回决策树 $T$.

分类树

时间: 2024-10-03 23:02:33

决策树之 CART的相关文章

机器学习技法-决策树和CART分类回归树构建算法

课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增强(AdaBoost) Bagging和AdaBoost算法再分类的时候,是让所有的弱分类器同时发挥作用.它们之间的区别每个弱分离器是否对后来的blending生成G有相同的权重. Decision Tree是一种有条件的融合算法,每次只能根据条件让某个分类器发挥作用. 二.基本决策树算法 1.用递

用决策树(CART)解决iris分类问题

首先先看Iris数据集 Sepal.Length--花萼长度 Sepal.Width--花萼宽度 Petal.Length--花瓣长度 Petal.Width--花瓣宽度 通过上述4中属性可以预测花卉属于Setosa,Versicolour,Virginica 三个种类中的哪一类 决策树 by CART 决策树有挺多种,这里讲下CART CART的执行过程是这样的: 用特征值k和下限tk二分子集 不断二分,直到到达最大深度或者划分不能再减少不纯度为止 这一下sklearn都会自动帮我们完成,我们

决策树介绍

 决策树(decision tree)     决策树:是一种基本的分类和回归方法.它是基于实例特征对实例进行分类的过程,我们可以认为决策树就是很多if-then的规则集合. 优点:1)训练生成的模型可读性强,我们可以很直观的看出生成模型的构成已经工作方式,因为模型就是由数据属性和类别构成一棵树.  2)由于是一棵树,所以它的预测分类速度快,想想一棵树能有多大的深度.如果是一颗二叉树即使有N个数据,深度也只有logN. 原则:根据损失函数最小化的原则建立决策树模型(其实大部分模型都是这个原则)

统计学习方法:CART算法

作者:桂. 时间:2017-05-13  14:19:14 链接:http://www.cnblogs.com/xingshansi/p/6847334.html . 前言 内容主要是CART算法的学习笔记. CART算法是一个二叉树问题,即总是有两种选择,而不像之前的ID3以及C4.5B可能有多种选择.CART算法主要有回归树和分类树,二者常用的准则略有差别:回归树是拟合问题,更关心拟合效果的好坏,此处用的是均方误差准则; 分类树是分类问题,更像是离散变量的概率估计,用与熵类似的Gini系数进

统计学习笔记之决策树(二)

1.CART分类树的特征选择 分类问题中,假设有K个类,样本点属于第k类的概率为,则概率分布的基尼指数定义为: 如果,集合D根据特征A是否取某一可能值a被分割成和,在特征A的条件下,集合D的基尼指数定义为: 基尼指数代表了模型的不纯度,基尼指数越小,不纯度越小,特征越好. 2.CART分类树的生成算法 输入:训练数据集D,停止计算条件; 输出:CART决策树. 根据训练数据集,从根结点开始,递归的对每个结点进行以下操作,构建二叉树: (1)计算现有特征对该数据集的基尼指数; (2)在所有可能的特

统计学习方法c++实现之四 决策树

决策树 前言 决策树是一种基本的分类和回归算法,书中主要是讨论了分类的决策树.决策树在每一个结点分支规则是一种if-then规则,即满足某种条件就继续搜索左子树,不符合就去右子树,看起来是用二叉树实现对吧,实际的CART决策树就是二叉树,等会再介绍.现在先来看看决策树的理论部分.代码地址https://github.com/bBobxx/statistical-learning/blob/master/src/decisiontree.cpp 决策树相关理论 决策树的学习通常包括三个部分:特征选

常用的机器学习知识(点)

常用的机器学习&数据挖掘知识(点) 声明:想做机器学习&数据挖掘的学弟学妹,可以看看,转载请说明出处... 常用的机器学习知识(点) Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),MLE(MaximumLikelihood Estimation最大似然估计),QP(Quadratic Programming 二次规划), CP(Conditi

常用的机器学习&amp;数据挖掘知识点

Basis(基础):MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),MLE(MaximumLikelihood Estimation最大似然估计),QP(Quadratic Programming 二次规划), CP(Conditional Probability条件概率),JP(Joint Probability 联合概率),MP(Marginal Probabilit

【基础】常用的机器学习&amp;数据挖掘知识点

转自http://www.36dsj.com/archives/20135 Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Least Square Methods 最小二乘法),MLE(MaximumLikelihood Estimation最大似然估计),QP(Quadratic Programming 二次规划), CP(Conditional Probability条件概率),JP(Joint P