数据挖掘十大经典算法之——CART 算法
数据挖掘十大经典算法系列,点击链接直接跳转:
- 数据挖掘简介及十大经典算法(大纲索引)
- 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决策树的生成就是递归地构建二叉决策树的过程,核心步骤由以下两步组成:
- 决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
- 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。
特性
优点:
- 非常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树。
- 在面对诸如存在缺失值、变量数多等问题时CART 显得非常稳健
缺点:
案例
- 【决策树案例详解】数据挖掘十大算法之决策树详解
代码
- 【Python】机器学习算法|CART算法–python实现
- 【Python】数据挖掘领域十大经典算法之—CART算法
学术
- 【算法研究】 基于 Adaboost 和 CART 结合的优化分类算法
应用
- 【金融领域】 对银行交叉销售的数据挖掘分析——基于CART方法
参考资料
- 【论文】基于 Adaboost 和 CART 结合的优化分类算法
- 【博客】数据挖掘十大算法之CART详解
注 :本文旨在引导探索,深度学习还需认真研究相关学者的成果。文章如有侵权,请联系作者删除。
数据挖掘十大经典算法之——CART 算法相关推荐
- 数据挖掘十大经典算法之——EM 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——Apriori 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——PageRank 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——Naive Bayes 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——KNN 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——AdaBoost 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——K-Means 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——C4.5 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法(转载)
数据挖掘十大经典算法 一.C4.5 C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法ID3的改进算法,所以基 ...
最新文章
- 121 项目 023 笔记向 反射
- linux java 获取路径怎么写_linux中java获取路径的实例代码
- 教程 | 以太坊智能合约编程之菜鸟教程
- Python笔记-PyCharm远程连接到Linux进行代码同步并运行
- docker 获取镜像
- 不要主动进行垃圾回收
- python 判断字符串是否为数字_Python核心知识系列:数字与字符串类型
- Kubernetes - - k8s - v1.12.3 持久化部署 GitLab 集成 OpenLDAP 登录
- 谷歌云盘和百度云盘文件转存
- 思科交换机配置命令大全,交换机配置案例详解
- Vmware安装BT5进入不了图形界面怎么办(KDE版)
- 如何录制Gif动态图片
- 51单片机智能小车蓝牙
- 最新SEO寄生虫排名
- BZOJ5294 BJOI2018 二进制 线段树
- CloudDB——构建云化网络统一融合数据层
- Carsim 学习心得-粗略翻译1
- java shp文件_java发布shp数据
- 别人在直播怎么录下来
- 请求报错Required String parameter 'id' is not present
热门文章
- LCD12864串行驱动程序
- 集成七牛云储存-上传图片Demo
- php表格制作底纹怎么做,HTML表格标记教程(36):表头的背景色属性BGCOLOR
- 花指令的原理和常用花指令收集
- 数据仓库简介、数据仓库的发展、数仓理论简介
- mysql 计算近30天总金额_计算月嫂每天工资,应该用总工资除以30天还是26天?-免费法律咨询...
- Gradle简单配置
- 巴菲特致股东的一封信:2005年
- 什么是基线评估(Baseline Evaluation)
- oracle and not 的用法,[ORACLE]详解not in与not exists的区别与用法(not in的性能并不差!)...