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. Spring注解之BeanPostProcessor与InitializingBean

    /*** BeanPostProcessor 为每个bean实例化时提供个性化的修改,做些包装等*/ package org.springframework.beans.factory.config; ...

  2. sublime markdown 设置

    安装Markdown Preview 修改用户配置文件(代码高亮): { "enable_highlight": true } 快捷键: ctrl+b 生成html文档 安装Omn ...

  3. 牛客网 PAT 算法历年真题 1001 : A+B和C (15)

    1001 : A+B和C (15) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard 题目描述 给定区间[-2的31次方, 2的31次方]内 ...

  4. c++ 软件版本比较函数

    // 版本号拆分为数组 void splitToInt(string str , vector<int> *v1, char delim ){ // 拆分 string strTmp; s ...

  5. Astah Professional安装

    asish安装 1● 文件下载   2● 安装图解 3● 破解 replace 4● 测试 success  

  6. Win10系列:UWP界面布局基础6

    资源合并 前面提到过,可以将资源字典定义在单独的XAML文件中,这样的文件被称为资源字典文件.那么,在需要引用文件中的资源时可以通过ResourceDictionary元素的MergedDiction ...

  7. Win10系列:JavaScript 模板绑定

    WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式.定义一个WinJS库模板的方法与定义WinJS库控 ...

  8. bzoj1679

    题解: 前缀和 显然需要排序一下 注意爆int这件事 代码: #include<bits/stdc++.h> using namespace std; typedef long long ...

  9. day16 初识面向对象

    今天主要学习内容: 1.初始面向对象 2 .类 ,对象 3,面向对象和面向过程的对比 4.面向对象的三大特征 1,初始面向对象 面向过程 : 一切以实物的发展流程为中心 面向对象: 一切以对象为中心, ...

  10. docker pure-ftpd

    FROM alpine:3.7ADD http://dl-4.alpinelinux.org/alpine/edge/testing/x86_64/pure-ftpd-1.0.47-r0.apk /r ...