首页 > 其他分享 >CART(Classification and Regression Trees)

CART(Classification and Regression Trees)

时间:2023-11-16 16:59:58浏览次数:31  
标签:剪枝 Classification 分裂 CART 基尼 算法 Trees 节点

CART(Classification and Regression Trees)是一种常用的决策树算法,既可以用于分类问题,也可以用于回归问题。CART算法由Breiman等人于1984年提出,是一种基于递归二分划分的贪婪算法。以下是对CART算法的详细解释:

1. 决策树的构建过程:

CART算法通过递归地将数据集划分为越来越纯的子集,构建一棵二叉树。具体过程如下:

  • 选择最佳分裂特征:
    • 对于分类问题,通常使用基尼指数(Gini Index)作为评价指标;对于回归问题,通常使用平方误差(Squared Error)。
    • 遍历每个特征,每个可能的分裂点,计算分裂后子集的基尼指数或平方误差,选择使指标最小化的特征和分裂点作为当前节点的分裂规则。
  • 递归分裂:
    • 根据选择的分裂规则将数据集划分为两个子集,分别对这两个子集递归地应用上述过程,构建左右子树。
  • 停止条件:
    • 递归的停止条件通常包括:
      • 达到最大深度。
      • 节点中的样本数量小于某个阈值。
      • 基尼指数或平方误差小于某个阈值。

2. CART用于分类问题的基尼指数:

对于一个具有K个类别的分类问题,节点的基尼指数(Gini Index)的计算方式为:

其中 pi​ 是属于第 i 个类别的样本在节点中的比例。基尼指数越小,节点的纯度越高。

3. CART用于回归问题的平方误差:

对于回归问题,节点的平方误差(Squared Error)的计算方式为:

其中 N 是节点中的样本数量,yi​ 是样本的真实标签,yˉ​ 是节点中所有样本标签的均值。平方误差越小,节点的纯度越高。

4. 剪枝(Pruning):

CART构建决策树时容易出现过拟合。为了防止过拟合,CART使用一种称为剪枝的技术。剪枝通过去掉一些子树或叶节点来减小模型复杂度,提高泛化性能。

  • 预剪枝(Pre-Pruning):
    • 在构建树的过程中,提前定义停止分裂的条件,例如最大深度、节点中样本数量的阈值等。
  • 后剪枝(Post-Pruning):
    • 在构建完整棵树后,通过自底向上地剪枝。剪去一些叶节点,观察剪枝后模型在验证集上的表现,选择对整体性能影响较小的剪枝方式。

5. CART的优缺点:

优点:

  • 简单易懂,可解释性好。
  • 能够处理数值型和类别型的特征。
  • 在特征较少的情况下,表现良好。

缺点:

  • 对异常值敏感。
  • 容易过拟合,特别是在处理高维数据时。
  • 由于是贪婪算法,可能无法达到全局最优。

CART是一个灵活而强大的决策树算法,适用于多种任务,但在实际应用中需要注意对过拟合的处理。

标签:剪枝,Classification,分裂,CART,基尼,算法,Trees,节点
From: https://www.cnblogs.com/wzbzk/p/17836680.html

相关文章

  • TreeSet
      ......
  • TreeSet
    TreeSet的基本操作放到TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序(默认升序)//集合的创建TreeSet<Integer>treeSet=newTreeSet<>();//添加元素treeSet.add(1);treeSet.add(10);treeSet.add(199);treeSet.add(41);treeSet.add(0);//遍......
  • CF1304E 1-Trees and Queries(lca+树上前缀和+奇偶性)
    题目二话不说,直接按题意模拟暴搜,当然\(O(nq)\)的复杂度显然是寄了的。不过,在模拟的过程中,我在链式前向星的删边中居然一开始错了,还是要mark一下以后注意。voiddel(intx,intpre){ e[top].to=e[top].next=0; h[x]=pre;//h[x]=0;<---tip}intmain(){ ......
  • 论文阅读:Adaptive Hierarchical Down-Sampling for Point Cloud Classification
    AdaptiveHierarchicalDown-SamplingforPointCloudClassification用于点云分类的自适应分层下采样法摘要深度神经网络中无序点云的确定性下采样到目前为止还没有得到严格的研究。现有的方法对点进行下采样,而不考虑它们对网络输出的重要性,并且经常在处理前对原始点云进行下采样......
  • Planting Trees and Glasses--- Holding Back Soil Erosion
    Plantingtreesandglasses植树种草 Ganzhou, a typical red soil hilly area in Jiangxi province, is a pilot area for high-quality development of soil and water conservation in China. Through a series of following innovative in......
  • Set---SortedSet-NavigableSet-TreeSet
    SortedSet概述A{@linkSet}thatfurtherprovidesa<i>totalordering</i>onitselements.Theelementsareorderedusingtheir{@linkplainComparablenaturalordering},orbya{@linkComparator}typicallyprovidedatsortedsetcreationtime.......
  • A. Copil Copac Draws Trees
    A.CopilCopacDrawsTrees题目大意:给出一个树边序列,要求你从1号节点建树,对于每条边只有两个端点中有一个绘制了才可以绘制此边思路:这题思路不难,但以前写图太少,遍历被卡,给每个边按序列编号,dfs如果该边的编号大于上条边\(ans++\)code:intn;vector<pii>a[N];intans[N]=......
  • 论文:Ultra Fast Deep Lane Detection with Hybrid Anchor Driven Ordinal Classificat
    论文名:UltraFastDeepLaneDetectionwithHybridAnchorDrivenOrdinalClassification混合Anchor驱动顺序分类的超快深车道检测研究问题:研究方法:主要结论:模型:问题:行文结构梳理:Abstrct:现有方法主要集中在(像素分割)+缺陷(复杂场景)+(通过观察)提出一种高效方......
  • 神经网络基础篇:详解二分类(Binary Classification)
    二分类注:当实现一个神经网络的时候,通常不直接使用for循环来遍历整个训练集(编程tips)举例逻辑回归逻辑回归是一个用于二分类(binaryclassification)的算法。首先从一个问题开始说起,这里有一个二分类问题的例子,假如有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签......
  • linux centos7kettle使用Carte
    1.下载安装kettle的方法请自行百度2.启动carte服务进入kettle目录cd/opt/data-integration方式一#windowsCarte.batipport#例:Carte.bat 192.168.x.x 8080#linux./carte.shipport#例:./carte.sh 192.168.x.x 8080方式二编辑data-integration/pwd/carte-confi......