CART树一般情况下为二叉树,大多数类库实现为二叉树.
分类问题算法:
1 cart树在创建分支的时候 利用基尼指数进行特征以及具体要用来划分的特征值的选择(此处之所以不仅要选择特征还要选择特征值是因为在接下来的操作中只能创建两个节点所以像职业(老师 学生 行政)这样的特征就必须要做出例如 是老师以及不是老师这两个条件进行分支); 二分类问题基尼指数形式为2p(1-p),可以简单的理解为,我们的二分类决策树的目的是尽量的将不同的样本在切一刀的情况下尽量的将分属两个类别的样本分到不同的节点,如果算法一刀将正负样本全部正确的分到不同的两个节点上去的话此时基尼指数为0 无疑这一刀也是成功的 如果这一刀切下去并没有什么效果也就是连个节点上的正负样本比例接近1:1 那么这一刀的基尼指数为0.25(也是二分类情况下的最大基尼指数) 无疑这一刀是失败的 当然在实际工程中,基尼系数没有这么极端,当前迭代通过对当前节点上所有数据的多有特征及特征值的基尼指数进行计算选用基尼指数最大的作为分类依据进行分支的创建.
1 算法终止条件 当前节点的样本数目小于设定值 ,当前几点所有基尼指数小于设定值 当前节点特征数目少
回归问题算法
1 在切每一刀的时候对当前节点所有数据的所有特征 及 在每个特征上扫描切分点进行最小二乘的估计(对分割出来的两个节点上数据分别求(样本label真实值和节点上数据label均值的差)的平方和),在计算后选取最小二乘估计最小的特征及阈值进行分支的创建,之所以可以这么干是因为 在我们具体使用回归树的时候算法给出的预测值就是当前叶子节点所包含的训练数据的label的均值 当然这个值肯定是会被记录在模型节点上的.
2 算法终止条件 树深限制 节点样本数目限制 样本特征限制等
通过以上的说明我们相信为了防止过拟合我们对树的结构作了很多的限制 而且树结构在面对五花八门的数据的时候表达能力并不尽如人意 所以决策树是一种弱的分类树,在此基础上出现了随机森林bagging 以及 提升boost 当然提升并不是只能对决策树进行提升.