分类算法非常适合预测或描述标签为二元或标称类型的数据集,对于标签为序数类型的数据集,分类技术则不太有效,因为分类技术不考虑隐藏在序数中的“序”关系,对于标签其他形式的联系如子类与超类(包含的关系),分类技术也不太适合。

本文是分类模型系列的初篇,先介绍最基本的分类/回归模型——决策树模型。决策树分类模型打算分为三篇来说明,第一篇先说明决策树生长,第二篇介绍决策树的剪枝过程,第三篇介绍常用的决策树模型算法。

1.树的生长过程

决策树的生长一般采用贪心的策略,所有训练样本都会参与到树的生长过程,树生长完成后所有训练样本都能被明确的分类。训练集 表示各样本的属性值,表示的标签,表示样本的属性集,则决策树的构建方法如下

  1. 生成结点node
  2. 若D中所有样本均属于同一类别C,则将结点node标记为叶结点,其类归为类C,返回
  3. 若A为空、或者D中样本在A中属性上取值相同, 则将结点node记为叶节点,其类归为D中样本数最多的类,返回
  4. 若2、3中情况均未出现时,从A中选择一个最优划分属性,对的每一个划分值,为node结点生成一个分支,令表示取值为时的样本子集     
  5. 为空,则将该分支结点标记为叶结点,其类归为父结点中样本数最多的类;若不为空,则得到新的数据集和新的属性集(从中去掉),重复1~5步骤

在树的生长步骤4中,提到了“选择一个最优的划分属性”、“的每一个划分值”问题,那么该如何选择最优划分属性、划分值呢?

2.树生长过程中需要考虑的问题

     2.1最优属性的度量参数

       优劣的比较应该是有一个量化的评判标准的,在最优属性的抉择上,一般采用“信息增益”、“增益率”、“基尼指数”这三个参数中的一个来评判。最优属性指的是利用该属性划分结点上数据后,信息增益/增益率/基尼指数 变化最大。下面以离散取值属性为例,分别介绍这几个参数

  • 信息增益

       “信息熵”在信息论中表示随机变量不确定性程度,用于样本集合中,则可以用来度量集合的纯度,也即是表征集合中样本类别数量、每中类别对应样本数量的信息。

信息熵定义如下

                                                      (1)

式(1)中为样本集中第  类样本数占总样本数的比例,信息熵值越小,表示样本数据集纯度越高,当所有样本属于同一类时,纯度最高,为0。特别的,规定当时,

对于离散取值属性a,其取值范围为,若将内部节点node按属性a进行子女结点划分,则其样本数据集D被划分为,则对结点node进行划分后,其信息增益定义为

                              (2)

式(2)中表示样本集中样本数,表示样本集中样本数。一般而言,信息增益越大,表示按照属性a划分后样本数据的纯度提升越大。

  • 增益率

        当属性的取值数目较多时,信息增益计算结果会偏大一些,因为更多的叶子结点必然能达到更低的误分类率,信息增益也就越小。为了减小这种情况带来的不利影响,提出了增益率,其定义为

                                                     (3)

式(3)中定义为

                                                (4)

当属性的取值数目较少时,在式(3)的增益率计算结果又会偏大一些。基于此,综合考虑之后Quinlan教授提出了这样一个依据增益率选择划分属性的方法:先从待划分属性中找出信息增益高出平均水平的属性,然后再从这些信息增益结果中选择增益率最高的属性作为最终的划分属性。

  • 基尼指数

基尼指数实际上是经济学中的概念,用来衡量财富分配的不均衡性,也可以依据该指数来选择划分属性。首先对基尼值做如下定义

                                                 (5)

式(5)中定义与式(1)中一致。对于,可以这样解释,从样本数据集D中随机抽取一个样本,该样本属于类的概率。因此,基尼系数可以直观的解释为:随机从数据集D中抽取两个样本,这两个样本所属类不一致的概率,该概率越小,表明数据集D的纯度越高。基于基尼值,基尼指数的定义如下

                                              (6)

      依据基尼指数选择划分属性时,选择基尼指数最小的属性。

     2.2 树生长的停止条件

