一、什么是CART
CART(Classification And Regression Tree)是决策树家族中的一种算法,也是十大算法中的一种。根据其名字可以将CART分成三种:a. 回归树(Classification Tree),b.回归树(Regression Tree)。本文简单介绍些利用最小剩余方差法(Squared Residuals Minimization)来判定回归树的最优划分,这个准则期望划分之后的子树与样本点的误差方差最小。
在创建回归模型时,样本的取值分为观察值和输出值两种。当观察值和输出值都是连续的,而不是分类标签时,只有根据数据集的数据特征来创建一个预测的模型,进而反映出曲线的变化趋势。CART使用最小剩余方差法来判定回归树的最优划分,该准则是期望划分之后的子树误差方差最小。创建模型树,每个叶子节点则是一个机器学习模型,如线性回归模型。
二、原理
将数据集切分成很多子模型数据集,然后利用线性回归技术来建模。如果每次切分后的数据子集任然难以拟合,就继续切分。在这种切分方式下创建出的预测树,每个叶子节点都是一个线性回归模型。这些线性回归模型反映了样本集合(观测集合)中蕴含的模式,也称为模型树。因此,CART不仅支持整体预测,也支持局部模式的预测,并有能力从整体中找到模式,或根据模式组合成为一个整体。整体与模式之间的相互结合,对于预测分析有重要的价值。因此,CART决策树算法在预测中的应用十分广泛。
三、最小剩余方差法
在回归数中,数据集均是连续的。连续数据的处理方法与离散数据不同,离散数据是根据每个特征的取值来划分的,而连续特征则要计算出最优的划分点。但连续数据集上计算线性相关度非常简单,算法思想来源于最小二乘法。具体方法如下:
首先,求出划分数据列的均值和总方差。总方差的计算方法有两种。(1)先求均值m,计算每个数据点与m的方差,然后将n个点求和。(2)先求方差var,然后var_sum = var * n,n为数据集数据数目。每次最佳分支特征的选取过程如下:
(1)令最佳方差为无限大 best_Var = inf。
(2)依次遍历所有特征列及每个特征的所有样本点(二重循环),在每个样本点上二分数据集。
(3)计算二分数据集后的总方差current_Var(划分后左、右子数据集的总方差之和),如果current_Var < best_Var,则best_Var = current_Var。
(4)返回计算的最优分支特征列、分支特征值(连续特征则为划分点的值),以及左右分支子数据集到主程序。
四、CART算法流程
(1)决策树的主函数是一个递归函数。其主要功能是按照CART的规则生长出决策树的各个分支的节点,并根据终止条件结束算法。
A. 输入需要分类的数据集合类别标签。
B. 使用最小剩余方差法判定回归树的最优划分,并创建特征的划分节点——最小剩余方差子函数。
C. 在划分节点划分数据集为两部分——二分数据集子函数。
D. 根据二分数据的结果构建出新的左、右节点,作为树生长出来的两个分支。
E. 检查是否符合递归的终止条件。
F. 将划分的新节点包含的数据集和类别标签作为输入,递归执行上述步骤。
(2)使用最小剩余方差子函数,计算数据集各列的最优划分方差、划分列、划分值。
(3)二分数据集:根据给定的分隔列和分隔值将数据集一分为二,分别返回。
(4)剪枝策略:使用先剪枝和后剪枝策略对计算出的决策树进行剪枝。