决策树算法---概念

来源:互联网 发布:java自学还是培训 编辑:程序博客网 时间:2024/06/11 21:25

机器学习中分类和预测算法的评估标准

准确率:算法预测结果是否准确

速度:算法运行的速度

强壮性:当存在数据缺失或错误,算法是否正常运行

可规模性:对于大规模的数据,算法是否正常运行

可解释性:算法的运算结果是否可以用已有的理论解释

什么是 决策树 / 判定树(decision tree)

判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。

以上的概念比较抽象,下面举例说明:
采用的例子是前面的文章《机器学习 和 深度学习 的相关概念》中的例1:

这里写图片描述

这里写图片描述

决策树的构造方法

熵(entropy)的概念:

1948年,香农提出了 ”信息熵(entropy)“的概念:
一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少

信息熵表达式:
这里写图片描述

变量的不确定性越大,熵也就越大

决策树归纳算法 中的 ID3算法:

通过属性的信息获取量来选择采用哪个属性来判断。

信息获取量(Information Gain):
Gain(A) = Info(D) - Info_A(D)
其中:
Gain(A):表示通过属性A来作为节点分类获取了多少信息量。
Info(D):表示没有按照任何属性分类时的原始的信息量
Info_A(D):表示把实例按照A属性进行分类之后的信息量
后两者相减,就是用A属性进行分类之后,获得的信息量。

在用A属性进行分类之后,信息量会比原始的信息量减少,不确定性减少就代表信息量减少,减少的信息量就是通过A属性分类所获得的信息量。

举例说明:
下图是一系列实例,分类标志是人们是否购买电脑:
这里写图片描述

共有4个属性:年龄、收入、是否是学生和信用状况。
首先需要分别计算上面四类属性的获得信息量,选择信息获得量最大的那个属性作为决策树的根节点

这里写图片描述

通过对属性age的划分,可以将实例分为三类,如下图所示:
这里写图片描述

对于每一类的实例,重复上面对每个属性获得信息量的计算,继续进行分类,直到实例属于同一个类别。

这里写图片描述

ID3算法

1、树以代表训练样本的单个结点开始。

2、如果样本都在同一个类,则该结点成为树叶,并用该类标号。

3、否则,算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好地将样本分类的属性。该属性成为该结点的“测试”或“判定”属性。
在该算法中,所有的属性都是分类的,即离散值。连续属性必须离散化。

4、对测试属性的每个已知的值,创建一个分枝,并据此划分样本。

5、算法使用同样的过程,递归地形成每个划分上的样本判定树。一旦一个属性出现在一个结点上,就不必该在结点的任何后代上考虑它。

6、递归划分步骤仅当下列条件之一成立停止:
(a) 、给定结点的所有样本属于同一类。
(b) 、没有剩余属性可以用来进一步划分样本。在此情况下,使用多数表决。
这涉及将给定的结点转换成树叶,并用样本中的多数所在的类标记它。
(c) 分枝中没有样本。

决策树优缺点

决策树的优点:
直观,便于理解,小规模数据集有效

决策树的缺点:
处理连续变量不好。
类别较多时,错误增加的比较快。
可规模性一般。

原创粉丝点击