第1节中描述决策树的生长过程是一个“完全”的生长过程,生长的终止条件为:所有的样本属于同一类,或者所有的样本具有相同的属性值,这种生长截止条件在样本量大、属性值较多时会导致树过于庞大,因此采用一种预剪枝的方式提前停止树的生长。同时,要想得到一棵泛化误差较小的树,还需要进行剪枝处理,这将在下一篇《分类:决策树——剪枝》中说明。

      

分类:决策树——树的生长相关推荐

  1. CART决策树(分类回归树)分析及应用建模

    一.CART决策树模型概述(Classification And Regression Trees)   决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...

  2. 经典算法详解--CART分类决策树、回归树和模型树

    Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Reg ...

  3. 机器学习十大算法之-CART分类决策树、回归树和模型树

    转载(http://blog.163.com/zhoulili1987619@126/blog/static/35308201201542731455261/) Classification And ...

  4. CART分类决策树、回归树和模型树算法详解及Python实现

    机器学习经典算法详解及Python实现–CART分类决策树.回归树和模型树 摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用 ...

  5. 熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的?

    熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的? 目录

  6. 决策树(Decision Tree)、决策树的构建、决策树流程、树的生长、熵、信息增益比、基尼系数

    决策树(Decision Tree).决策树的构建.决策树流程.树的生长.熵.信息增益比.基尼系数 目录

  7. 统计学习方法第五章作业:ID3/C4.5算法分类决策树、平方误差二叉回归树代码实现

    ID3/C4.5算法分类决策树 import numpy as np import math class Node:def __init__(self,feature_index=None,value ...

  8. id3决策树 鸢尾花 python_机器学习之分类回归树(python实现CART)

    机器学习之分类回归树(python实现CART) 之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后 ...

  9. python决策树怎么选择_【机器学习+python(8)】分类决策树的介绍与实现

    之前我们介绍过用逻辑回归根据鸢尾花萼片.花瓣的长度和宽度进行鸢尾花类别的判定:也通过朴素贝叶斯模型分享了如何根据男生专业和身高两大属性,判断其是否有女朋友.而本期我们将介绍另外一种有监督的机器学习分类 ...

最新文章

  1. 初学者如何开发出高质量J2EE系统
  2. 491. 递增子序列(回溯算法)
  3. HailStone序列
  4. 转: 三大WEB服务器对比分析(apache ,lighttpd,nginx) (2008年的旧文,仅供参考之用)...
  5. jvm锁_JVM如何处理锁
  6. XXE漏洞 解决方案(JAVA版本)
  7. 5G 协议新漏洞可追踪位置信息
  8. mysql生成uui mybatis,MyBatis自动生成UUID并返回
  9. 物资管理信息系统4 -- 修改密码界面
  10. C# Azure 存储-队列
  11. 局域网聊天服务器(openfire)安装与配置
  12. Ubuntu下安装wiznote
  13. 课设错误调试(一)No qualifying bean of type
  14. linux sipp 呼叫转移_SipP绑定多IP进行注册、呼叫
  15. gridview的sort_Gridview自动排序功能的实现
  16. 助你上手Vue3全家桶之Vue3教程
  17. 怎么让上下两排对齐_Word文档如何让让上下两排对齐 - 卡饭网
  18. FT232驱动安装不成功的解决方案
  19. idea debug图解
  20. 回滚日志(undo log)介绍

热门文章

  1. 2022年05月信息系统监理师考试知识点分布
  2. 英文基础之语法(二)
  3. 基于知识图谱因果关系生成
  4. 第七届“清风正气”越秀山廉政书画邀请展征稿启事
  5. Google谷歌浏览器Post请求预见strict-origin-when-cross-origin跨域问题的 解决办法
  6. 【博学谷学习记录】超强总结,用心分享 |产品经理-从盈利模式和推广方法对酷我英语和网易云音乐进行竞品分析
  7. anonymous unions are only supported in --gnu mode, or when enabled with #pragma anon_unions
  8. labview自动生成html,labview 报表生成范例
  9. 【操作类】使用file-saver导出excel
  10. Linux驱动实现AT指令,QT Linux实现AT指令处理框架