【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)

2023-10-28

CART算法的简介:

CART(Classification and Regression Tree)算法,即分类回归树算法,也是决策树构建的一种常用算法,CART的构建过程采用的是二分循环分割的方法,每次划分都把当前样本集划分为两个子样本集,使决策树中的节点均有两个分支,显然,这样就构造了一个二叉树。

如果分支属性有多于两个取值,在分裂时会对属性值进行组合,选择最佳的两个组合分支。假设某属性存在q个可能取值,那么以该属性作为分支属性,生成两个分支的分裂方法共有(2q−1−1)种。

度量指标:

CART算法在分支处理中分支属性的度量指标是Gini。设S为大小为n的样本集,其分类属性有m个不同取值,用来定义m个不同分类Ci(i=1,2,…,m),则其Gini指标的计算公式为:

在CART算法中,针对样本集S,选取属性A作为分支属性,将样本集S分裂为A=a1的子样本集S1,与其余样本组成的样本集S2,则在此情况下的Gini指标为:

CART算法的优缺点:

优点:

  • CART算法可以处理数值型和分类型数据,不需要进行数据预处理;

  • CART算法生成的决策树可以直观的解释和可视化,易于理解;

  • CART算法可以处理大规模数据集;

  • CART算法可以处理高维数据;

  • CART算法的分类和回归能力都很强。

缺点:

  • CART算法是一种贪心算法,可能会导致局部最优解,不能保证全局最优解;

  • CART算法对于噪声和异常值敏感;

  • CART算法容易过拟合,需要采用剪枝等措施来避免过拟合;

  • CART算法只能生成二叉树,无法处理多分类问题。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree) 的相关文章

