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的回归和分类任务的更多相关文章

  1. 【R语言学习笔记】 Day1 CART 逻辑回归、分类树以及随机森林的应用及对比

    1. 目的:根据人口普查数据来预测收入(预测每个个体年收入是否超过$50,000) 2. 数据来源:1994年美国人口普查数据,数据中共含31978个观测值,每个观测值代表一个个体 3. 变量介绍: ...

  2. matlab 基于 libsvm工具箱的svm分类遇到的问题与解决

    最近在做基于无线感知的身份识别这个工作,在后期数据处理阶段,需要使用二分类的方法进行训练模型.本身使用matlab做,所以看了一下网上很多都是使用libsvm这个工具箱,就去下载了,既然用到了想着就把 ...

  3. 学界 | 华为诺亚方舟实验室提出新型元学习法 Meta-SGD ,在回归与分类任务中表现超群

    学界 | 华为诺亚方舟实验室提出新型元学习法 Meta-SGD ,在回归与分类任务中表现超群 机器之心发表于机器之心订阅 499 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等 ...

  4. Factorization Machines 学习笔记(三)回归和分类

      近期学习了一种叫做 Factorization Machines(简称 FM)的算法,它可对随意的实值向量进行预測.其主要长处包含: 1) 可用于高度稀疏数据场景:2) 具有线性的计算复杂度.本文 ...

  5. Sklearn中的回归和分类算法

    一.sklearn中自带的回归算法 1. 算法 来自:https://my.oschina.net/kilosnow/blog/1619605 另外,skilearn中自带保存模型的方法,可以把训练完 ...

  6. matlab-逻辑回归二分类(Logistic Regression)

    逻辑回归二分类 今天尝试写了一下逻辑回归分类,把代码分享给大家,至于原理的的话请戳这里 https://blog.csdn.net/laobai1015/article/details/7811321 ...

  7. 《转》Logistic回归 多分类问题的推广算法--Softmax回归

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  8. 基于Spark Mllib的文本分类

    基于Spark Mllib的文本分类 文本分类是一个典型的机器学习问题,其主要目标是通过对已有语料库文本数据训练得到分类模型,进而对新文本进行类别标签的预测.这在很多领域都有现实的应用场景,如新闻网站 ...

  9. 02-15 Logistic回归(鸢尾花分类)

    目录 Logistic回归(鸢尾花分类) 一.导入模块 二.获取数据 三.构建决策边界 四.训练模型 4.1 C参数与权重系数的关系 五.可视化 更新.更全的<机器学习>的更新网站,更有p ...

随机推荐

  1. Beta阶段——第2篇 Scrum 冲刺博客

    Beta阶段--第2篇 Scrum 冲刺博客 标签:软件工程 一.站立式会议照片 二.每个人的工作 (有work item 的ID) 昨日已完成的工作 人员 工作 林羽晴 完成https安全连接的问题 ...

  2. MySQL5.6复制技术(4)-MySQL主从复制过滤参数

     复制的过滤主要有2种方式: 在主服务器在把事件从进二制日志中过滤掉,相关的参数是:binlog_do_db和binlog_ignore_db. 在从服务器上把事件从中继日志中过滤掉,相关的参数是re ...

  3. Oracle 11.2.0.4.0 Dataguard部署和日常维护(6)-Dataguard Snapshot篇

    1. 检查当前主备库同步状态 on primary select ads.dest_id,max(sequence#) "Current Sequence", max(log_se ...

  4. python中生成器

    1.简介 通过列表生成式,我们可以直接创建一个列表,但是受到内存的限制,列表容量肯定是有限的. 如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢? 在Pytho ...

  5. django学习之——模版

    为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文 ...

  6. 【转】你必须知道的EF知识和经验

    注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式. 推荐MiniProfiler插件 工欲善其事,必先利其器. 我们使用EF和在很大程度提高了开发速度,不过随之带来的 ...

  7. MySQL数据库安装与配置鸡汤

    目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/ ...

  8. suffix word ality ally an ancy ance an aneity out ~1

    1● ality 状态,性质   2● ally al+ly ~地   3● an ~地方 ,~人       1★ ance=ancy 性质 ,状态   2★ant ~人,~剂,~的   3★ an ...

  9. bzoj1045

    题解: 随便推一下公式 然后发现是中位数 代码: #include<bits/stdc++.h> using namespace std; ],n; long long sum; int ...

  10. flask-security(一)快速入门

    很多例程都是基于flask-sqlalchemy的. 但是我使用sqlalchemy,并没有使用sqlalchemy,看中的也就是flask的灵活性. 暂时写flask的程序,但是为了以后写别的程序方 ...