CART算法步骤
1、特征选择;
2、递归建立决策树;
3、决策树剪枝;
第一部分:特征选择
CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。
连续型特征处理方式
m个样本的连续特征A有m个值,从小到大排列 ,则CART取相邻两样本值的平均数做划分点,一共有m-1个;
分别计算以这m-1个点作为二元分类点时的基尼系数。选择基尼系数最小的点为该连续特征的二元离散分类点。
2、建树过程
建立CART分类树步骤
输入:训练集D,基尼系数的阈值,切分的最少样本个数阈值
输出:分类树T
算法从根节点开始,用训练集递归建立CART分类树。
对于当前节点的数据集为D,如果样本个数小于阈值或没有特征,则返回决策子树,当前节点停止递归;
计算样本集D的基尼系数,如果基尼系数小于阈值,则返回决策树子树,当前节点停止递归 ;
计算当前节点现有各个特征的各个值的基尼指数,
在计算出来的各个特征的各个值的基尼系数中,选择基尼系数最小的特征A及其对应的取值a作为最优特征和最优切分点。 然后根据最优特征和最优切分点,将本节点的数据集划分成两部分 和 ,同时生成当前节点的两个子节点,左节点的数据集和右节点的数据集。
对左右的子节点递归调用1-4步,生成CART分类树;
对生成的CART分类树做预测时,假如测试集里的样本落到了某个叶子节点,而该节点里有多个训练样本。则该测试样本的类别为这个叶子节点里概率最大的类别。
3、剪枝
当分类回归树划分得太细时,会对噪声数据产生过拟合,因此要通过剪枝来解决。剪枝又分为前剪枝和后剪枝,前剪枝是指在构造树的过程中就知道哪些节点可以剪掉 。 后剪枝是指构造出完整的决策树之后再来考查哪些子树可以剪掉。
在分类回归树中可以使用的后剪枝方法有多种,比如:代价复杂性剪枝、最小误差剪枝、悲观误差剪枝等等。这里只介绍代价复杂性剪枝法。