机器学习——决策树(CART算法)

663 阅读3分钟

「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战

决策树原理以及ID3算法见juejin.cn/post/703149…

决策树C4.5算法见juejin.cn/post/703562…

CART算法

Classification and Regression Tree (CART) 是决策树的一种。

用基尼指数来选择属性(分类),或用均方差来选择属性(回归)。

顾名思义,CART算法既可以用于创建分类树,也可以用于创建回归 树,两者在构建的过程中稍有差异。

如果目标变量是离散的,称为分类树。 如果目标变量是连续的,称为回归树。

分类CART算法

基尼指数

分类时用基尼指数来选择属性

例子:

image.png

image.png

回归CART算法

用均方差来选择属性

对于连续值的处理,CART 分类树采用基尼系数的大小来度量特征的各个划分点。 对于任意划分特征 𝐴,对应的任意划分点𝑠 两边划分成的数据集 𝐷1和𝐷2 ,求出使 𝐷1和𝐷2各自集合的均方差最小,同时 𝐷1和𝐷2的均方差之和最小所对应的特征和特 征值划分点。表达式为:

image.png

其中,𝑐1为𝐷1数据集的样本输出均值,𝑐2为𝐷2 数据集的样本输出均值。

预测方式

对于决策树建立后做预测的方式,上面讲到了 CART 分类树采用叶子节点 里概率最大的类别作为当前节点的预测类别。 而回归树输出不是类别,它采用的是用最终叶子的均值或者中位数来预测输出结果。

剪枝

CART算法采用一种“基于代价复杂度的剪枝”方法进行后剪枝,这种方法会生 成一系列树,每个树都是通过将前面的树的某个或某些子树替换成一个叶节点而 得到的,这一系列树中的最后一棵树仅含一个用来预测类别的叶节点。然后用一 种成本复杂度的度量准则来判断哪棵子树应该被一个预测类别值的叶节点所代替 。 这种方法需要使用一个单独的测试数据集来评估所有的树,根据它们在测试数据 集熵的分类性能选出最佳的树。

CART算法采用一种“基于代价复杂度的剪枝”方法进行后剪枝,这种方法会生 成一系列树,每个树都是通过将前面的树的某个或某些子树替换成一个叶节点而 得到的,这一系列树中的最后一棵树仅含一个用来预测类别的叶节点。然后用一 种成本复杂度的度量准则来判断哪棵子树应该被一个预测类别值的叶节点所代替 。 这种方法需要使用一个单独的测试数据集来评估所有的树,根据它们在测试数据 集熵的分类性能选出最佳的树。

具体方法:

(1)计算每一个结点的条件熵 (2)递归的从叶子节点开始往上遍历, 减掉叶子节点,然后判断损失函数的 值是否减少,如果减少,则将父节点 作为新的叶子节点 (3)重复(2),直到完全不能剪枝。

image.png