美文网首页
「数据分类」14决策树分类之CART算法

「数据分类」14决策树分类之CART算法

作者: 林拂晓 | 来源:发表于2020-02-04 13:38 被阅读0次

    1.CART算法与ID3算法对比

    (1)CART算法解决了ID3算法的不足,既能用于分类问题,又能用于回归问题。

    (2)实际上,CART算法的主体结构和ID3算法基本相同,只是在以下几点有所改变:

    ①选择划分特征时,ID3使用信息熵量化数据集的混乱程度;CART使用基尼指数(Gini Index)和均方误差(MSE)量化数据集的混乱程度。

    【注】CART算法用于分类使用基尼指数,用于回归使用均方误差。

    ②选定某切分特征时,ID3算法使用该特征所有可能的取值进行切分,例如一个特征有k个取值,数据集则被切成k份,创建k个子树;CART算法使用某一阈值进行二元切分,即在特征值的取值范围区间内进行选择一个阈值t,将数据集切成两份,然后使用一个数据子集(大于t)构建左子树,使用另一个数据子集(小于等于t)构造右子树,因此CART算法构建的是二叉树。

    ③对于已用于创建内部节点的特征,在后续运算中(创建子树中的节点时),ID3算法不会再次使用它创建其它内部节点;CART算法可能会再次使用它创建其他内部节点。

    (3)CART算法不仅可以处理离散值特征,也可以处理连续值特征。

    处理连续值特征的思路为:把数据集中的每一个特征动态地转换成多个布尔值特征,形成新特征空间中的数据集。

    实例:假设某数据集中有一个“温度”特征,该特征出现过的值有[10,-15,0,-9,5,22]

    CART算法将做以下处理:

    ①先将“温度”特征出现的值排序,得到列表[-15,-9,0,5,10,22](6个值);

    ②依次取[-15,-9,0,5,10,22]中相邻两值得中点作为阈值点,将得到阈值列表[-12,-4.5,2.5,7.5,16](5个值);

    ③使用每一个阈值与原来特征的值进行比较,便得到了取值为0或1的布尔值特征,例如“温度是否大于-12”、“温度是否大于-4.5”(共5个)。

    使用以上处理方法,在数据集中k个取值的“温度”特征就被转换成了k-1个布尔值特征。

    2.CART算法详述

    CART算法相关概念及功能

    【注】iris鸢尾花数据集和boston房价数据集都是sklearn库自带的数据集,编写程序时直接load进去就可以使用了。

    (1)分类树案例:给iris数据集进行分类

    CART分类树 模型拟合结果 iris数据集分类树

    (2)回归树案例:对boston房价进行回归预测

    说明:cart回归树划分数据集的过程和分类树的过程是一样的,回归树得到的预测结果是连续值,评判不纯度的指标不同;分类树采用的是基尼系数,回归树需要根据样本的离散程度来评价不纯度,采用的是均方误差

    节点划分(即计算样本的离散程度)

    ①最小绝对偏差(LAD):样本值减去样本均值的绝对值,即

    最小绝对偏差

    【注】此公式不是十分肯定,后续查找到相关资料再对其进行修改。

    ②最小二乘偏差(LSD):每个样本值减去样本均值的平方和除以样本数,即

    最小二乘偏差(均方误差) CART回归树 模型拟合结果

    相关文章

      网友评论

          本文标题:「数据分类」14决策树分类之CART算法

          本文链接:https://www.haomeiwen.com/subject/ujsrxhtx.html