【机器学习】决策树算法--1(算法介绍)

文章目录

  • 一、决策树的是什么?
  • 二、决策树算法原理
  • 三、决策树典型算法
    • 下面根据这个数据集对三种算法进行分析
    • 1、ID3算法
      • 1.1、ID3算法总结
    • 2、C4.5算法
      • 2.1、增益率定义
      • 2.1、信息增益率总结对比信息增益
    • 3、CART算法
      • 3.1、基尼指数
      • 3.2、CART算法对比C4.5算法


一、决策树的是什么?

1.是⼀种树形结构,本质是⼀颗由多个判断节点组成的树
2.每个内部节点表示⼀个属性上的判断
3.每个分⽀代表⼀个判断结果的输出
4.最后每个叶节点代表⼀种分类结果

二、决策树算法原理

决策树算法基本原理是用决策点代表决策问题,用方案分枝代表可供选择的方案,用概率分枝代表方案可能出现的各种结果,经过对各种方案的各种结果的比较,为决策者提供决策依据。

三、决策树典型算法

名称 分支方式 提出时间 备注
ID3 信息增益 1975 只能对离散数据集进行构建决策树
C4.5 信息增益率 1993 优化解决ID3分支过程中总是偏向分类多的属性
CART Gini系数 1984 可以进行分类回归,可以处理离散数据集,也可以处理连续数据集

下面根据这个数据集对三种算法进行分析

                            集美大学三好学生评选表
是否挂科 获得奖学金次数 综测评价 体质健康是否达标 宿舍检评 是否符合条件
1 no 4 excellect yes excellent yes
2 no 1 good no excellent no
3 no 0 excellect yes excellent yes
4 no 1 excellect no excellent no
5 no 2 good yes excellent yes
6 no 1 excellect yes excellent no
7 no 1 excellect yes excellent yes
8 yes 0 good yes excellent no
9 no 2 good yes good no
10 no 2 excellect yes excellent yes
11 yes 2 excellect yes excellent no
12 yes 0 good yes good no
13 yes 0 excellect yes pass no
14 no 4 excellect yes excellent yes
15 no 2 excellect yes excellent yes

1、ID3算法

“信息熵”是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为 p k (K=1, 2, …, |y|),则D的信息熵定义为
【机器学习】决策树算法--1(算法介绍)_第1张图片

离散属性a有V个可能的取值{a 1 , a 2 , …, a V },用a来进行划分,则会产
生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为
a v 的样本,记为D v 。则可计算出用属性a对样本集D进行划分所获得的
“信息增益” :
在这里插入图片描述

一般而言,Ent(D)的值越小,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。

ID3算法就是以信息增益为准则来选择划分属性

以集美大学三好学生评选表为例
总熵值:
在这里插入图片描述

以属性"是否挂科"为例,其对应的数据子集分别为D1(是否挂科=yes) ,D2(是否挂科=no)
【机器学习】决策树算法--1(算法介绍)_第2张图片

类似的,其他属性的信息增益为
【机器学习】决策树算法--1(算法介绍)_第3张图片

获 得 奖 学 金 次 数
综 测 评 价
体 质 健 康 是 否 达 标
宿 舍 检 评

此时,属性“是否挂科”的信息增益最大,其被选为划分属性
【机器学习】决策树算法--1(算法介绍)_第4张图片
继续对每个分支进行划分,又因为(是否挂科=yes)里面都是不符合条件的,所以,就以(是否挂科=yes)为例继续划分:
【机器学习】决策树算法--1(算法介绍)_第5张图片

获 得 奖 学 金 次 数
综 测 评 价
体 质 健 康 是 否 达 标
宿 舍 检 评

显然,获得奖学金次数信息增益最大,则以获得奖学金次数为下一个节点继续划分,以此类推,一直以这个信息熵最大的节点为下一个节点来分支,最终得到的决策树如图:
【机器学习】决策树算法--1(算法介绍)_第6张图片

1.1、ID3算法总结

如果把编号作为一个属性进行划分,那么就意味着,每个节点分支都是百分之百是这个类型,那信息熵Ent(D)=0,信息增益为0.9963-0,那就是0.9963,那不就用编号为属性划分不就更好吗?
所以,信息增益对可取值数目较多的属性有所喜好,为了更好的优化这个ID3算法,就有了下面C4.5算法。

2、C4.5算法

2.1、增益率定义

【机器学习】决策树算法--1(算法介绍)_第7张图片


其中,
属性 a 的可能取值数⽬越多(即 V 越⼤),则 IV(a) 的值通常会越⼤

是否挂科:{yes, no}
D1 = yes:{8,11,12,13}
D2 = no:{1,2,3,4,5,6,7,9,10,14,15}
在这里插入图片描述

是 否 挂 科
所以,同理可得:
获 得 奖 学 金 次 数

IV(获得奖学金次数)= 1.9329
IV(综测评价)= 0.9183
IV(体质健康是否达标)= 0.3875
IV(宿舍检评)= 0.9055
IV(编号)= 3.9062
还有上面的IV(是否挂科)=0.8366
则信息增益率为:
Gain_ratio(D,是否挂科) = 0.3620
Gain_ratio(D,获得奖学金次数) = 0.1243
Gain_ratio(D,综测评价) = 0.1184
Gain_ratio(D,体质健康是否达标) = 0.3452
Gain_ratio(D,宿舍检评) = 0.2350
Gain_ratio(D,编号) = 0.2550

可以看出是否挂科的信息增益率最高,所以在构建决策树的时候,优先选择是否挂科
通过这种⽅式,在选取节点的过程中,我们可以降低取值较多的属性的选取喜好,这样编号对决策树节点选择的影响就会降低。

2.1、信息增益率总结对比信息增益

降低了用信息增益选择属性时偏向选择值多的属性的影响

3、CART算法

3.1、基尼指数

分类问题中,假设D有K个类,样本点属于第k类的概率为pk,则概率
分布的基尼值定义为:
在这里插入图片描述


给定数据集D,属性a的基尼指数定义为:
在这里插入图片描述


还是以上面集美大学三好学生评选表为例,求(是否挂科=no)的基尼系数?
总样本数|D|=15
是否挂科=yes时 全是no,
在这里插入图片描述


是否挂科=no时,7个yes,4个no,
在这里插入图片描述


则基尼指数:gini = 4/15 *gini1+ 11/15 * gini92

3.2、CART算法对比C4.5算法

特征选择采⽤了基尼指数来简化计算。

你可能感兴趣的:(人工智能,算法)