数据挖掘十大经典算法系列,点击链接直接跳转

  • 数据挖掘简介及十大经典算法(大纲索引)
  • 1. 数据挖掘十大经典算法之——C4.5 算法
  • 2. 数据挖掘十大经典算法之——K-Means 算法
  • 3. 数据挖掘十大经典算法之——SVM 算法
  • 4. 数据挖掘十大经典算法之——Apriori 算法
  • 5. 数据挖掘十大经典算法之——EM 算法
  • 6. 数据挖掘十大经典算法之——PageRank 算法
  • 7 数据挖掘十大经典算法之——AdaBoost 算法
  • 8. 数据挖掘十大经典算法之——KNN 算法
  • 9. 数据挖掘十大经典算法之——Naive Bayes 算法
  • 10. 数据挖掘十大经典算法之——CART 算法

简介

  CART :Classification And Regression Tree(分类和回归树)。是一种决策树分类方法,采用基于最小距离的基尼指数估计函数,用来决定由该子数据集生成的决策树的拓展形。如果目标变量是标称的,称为分类树;如果目标变量是连续的,称为回归树。分类树是使用树结构算法将数据分成离散类的方法。

原理

  CART 算法是决策树的一种,所不同的是,它的分支 始终是二分的。 用变量 y 表示分类结果,用 X 表示 p 维 特征,该算法首先找出p 维特征中对分类有效的某个特 征 x,将样本分成两个本集子样,以树的左右枝表示,并 将此特征作为根节点。 接下来判断左右子样本集是否 只包含纯样本(全部正样本或全部负样本),如果是,则 将此样本集定义为叶子;否则,再次在此子样本集中找 出有效特征,继续将子样本集空间划分成左右枝,直到 被划分的子样本集中只包含纯样本为止。 在同一等级 的节点中,可以选取相同属性的特征作为节点,这个划 分是以递归方式实现的,最终形成一棵二叉树,形状如 图 3 所示。

  从根节点到每一个叶子节点,都对应一个规则。 分 类时,将待测样本的对应特征逐一在此树上从上到下搜 索,直到叶子节点,此时,就将该样本的属性划分为该叶 节点所表征的类(正样本或负样本)。 在决策树的分支中,常用的分支准则为信息熵法和 信息增益法。 其中,信息熵是 ID3 算法中常用的分支方 法, 而信息增益法主要是C4.5 和 CART 中常用的分支 方法。 信息熵本为通信电路携带信息量的大小,在这里反 映的是某一个特征阈值对样本的划分准确率。 对于训练 例集 U,假设有 m 个类别,全局信息熵表示为:

  其中,si 表示 i 类中正样本的个数,s 为总样本个数。 在 CART 算法中,因为每个节点都是二分的,即将样本分成 两部分,所以熵的表示也就相对简单。 假设其中的正样 本出现的概率为 p+, 则负样本出现的概率就是p-=1p+,信息熵的公式表示为: E=-p+log2p±p-log2p- (5) 如某一特征阈值将正负样本完全分开,此时被分开 的每个子集的信息熵就达到最小。 设训练样本空间为 U,以某一特征 A 将样本空间划分为 U1 和 U2 两个子集, 在子空间, 如果包含 20 个样本,10 个正样本和 10 个负 样本, 则正样本的概率等于负样本的概率, 即 p+=p-= 0.5,带入式(5)可计算得到此空间的信息熵达到最大值 1。 与此类似,如果样本空间 U1 为同一样本,则计算得到 熵的最小值 0。 如果用属性 A 将训练集划分为两个子集 S1 和 S2,每个子集中的信息熵又按照式(5)计算,分别用 Es1和 Es2表示,此时的正负样本概率都以该子集中的样本 为依据统计。 然后得出信息期望熵:

  CART 算法对节点的分支依赖于信息熵增益, 即选 取信息增益熵最大的特征作为一个节点。 信息熵增益反 映了全局信息熵降低的程度,信息熵增益越大,表明特 征对样本分类越有利,信息熵增益表示如下:

