前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习-决策树(Decision Tree)简介

机器学习-决策树(Decision Tree)简介

作者头像
XXXX-user
发布2019-09-25 11:13:26
1.1K0
发布2019-09-25 11:13:26
举报
文章被收录于专栏:不仅仅是python不仅仅是python

背景介绍

  • 决策树算法属于监督学习的范畴。它们可用于解决回归和分类问题。
  • 决策树使用树表示来解决每个叶节点对应于类标签的问题,并且属性在树的内部节点上表示。
  • 我们可以使用决策树表示离散属性上的任何布尔函数。

以下是我们在使用决策树时所做的一些假设:

  • 一开始,我们将整个训练集视为根。
  • 特征值优选是分类的。如果值是连续的,则在构建模型之前将它们离散化。
  • 在属性值的基础上,记录以递归方式分布。
  • 我们使用统计方法以root或内部节点对属性进行排序。

从上图中可以看出,决策树在产品总和表上工作,也称为析取范式。在上图中,我们预测计算机在人们日常生活中的使用。

在决策树中,主要挑战是识别每个级别中根节点的属性。 此过程称为属性选择。 我们有两种流行的属性选择措施:

1、信息增益

2、基尼指数

1、信息增益

当我们使用决策树中的节点将训练实例划分为更小的子集时,熵会发生变化。信息增益衡量熵的这种变化。

定义:假设S是一组实例,A是属性,Sv是S的子集,A = v,而值(A)是A的所有可能值的集合,那么

熵是随机变量不确定性的度量,它表征任意一组例子的杂质。熵越高,信息内容越多。

定义:假设S是一组实例,A是属性,Sv是S的子集,A = v,而值(A)是A的所有可能值的集合,那么

例如:

对于集合X = {a,a,a,b,b,b,b,b}

总计:8

b的实例:5

实例:3

代码语言:javascript
复制
= -[0.375 * (-1.415) + 0.625 * (-0.678)]
=-(-0.53-0.424)
= 0.954

使用信息增益构建决策树

要点:

  • 从与根节点关联的所有培训实例开始
  • 使用信息增益选择标记每个节点的属性
  • 注意:没有root-to-leaf路径应该包含两次相同的离散属性
  • 递归地构建训练实例子集上的每个子树,这些子树将被分类到树中的路径。

边界案例:

  • 如果仍然存在所有肯定或所有负面训练实例,则相应地将该节点标记为“是”或“否”。
  • 如果没有剩余属性,则在该节点上留下多数投票训练实例的标签。
  • 如果没有实例,则标记父节点培训实例的多数投票

例如:

现在,让我们使用信息增益为以下数据绘制决策树。

训练集:3个特征和2个分类

X

Y

Z

C

1

1

1

I

1

1

0

I

0

0

1

II

1

0

0

II

在这里,我们有3个特征和2个输出类别。

使用信息增益构建决策树。我们将采用每个功能并计算每个功能的信息。

在特征x上拆分

在特征Y上拆分

在特征Z上拆分

从上面的图像中我们可以看到,当我们对特征Y进行分割时,信息增益是最大的。因此,对于根节点,最合适的特征是特征Y.现在我们可以看到,在按特征Y分割数据集时,孩子 包含目标变量的纯子集。所以我们不需要进一步拆分数据集。

上述数据集的最终树将如下所示:

2、基尼指数

  • 基尼指数是衡量随机选择的元素被错误识别的频率的指标。
  • 这意味着应该首选具有较低基尼指数的属性。
  • Sklearn支持基尼指数的“基尼”标准,默认情况下,它采用“基尼”值。

计算基尼系数的公式如下:

让我们考虑下图中的数据集,并使用指数索引绘制决策树:

INDEX

A

B

C

D

E

1

4.8

3.4

1.9

0.2

positive

2

5

3

1.6

1.2

positive

3

5

3.4

1.6

0.2

positive

4

5.2

3.5

1.5

0.2

positive

5

5.2

3.4

1.4

0.2

positive

6

4.7

3.2

1.6

0.2

positive

7

4.8

3.1

1.6

0.2

positive

8

5.4

3.4

1.5

0.4

positive

9

7

3.2

4.7

1.4

negative

10

6.4

3.2

4.7

1.5

negative

11

6.9

3.1

4.9

1.5

negative

12

5.5

2.3

4

1.3

negative

13

6.5

2.8

4.6

1.5

negative

14

5.7

2.8

4.5

1.3

negative

15

6.3

3.3

4.7

1.6

negative

16

4.9

2.4

3.3

1

negative

在上面的数据集中,有5个属性,属性E是预测特征,包含2个(正面和负面)类。我们两个班级的比例相等。

在基尼指数中,我们必须选择一些随机值来对每个属性进行分类。此数据集的这些值为:

代码语言:javascript
复制
    A       B        C         D
  >= 5     >= 3.0      >= 4.2    >= 1.4
   < 5      < 3.0       < 4.2     < 1.4

计算变量A的基尼指数:

Value >= 5: 12

Attribute A >= 5 & class = positive:

Attribute A >= 5 & class = negative:

Gini(5, 7) = 1 –

Value < 5: 4 Attribute A < 5 & class = positive:

Attribute A < 5 & class = negative:

Gini(3, 1) = 1 –

通过增加权重并将每个基尼指数相加:

计算变量B的基尼指数: Value >= 3: 12 Attribute B >= 3 & class = positive:

Attribute B >= 5 & class = negative :

Gini(5, 7) = 1 –

Value < 3: 4 Attribute A < 3 & class = positive:

Attribute A < 3 & class = negative:

Gini(3, 1) = 1 –

通过增加权重并将每个基尼指数相加:

使用相同的方法,我们可以计算C和D属性的基尼指数:

代码语言:javascript
复制
             Positive    Negative
For A|>= 5.0    5       7
     |<5    3       1
Ginin Index of A = 0.45825
代码语言:javascript
复制
             Positive    Negative
For B|>= 3.0    8       4
     |< 3.0    0       4
Gini Index of B= 0.3345
代码语言:javascript
复制
             Positive    Negative
For C|>= 4.2    0       6
     |< 4.2    8       2
Gini Index of C= 0.2
代码语言:javascript
复制
             Positive    Negative
For D|>= 1.4    0       5
     |< 1.4    8       3
Gini Index of D= 0.273

最值得注意的决策树算法类型是:-

1.迭代二分光镜3(ID3):该算法使用信息增益来决定使用哪个属性对当前数据子集进行分类。对于树的每个级别,递归地计算剩余数据的信息增益。

2. C4.5:该算法是ID3算法的后继算法。该算法使用信息增益或增益比来决定分类属性。它是ID3算法的直接改进,因为它可以处理连续和缺失的属性值。

3.分类和回归树(CART):它是一种动态学习算法,它可以根据因变量生成回归树和分类树。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yale记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档