• 回归决策树


    分类决策树的概念和算法比较好理解,并且这方面的资料也很多。但是对于回归决策树的资料却比较少,西瓜书上也只是提了一下,并没有做深入的介绍,不知道是不是因为回归树用的比较少。实际上网上常见的房价预测的案例就是一个应用回归树的很好的案例,所以我觉得至少有必要把回归树的概念以及算法弄清楚。

    我们以鸢尾花数据集为例进行分析。

    iris(鸢尾花)数据集共有5个属性:

    & Sepal.Length(花萼长度),单位是cm;
    & Sepal.Width(花萼宽度),单位是cm;
    & Petal.Length(花瓣长度),单位是cm;
    & Petal.Width(花瓣宽度),单位是cm;
    & 种类:Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),以及Iris Virginica(维吉尼亚鸢尾)。
     
    前四个属性作为特征列,最后一列种类列是要预测的目标列。

    一、决策树

    决策树一般用于对离散型的变量进行预测,并且它的输入(即特征)一般也是离散型的。决策树在进行递归划分的过程中需要不断选取最优的划分属性,例如在第一次划分的时候有四个特征可选,那么具体选哪个特征的依据是根据这个特征划分后带来的数据“纯度”的提高最大,例如分别以花萼长度,花萼宽度,花瓣长度,花瓣宽度进行划分,这四种划分方法带来的“纯度”的提高是不同的,选择其中纯度提高最大的特征进行划分,然后依次对子节点递归第进行划分。“纯度”根据字面意思可以认为是数据的均一性,比如如果全是山鸢尾,那么这时的纯度肯定是最高的。在信息论中表征数据混乱程度的是信息熵,数据纯度的提高等价于信息熵的下降。

    那么根据对数据“纯度提高”的不同表征方法,形成了不同类型的决策树,比较著名的是:

    1. ID3。ID3决策树以信息增益(info gain)作为表征手段,也就是在选择最佳划分特征时,是通过选择不同特征划分后信息增益最大的特征进行划分。正是由于这种特性ID3更倾向于类别数多的那些特征。举个极端的例子,如果以某个特征划分后,每条数据就是一类,这时信息熵是0,信息增益肯定是最大的。

    2. C4.5。 这种决策树以信息增益率(info gain rate)为优化目标,信息增益率的计算等于信息增益初一数据的固有值,数据固有值与数据集的类别数相关,而且随着类别数的增大,固有值增长的更快,导致信息增益率下降,因此C4.5更倾向于类别数少的那些特征。

    3. CART。英文全称为classification and regression tree。分类和回归树。它的优化目标是基尼指数。基尼指数表征的是在数据集中随机抽到两个相同类别的的概率,因此表征的是数据的混乱程度,基尼指数越小数据纯度越高。

    二、连续特征

    前面介绍的生成决策树的过程只涉及离散型的特征。对于连续性的特征一般采用二分法。怎么判断某个特征时离散型还是连续型呢,我们可以指定一个值,比如规定如果某个特征的类别数超过5就认为是连续型,一般的算法库都会提供接口能够设置该参数的值。

    接着说二分法的具体操作:

    1. 选取一个特征划分点,一般去两条数据的平均值,这样把整个数据分成两部分,然后根据不同类型 决策树计算它的优化目标,可以是信息增益,信息增益率,或基尼指数。

    2. 这样循环计算,把所有的划分点全部算出来(n条数据有n-1个划分点),选取最佳的划分点(信息增益最大或基尼指数最小)

    3. 一次划分点进行一次划分

    4. 递归地进行划分

    三、目标变量是连续型

    这才到本文重点,前面主要是回顾一下决策树。

    前面所说的情况都是离散型的目标变量,比如鸢尾花的种类只有三种Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),以及Iris Virginica(维吉尼亚鸢尾)。

    那么对于房价预测的问题,我们要预测的目标变量房价显然是一个连续型的变量,这种情况该怎么处理呢??

    前面介绍的三种表征方法信息增益,信息增益率,基尼指数都是针对离散变量。

    一种方法是用类似方差的计算方法,我们知道方差是表征数据离散程度的,如果数据取值都相同,那么方差就为0,反之如果数据月混乱,方差越大,所以方差也是表征数据混乱程度的一种指标。

    但是这里计算方法与方差略有不同,因为数据通过某个特征被划分为多个子集,我们需要分别对这若干子集计算平方差之和,然后将每个子集的平方差之和加起来作为优化目标,

    例如在某个特征上被划分成A,B,C三个子集(如果是连续型特征就是两个子集),分别计算A,B,C三个子集的平方差之和,将三个子集的平方差之和加起来作为优化目标。

     四、预测值

    我们知道当目标变量是离散值时,对于一个划分后的子集,这个子集的标签是其中取值最多的类别的标签值(多数表决);

    而对于连续型的目标变量,则是用平均值作为新的子集的预测值。

  • 相关阅读:
    微信小程序基础 | 小程序事件的绑定 | 08
    Python的驻留机制(仅对数字,字母,下划线有效)
    深浅Copy的理解
    python2/3区别
    Python的优缺点、以及解释器种类
    Python涉及的各个领域以及技术应用
    近年主流编程语言的了解
    编程语言(机器语言、汇编语言、高级语言)
    mysql常用SQL语句
    mysql数据库的优缺点
  • 原文地址:https://www.cnblogs.com/zhuge134/p/10887219.html
Copyright © 2020-2023  润新知