首页 > 编程语言 >决策树模型(4)Cart算法

决策树模型(4)Cart算法

时间:2024-04-09 18:56:38浏览次数:32  
标签:sum 算法 Cart 切分 划分 hat 决策树

Cart算法

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

Cart生成

回归树

模型

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

\[f(x) = \sum_{m=1}^M c_m I(x\in R_m) \]

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

\[L = \sum_{x_i\in R_m} (y_i - f(x_i))^2= \sum_{x_i\in R_m} (y_i - c_m)^2 \]

令\(L^{\prime}=0\),我们可以得到

\[\hat{c}_m = ave(y_i|x_i\in R_m)=\frac{\sum_{x_i\in R_m}y_i}{|R_m|} \]

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

划分方法

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

\[\begin{equation} \mathop\min_{j,s} [\mathop\min_{\hat{c_1}} \sum_{x_i\in {R_1(j,s)}} (y_i - \hat{c_1})^2+\mathop\min_{\hat{c_2}} \sum_{x_i\in {R_2(j,s)}} (y_i - \hat{c_2})^2] \end{equation} \]

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

生成算法

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

分类树

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

划分方法

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

\[\mathrm {Gini}(D) = 1 - \sum_{k=1}^{K} (\frac{\vert C_k \vert}{|D|})^2 \]

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

\[\mathrm {Gini}(D) = \frac{|D_1|}{|D|}\mathrm {Gini}(D_1) + \frac{|D_2|}{|D|}\mathrm {Gini}(D_2) \]

生成算法

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

标签:sum,算法,Cart,切分,划分,hat,决策树
From: https://www.cnblogs.com/hywang1211/p/18124245

相关文章

  • 交通规划四阶段法:基于 Python 的交通分布预测算法复现 - 附完整代码链接
    目录交通规划四阶段法:基于Python的交通分布预测算法复现-附完整代码链接我只是想使用这些代码下载代码文件代码的使用方法合作部分代码内容的展示交通规划四阶段法:基于Python的交通分布预测算法复现-附完整代码链接我这个学期有交通规划的课程。·交通规划四阶段法中第......
  • 【数据结构与算法篇】单链表及相关OJ算法题
    【数据结构与算法篇】单链表及相关OJ算法题......
  • R语言改进的K-Means(K-均值)聚类算法分析股票盈利能力和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=32418原文出处:拓端数据部落公众号大量数据中具有"相似"特征的数据点或样本划分为一个类别。聚类分析提供了样本集在非监督模式下的类别划分。人们在投资时总期望以最小的风险获取最大的利益,面对庞大的股票市场和繁杂的股票数据,要想对股票进行合理......
  • 计算机视觉中各种归一化算法
    归一化算法是对激活函数的输入进行归一化将featuremapshape设为[N,C,H,W],其中N表示batchsize,C表示通道数,H、W分别表示特征图的高度、宽度BatchNormalization在batch上,对N、H、W做归一化,保留通道C的维度。对较小的batchsize效果不好,BN适用于固定深度的前向神经网络,如C......
  • 说说你对算法中时间复杂度,空间复杂度的理解?如何计算?
    一、前言算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别衡量不同算法之间的优劣主要是通过时间和空间两个维度去考量:时间维度:是指执行当前算法所消耗的时间,我......
  • 使用SPI+DMA控制算法驱动WS2812
    1、ws2812b是一款集控制电路与发光电路于一体的智能外控LED光源,采用单线归0码协议,每个像素点的三基色颜色可实现256级亮度显示。速率能达到1024pixel×30fps/s,故被广泛用于各种需要大量使用RGB灯的场合。2、不同厂商生产的ws2812存在不同的时序要求,下图是一款最常见的ws2812b......
  • 20天【代码随想录算法训练营34期】第六章 二叉树part07 ( ● 530.二叉搜索树的最小绝对
    530.二叉搜索树的最小绝对差#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:deftraversal(self,......
  • 面试中数据结构与算法——知识点最全总结(学完可应对一线大厂)
    各大厂历年高频面试题系列,以下为部分内容不包括全部:双指针类面试题括号类面试题回文类面试题递推类面试题树型dp类面试题区间dp类面试题背包dp类面试题排序相关面试题常见贪心面试题常见图算法面试题子数组类面试题子序列类面试题二分类面试题bfs与dfs类面试......
  • 1. 通信软件基础-移动通信中的算法问题-实验
    目录简介 任务描述:关键词:无线信号强度排序算法相关检测无线信号强度计算 基站信号强度排序相关检测代码模块头文件定义:函数相关:快排:无限信号求和:主函数:变量定义主要流程一主要流程二(搭档写的)总结简介移动通信中的算法问题是指在移动通信系统中,为了实......
  • 深度探索:机器学习Deep Belief Networks(DBN)算法原理及其应用
    目录1.引言与背景2.定理3.算法原理4.算法实现5.优缺点分析优点:缺点:6.案例应用7.对比与其他算法8.结论与展望1.引言与背景深度学习在近年来取得了显著进展,其在图像识别、语音识别、自然语言处理等多个领域的成功应用引发了广泛的关注。其中,DeepBeliefNetworks......