G=E−E(U,A)G = E-E(U,A)G=E−E(U,A)

  由于噪声的存在,决策树往往出现枝叶过于茂盛或 者树干过长的情况,在分类的过程中,这会导致对训练 数据过度拟合,使分类的错误率升高,反而不能对验证 数据很好地分类。 所以,一棵优秀的决策树应该包含剪 枝的过程,即用验证数据将树的叶子或节点修剪,防止 其对训练数据的过度拟合。 剪枝算法有多种,常见的有 前向剪枝和后向剪枝两种,CART 算法采用的是后向剪 枝算法。

步骤

CART决策树的生成就是递归地构建二叉决策树的过程,核心步骤由以下两步组成:

  1. 决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
  2. 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。

特性

优点:

  1. 非常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树。
  2. 在面对诸如存在缺失值、变量数多等问题时CART 显得非常稳健

缺点:

案例

  • 【决策树案例详解】数据挖掘十大算法之决策树详解

代码

  • 【Python】机器学习算法|CART算法–python实现
  • 【Python】数据挖掘领域十大经典算法之—CART算法

学术

  • 【算法研究】 基于 Adaboost 和 CART 结合的优化分类算法

应用

  • 【金融领域】 对银行交叉销售的数据挖掘分析——基于CART方法

参考资料

  • 【论文】基于 Adaboost 和 CART 结合的优化分类算法
  • 【博客】数据挖掘十大算法之CART详解

:本文旨在引导探索,深度学习还需认真研究相关学者的成果。文章如有侵权,请联系作者删除。

数据挖掘十大经典算法之——CART 算法相关推荐

  1. 数据挖掘十大经典算法之——EM 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  2. 数据挖掘十大经典算法之——Apriori 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  3. 数据挖掘十大经典算法之——PageRank 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  4. 数据挖掘十大经典算法之——Naive Bayes 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  5. 数据挖掘十大经典算法之——KNN 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  6. 数据挖掘十大经典算法之——AdaBoost 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  7. 数据挖掘十大经典算法之——K-Means 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  8. 数据挖掘十大经典算法之——C4.5 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  9. 数据挖掘十大经典算法(转载)

    数据挖掘十大经典算法 一.C4.5      C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法ID3的改进算法,所以基 ...

最新文章

  1. 121 项目 023 笔记向 反射
  2. linux java 获取路径怎么写_linux中java获取路径的实例代码
  3. 教程 | 以太坊智能合约编程之菜鸟教程
  4. Python笔记-PyCharm远程连接到Linux进行代码同步并运行
  5. docker 获取镜像
  6. 不要主动进行垃圾回收
  7. python 判断字符串是否为数字_Python核心知识系列:数字与字符串类型
  8. Kubernetes - - k8s - v1.12.3 持久化部署 GitLab 集成 OpenLDAP 登录
  9. 谷歌云盘和百度云盘文件转存
  10. 思科交换机配置命令大全,交换机配置案例详解
  11. Vmware安装BT5进入不了图形界面怎么办(KDE版)
  12. 如何录制Gif动态图片
  13. 51单片机智能小车蓝牙
  14. 最新SEO寄生虫排名
  15. BZOJ5294 BJOI2018 二进制 线段树
  16. CloudDB——构建云化网络统一融合数据层
  17. Carsim 学习心得-粗略翻译1
  18. java shp文件_java发布shp数据
  19. 别人在直播怎么录下来
  20. 请求报错Required String parameter 'id' is not present

热门文章

  1. LCD12864串行驱动程序
  2. 集成七牛云储存-上传图片Demo
  3. php表格制作底纹怎么做,HTML表格标记教程(36):表头的背景色属性BGCOLOR
  4. 花指令的原理和常用花指令收集
  5. 数据仓库简介、数据仓库的发展、数仓理论简介
  6. mysql 计算近30天总金额_计算月嫂每天工资,应该用总工资除以30天还是26天?-免费法律咨询...
  7. Gradle简单配置
  8. 巴菲特致股东的一封信:2005年
  9. 什么是基线评估(Baseline Evaluation)
  10. oracle and not 的用法,[ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)...