分类:决策树——树的生长
分类算法非常适合预测或描述标签为二元或标称类型的数据集,对于标签为序数类型的数据集,分类技术则不太有效,因为分类技术不考虑隐藏在序数中的“序”关系,对于标签其他形式的联系如子类与超类(包含的关系),分类技术也不太适合。
本文是分类模型系列的初篇,先介绍最基本的分类/回归模型——决策树模型。决策树分类模型打算分为三篇来说明,第一篇先说明决策树生长,第二篇介绍决策树的剪枝过程,第三篇介绍常用的决策树模型算法。
1.树的生长过程
决策树的生长一般采用贪心的策略,所有训练样本都会参与到树的生长过程,树生长完成后所有训练样本都能被明确的分类。训练集 中表示各样本的属性值,表示的标签,表示样本的属性集,则决策树的构建方法如下
- 生成结点node
- 若D中所有样本均属于同一类别C,则将结点node标记为叶结点,其类归为类C,返回
- 若A为空、或者D中样本在A中属性上取值相同, 则将结点node记为叶节点,其类归为D中样本数最多的类,返回
- 若2、3中情况均未出现时,从A中选择一个最优划分属性,对的每一个划分值,为node结点生成一个分支,令表示在取值为时的样本子集
- 若为空,则将该分支结点标记为叶结点,其类归为父结点中样本数最多的类;若不为空,则得到新的数据集和新的属性集(从中去掉),重复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节中描述决策树的生长过程是一个“完全”的生长过程,生长的终止条件为:所有的样本属于同一类,或者所有的样本具有相同的属性值,这种生长截止条件在样本量大、属性值较多时会导致树过于庞大,因此采用一种预剪枝的方式提前停止树的生长。同时,要想得到一棵泛化误差较小的树,还需要进行剪枝处理,这将在下一篇《分类:决策树——剪枝》中说明。
分类:决策树——树的生长相关推荐
- CART决策树(分类回归树)分析及应用建模
一.CART决策树模型概述(Classification And Regression Trees) 决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...
- 经典算法详解--CART分类决策树、回归树和模型树
Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Reg ...
- 机器学习十大算法之-CART分类决策树、回归树和模型树
转载(http://blog.163.com/zhoulili1987619@126/blog/static/35308201201542731455261/) Classification And ...
- CART分类决策树、回归树和模型树算法详解及Python实现
机器学习经典算法详解及Python实现–CART分类决策树.回归树和模型树 摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用 ...
- 熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的?
熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的? 目录
- 决策树(Decision Tree)、决策树的构建、决策树流程、树的生长、熵、信息增益比、基尼系数
决策树(Decision Tree).决策树的构建.决策树流程.树的生长.熵.信息增益比.基尼系数 目录
- 统计学习方法第五章作业:ID3/C4.5算法分类决策树、平方误差二叉回归树代码实现
ID3/C4.5算法分类决策树 import numpy as np import math class Node:def __init__(self,feature_index=None,value ...
- id3决策树 鸢尾花 python_机器学习之分类回归树(python实现CART)
机器学习之分类回归树(python实现CART) 之前有文章介绍过决策树(ID3).简单回顾一下:ID3每次选取最佳特征来分割数据,这个最佳特征的判断原则是通过信息增益来实现的.按照某种特征切分数据后 ...
- python决策树怎么选择_【机器学习+python(8)】分类决策树的介绍与实现
之前我们介绍过用逻辑回归根据鸢尾花萼片.花瓣的长度和宽度进行鸢尾花类别的判定:也通过朴素贝叶斯模型分享了如何根据男生专业和身高两大属性,判断其是否有女朋友.而本期我们将介绍另外一种有监督的机器学习分类 ...
最新文章
- Week02-Java基本语法与类库
- datatable如何生成级联数据_通过源码分析Mybatis是如何返回数据库生成的自增主键值?...
- 有趣的灵魂,从高质量的阅读开始
- 每日一题(35)—— heap与stack的差别
- 华为或将推出“华为搜索”;​飞书回应微信指控;Fuchsia OS 进入开发者试用阶段 | 极客头条...
- 新年计算机等级的决定的英语,新年决定英语对话及译文
- Windows Server 2012 配置 Remote Desktop Service VDI
- linux查看cuda版本_查看Linux系统版本命令集合
- 大数据shipin教程_大数据视频教程百度网盘下载
- Java使用融云SDK,推送聊天信息
- Python训练自己的语音识别系统
- [RK3399][Android7.1] 调试笔记 --- 虚拟声卡驱动添加
- RestTemplate设置Headers
- 核心单词Word List 7
- LinuxC语言简单实现图片加马赛克-标准IO实现
- UE4如何使用Left Shift+W增加移动速度
- Monkey测试—真机测试步骤
- 如何updateR的version
- 全盘镜像只还原c盘有影响么_系统全盘备份与还原
- OSS Browser的使用