随机推荐

  • jupyter notebook文件默认存储位置更改

    引用自https blog csdn net Asabc12345 article details 105856044 https blog csdn net qq 24982339 article details 111321852 目录
  • 【星海出品】ansible入门(一)

    1 安装ansible 1 1安装 sudo apt get install y ansible 1 2 配置时需要生成秘钥 ssh keygen 推荐秘钥 1 3 推送秘钥 ssh copy id 10 0 0 7 ssh copy id
  • UML时序图总结

    UML时序图总结 时序图简介 首先 时序图用来表示用例中的行为顺序 当执行一个用例行为时 顺序图中的每条消息对应了一个类操作或者状态机中引起转换的事件 其次 时序图展示对象之间的交互 这些交互是指在场景或用例的事件流中发生的 时序图属于动态
  • SVN切换账户

    前言 一般我们都是将SVN的账户和密码保存起来 每次下载东西时都是默认登录去下载 这样十分方便 但是有时候需要切换账户去下载一些东西 这时候就涉及到切换账户 大多数时候我们都有自己的专用电脑 很少切换账户 对切换账户不是很熟悉 在这里记录一
  • 【计算机视觉

    文章目录 一 分割 语义相关 13篇 1 1 Semantic and Articulated Pedestrian Sensing Onboard a Moving Vehicle 1 2 360 circ from a Single
  • 学python要有多少英语词汇量_英语词汇量到底多大才够?

    1986年 英国 卫报 估算英国人2岁的单词量约为300个 5岁时为5000个 到了12岁 词汇量在12000个左右 卫报 的研究认为大多数人之后的词汇量都不会有太大的变化 它还指出 12000词汇量基本等同于流行报纸每天文章里的词汇量 但
  • 七天搞定Node.js微信公众号

    课程介绍 微信公众号已经1000多万个了 即使不为市场 为自己也应该学会开发它 环境参数 技术语言 Node js 框架 Node js gt 0 12 Koa1 2 0 课程所需开发系统 不限 编译环境 不限 数据库 Mongodb gt
  • 关于静态和动态代码块

    静态代码块 static 实例代码块 静态代码块相当于静态方法 实例代码块相当于实例方法 实例方法在静态方法后面执行 一个对象时 静态代码块和实例代码块只执行一次 当有多个对象时 静态代码块只执行一次 因为静态代码块是属于类的 在将clas
  • 类加载的过程

    1 加载 注意 加载 是 类加载 Class Loading 过程的第一步 1 1 加载的过程 在加载过程中 JVM主要做3件事情 通过一个类的全限定名来获取定义此类的二进制字节流 class文件 在程序运行过程中 当要访问一个类时 若发现
  • 构建跨平台应用的利器——UniApp入门指南

    文章目录 什么是UniApp 介绍UniApp的概念与特点 UniApp相对于其他跨平台框架的优势 UniApp入门指南 安装与环境配置 创建UniApp项目 UniApp项目结构解析 UniApp开发基础 Vue js基础知识回顾 Uni
  • Beautiful Mirrors【Codeforces 1265 E】【期望DP】

    Codeforces Round 604 Div 2 E 题记 不是杭电今年份的原题嘛 为什么比赛的时候没想到这个方面呢 当然题也读错了 尬 杭电多校原题 然后再继续说一下这道题的特殊之处吧 随便说说 典型问题 没有特殊之处 大概画了个图
  • matlab——级数

    级数 级数求和 泰勒级数 级数求和 1 级数求和 求无穷级数的和需要符号表达式求和函数symsum 其调 用格式为 symsum s v n m 其中 s表示一个级数的通项 是一个符号表达式 v是求 和变量 v省略时使用系统的默认变量 n和
  • dfs and bfs template

    在做题的时候发现别人的模板后 再加上自己的理解 形成的更适合自己的模板 相当于随笔 就是记录一下 不做排版 记忆方法 树 BFS queue gt 马的遍历 NOTICE bfs 最短路 DFS stack 递归 gt 红细胞数 BFS t
  • 真香!值得收藏的30道Python练手题(附详细答案)

    大家好 今天给大家分享30道 Python 练习题 建议大家先独立思考一下解题思路 喜欢本文点赞支持 文末提供技术交流群 1 已知一个字符串为 hello world yoyo 如何得到一个队列 使用 split 函数 分割字符串 并且将数
  • 图像分割___图像分割方法综述

    From 变分方法与模糊聚类在图像分割中的应用研究 这里主要简单介绍几类经典的方法 基于边缘检测的方法 基于边缘检测的方法主要是通过检测出区域的边缘来进行分割 利用区域之间特征的不一致性 首先检测图像中的边缘点 然后按一定策略连接成闭合的曲
  • C++自学记录(const限定符)

    目录 const限定符 初始化和 const 默认状态下 const对象仅在文件内有效 const的引用 初始化和对const的引用 对const的引用可能引用一个并非const的对象 指针和const const指针 关于常量指针和指针常
  • C++虚函数的作用和实现原理

    一 什么是虚函数 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数 用法格式为 virtual 函数返回类型 函数名 参数表 函数体 实现多态性 通过指向派生类的基类指针或引用 访问派生类中同名覆盖成员函数 二
  • 【Linux内核设计与实现】Linux内核简介

    之前在读 APUE 的时候 更多的是从上层去了解如何使用Linux系统的API 那个时候就十分喜欢Linux的设计 觉得一切都很奇妙 最近有些迷茫 不知道自己以后更加具体的技术方向在哪 所以最近广泛阅读了很多方面的书 C 方面 服务端网络编
  • ‘jmeter‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

    C Users wtcai gt jmeter jmeter 不是内部或外部命令 也不是可运行的程序 或批处理文件 一般该现象产生的原因是没有配置环境变量 找到此电脑 点击鼠标右键 找到属性 点击鼠标左键 点击右侧的 高级系统设置 然后点击
  • 【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)

    CART算法的简介 CART Classification and Regression Tree 算法 即分类回归树算法 也是决策树构建的一种常用算法 CART的构建过程采用的是二分循环分割的方法 每次划分都把当前样本集划分为两个子样本集