决策树系列(三):CART(分类回归树)-详细原理解析
发布网友
发布时间:2024-10-02 15:35
我来回答
共1个回答
热心网友
时间:2024-11-20 11:52
CART,即分类回归树,具有以下特点:
(1)CART是一棵二叉树;
(2)CART既能是分类树,又能是回归树,由目标任务决定;
(3)当CART是分类树时,采用GINI值作为结点*的依据;当CART是回归树时,采用MSE(均方误差)作为结点*的依据;
分类树和回归树的区别在于:针对分类任务,就是分类树;针对回归任务,就是回归树。分类任务:预测目标是离散值,例如预测该用户是否会逾期,逾期是一类,用1表示,不逾期是另一类,用0表示。分类树采用GINI值作为结点*的依据;回归任务:预测目标是连续值,例如预测用户的身高。回归树采用MSE(均方误差)作为结点*的依据。
下面以回归树为例,详细写一下树的*和生成过程。
回归树的算法详解,其实就是回归树的生成过程。
步骤如下:
1、原始数据集S,此时树的深度depth=0。
2、针对集合S,遍历每一个feature的每一个value,用该value将原数据集S*成2个集合:左集合S_left(<=value的样本)、右集合S_right(>value的样本),每一个集合也叫做一个结点。分别计算这2个集合的mse,找到使得(left_mse+right_mse)最小的那个value,记录下此时的feature名称和value,这个就是最佳分割特征以及最佳分割值。
3、为什么要用均方差mse来作为*的依据呢?只要是能衡量预测值和真实值/目标值之间的差距的数学公式,都可以用,例如信息增益、信息增益比、基尼系数等等。但是均方差有更好的好处:一阶导数和二阶导数可求并好求。
4、找到最佳分割feature以及最佳分割value之后,用该value将集合S*成2个集合:左集合S_left、右集合S_right,每一个集合也叫做一个结点。此时树的深度depth += 1。
5、针对集合S_left、S_right分别重复步骤2,3,直到达到终止条件。
终止条件有:
1、特征已经用完了:没有可供使用的特征再进行*了,则树停止*;
2、子结点中的样本已经都是同一类:此时,样本已经全部被划分出来了,不用再进行区分,该结点停止*(不过一般很难达到,达到的话,该树肯定过拟合);
3、子节点中没有样本了:此时该结点已经没有样本可供划分,该结点停止*;
很多算法中还有以下终止条件,为了防止过拟合:
1、树达到了最大深度:depth >= max_depth,树停止*。
2、结点的样本数量达到了阈值:如果一个集合(结点)的样本数量 < min_samples_leaf,则树停止*;
其中,max_depth和min_samples_leaf都是人为制定的超参数。
6、最后生成的、不再进行*的集合就叫做叶子结点。落在该叶子节点内的样本的预测值,就是该叶子结点的值。同一个叶子结点中的样本具有同一个预测值。
叶子结点值的计算方法:该叶子结点内,所有样本目标值的均值