基于CART的回归和分类任务
CART 是 classification and regression tree 的缩写,即分类与回归树。
博主之前学习的时候有用过决策树来做预测的小例子:机器学习之决策树预测——泰坦尼克号乘客数据实例,不过在那篇博客中并没有详细阐述算法的原理,本篇博客以学习 CART 里面的思想为主。
1 基于 CART 的回归
1.1 定义概述
CART 假设决策树是二叉树,因此回归树的生成式递归构建二叉树决策的过程。其核心思想是通过对特征空间分层预测,每个空间的观测值的均值即为该空间内所有观测值的预测值。一般采用“自上而下”的贪婪方法:递归二叉分裂(recursive binary splitting)。最优分裂仅仅限于某一步进程,而不是针对全局去选择能够在未来进程中构建出更好的树的分类点。
1.2 建立回归树
(1)将预测变量空间分割成若干互不重叠的区域,划分遵循的原则是使得两个两份的区域的残差平方和最小。
(j.s)={x∣x(j)≤s},
(3)重复步骤(1)和(2),直到满足条件,比方当所有区域的观测值的个数都不大于5时,分裂停止。
(4)对划分的空间进行预测(用这一空间的训练集平均响应值对其预测)。
1.3 树的剪枝
树的分裂点过多,可能会导致过拟合。为了避免过拟合的方法,我们可以人为设定 RSS 的阈值,但是这样可能会使得一些初看起来不值得分裂的点在之后会有很好的分裂,也就是在下一步中 RSS 会大幅度减小。
因此,更好的策略是生成一棵大树,通过剪枝(prune)得到子树(subtree)。
采用代价复杂性剪枝(cost complexity pruning),也叫做最弱联系剪枝(weakest link pruning)。取 a 满足下式:
绝对值 T 表示树 T 的终端节点数, 这种减小过拟合的方式类似于 Lasso
2 基于 CART 的分类
2.1 定义概述
分类树和回归树非常相似,区别在于分类树可以用于预测定性白那辆而非定量变量。对于分类树,其给定观测值被预测为它所属区域内训练集中最常出现的类。可以选用分类错误率代替 RSS 作为分类指标,但是这个指标对于分类错误率不敏感,因此实践中采用基尼系数或者互熵。
2.2 分类指标
基尼系数(Gini index)定义如下:
其中,k 是类别数目,代表第 m 个区域的训练集中的第 k 类所占的比例。G 的值接近 0 或 1。因此基尼系数被视为衡量节点的纯度指标。
互熵(cross-entropy)定义如下:
基尼系数和互熵在数值上是非常接近的。
3 优缺点概述
与传统方法比较,决策树有以下的优缺点:
(1)解释性有时候好于线性回归,小规模树方便解释
(2)接近人的决策
(3)直接处理定性预测变量,而不需要创建哑变量
(4)一般预测准确性无法达到其他回归和分类的水平
参考资料:《统计学习导论——基于R的应用》
基于CART的回归和分类任务的更多相关文章
- 【R语言学习笔记】 Day1 CART 逻辑回归、分类树以及随机森林的应用及对比
1. 目的:根据人口普查数据来预测收入(预测每个个体年收入是否超过$50,000) 2. 数据来源:1994年美国人口普查数据,数据中共含31978个观测值,每个观测值代表一个个体 3. 变量介绍: ...
- matlab 基于 libsvm工具箱的svm分类遇到的问题与解决
最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把 ...
- 学界 | 华为诺亚方舟实验室提出新型元学习法 Meta-SGD ,在回归与分类任务中表现超群
学界 | 华为诺亚方舟实验室提出新型元学习法 Meta-SGD ,在回归与分类任务中表现超群 机器之心发表于机器之心订阅 499 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等 ...
- Factorization Machines 学习笔记(三)回归和分类
近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...
- Sklearn中的回归和分类算法
一.sklearn中自带的回归算法 1. 算法 来自:https://my.oschina.net/kilosnow/blog/1619605 另外,skilearn中自带保存模型的方法,可以把训练完 ...
- matlab-逻辑回归二分类(Logistic Regression)
逻辑回归二分类 今天尝试写了一下逻辑回归分类,把代码分享给大家,至于原理的的话请戳这里 https://blog.csdn.net/laobai1015/article/details/7811321 ...
- 《转》Logistic回归 多分类问题的推广算法--Softmax回归
转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...
- 基于Spark Mllib的文本分类
基于Spark Mllib的文本分类 文本分类是一个典型的机器学习问题,其主要目标是通过对已有语料库文本数据训练得到分类模型,进而对新文本进行类别标签的预测.这在很多领域都有现实的应用场景,如新闻网站 ...
- 02-15 Logistic回归(鸢尾花分类)
目录 Logistic回归(鸢尾花分类) 一.导入模块 二.获取数据 三.构建决策边界 四.训练模型 4.1 C参数与权重系数的关系 五.可视化 更新.更全的<机器学习>的更新网站,更有p ...
随机推荐
- Python的time和datetime
#python中时间日期格式化符号 %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数( ...
- vue虚拟DOM源码学习-vnode的挂载和更新流程
代码如下: <div id="app"> {{someVar}} </div> <script type="text/javascript& ...
- python之命令行参数解析模块argparse
"""argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数.argparse模块也能自动的产生 ...
- C++三大特性 封装 继承 多态
C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...
- 通过BeanPostProcessor理解Spring中Bean的生命周期
通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理 Spring源码解析(十一)Spring扩展接口InstantiationAwareBeanPostProces ...
- Linux Shell数值比较和字符串比较及相关
说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较:但是把整型当成字符串进行比较,0123这些数值完 ...
- linux下free命令详解
free 命令显示系统内存的使用情况,包括物理内存.交换内存(swap)和内核缓冲区内存. 如果加上 -h 选项,输出的结果会友好很多: 有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指 ...
- 【转载】offer经验
http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html
- MyBatis 为什么需要通用 Mapper ?
一.通用 Mapper 的用途 ? 我个人最早用 MyBatis 时,先是完全手写,然后用上了 MyBatis 代码生成器(简称为 MBG),在使用 MBG 过程中,发现一个很麻烦的问题,如果数据库字 ...
- Uva 10635 - Prince and Princess 问题转化,元素互不相同(在自身序列中独特)的两个数列的LCS,LIS 难度: 2
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...