• 决策树模型(4)Cart算法


    Cart算法

    Cart是Classification and regression tree的缩写,即分类回归树。它和前面的ID3, C4.5等算法思想一致都是通过对输入空间进行递归划分并确定每个单元上预测的概率分布,进而进行回归和分类任务。只不过由于任务的不同, 所以回归树和分类树的划分准则并不相同。

    Cart生成

    回归树

    模型

    上面说到,我们将特征空间划分为一个个小的单元,假设共有M个,那么对于回归任务来说,每个单元就应该对于一个数值,我们分别记作Rici。那么决策树模型就可以表示为

    f(x)=m=1McmI(xRm)

    即同一个所属同一个单元内的样本的值相同。
    那么我们的每个单元上的预测误差就可以用下面的式子表示

    L=xiRm(yif(xi))2=xiRm(yicm)2

    L=0,我们可以得到

    c^m=ave(yi|xiRm)=xiRmyi|Rm|

    但问题的难点在于如何对决策空间进化划分,文中给出了一种启发式的方法。

    划分方法

    选择第j个变量x(j)和它的取值s,作为切分变量和切分点,并定义两个区域(两个划分集合)
    R1(j,s)={x|x(j)s}以及R2(j,s)={x|x(j)>s}
    这样我们可以通过求解下式来找到每次最佳划分变量和切分点。

    (1)minj,s[minc1^xiR1(j,s)(yic1^)2+minc2^xiR2(j,s)(yic2^)2]

    其中j从1到所有存在的特征,s取遍x(j)所有可能的取值。

    生成算法

    Step1:求解公式(1)得到切分变量与切分点
    Step2:划分子区域R1(j,s)={x|x(j)s}以及R2(j,s)={x|x(j)>s},并决定子区域的输出值
    Step3:递归调对子区域递归调用上述步骤,直至满足停止条件
    Step4:划分为M个子区域,生成决策树完毕。

    分类树

    Cart分类树和前面的ID3以及C4.5大致相同,主要不同的地方在于划分方法(特征选择)有所区别,我们将重点对此部分进行阐述。

    划分方法

    Cart分类树使用基尼指数选择最有特征(表示集合D的不确定性,成正相关),同时决定该特征的最优二值切分点。
    样本的基尼指数计算如下:

    Gini(D)=1k=1K(|Ck||D|)2

    定义在特征A的条件下,集合D的基尼指数为:

    Gini(D)=|D1||D|Gini(D1)+|D2||D|Gini(D2)

    生成算法

    Step1:对现有数据集的每个特征的每个取值计算其基尼指数并选择最小的特征A及其取值A=a作为切分点。
    Step2:依照切分点将数据集划分为两个部分D1D2
    Step3:继续对两个子集进行递归操作,直至达到停止条件(样本数小于阈值,样本基本属于同一类等等)。

  • 相关阅读:
    docker&kubernets篇(十六)
    Nginx内存池:内存分配方案 | 小块内存分配方案
    实时聊天系统PHP
    DRM全解析 —— ADD_FB2(5)
    微服务技术栈
    STM32G0 定时器PWM DMA输出驱动WS2812配置 LL库
    遍历map的4种方法
    开源ffmpeg(三)——音频拉流、解码以及重采样
    限制相关算法
    OpenLDAP | ubuntu 安装配置和汉化 phpldapadmin
  • 原文地址:https://www.cnblogs.com/hywang1211/p/18124245