知识点|机器学习-决策树(Decision Tree)

引入

决策树是一类预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。

关于分类问题

这里主要考虑决策树基于分类问题的处理算法,分类问题和回归问题有个简单的判别方式:分类的目标属性是离散的,而回归的目标属性是连续的。

分类问题的步骤

1、模型构建:通过对训练集合的归纳,利用归纳算法生成可读的规则,建立分类模型。

2、预测推论:根据规则和建立的分类模型,对测试集合进行测试,并处理新的数据。

关于归纳算法

  • 归纳是从特殊到一般的过程,归纳过程就是在描述空间中进行搜索的过程。
  • 归纳可分为自顶向下,自底向上和双向搜索三种方式。
    • 自底向上法:一次处理一个输入对象,将描述逐步一般化, 直到最终的一般化描述。
    • 自顶向下法:对一般性描述集进行搜索,寻找满足一定要求的最优的描述。
  • 归纳算法是决策树技术发现数据模式和规则的核心。
  • 归纳学习依赖于检验数据,因此又称为检验学习。
  • 归纳推理试图从对象的一部分或整体的特定的观察中获得一个完备且正确的描述。即从部分事实到普遍性规律的结论。

归纳的基本假设

归纳学习存在一个基本假设:任一假设如果能够在足够大的训练样本集中很好的逼近目标函数,则它也能在测试样本中很好地逼近目标函数。

该假定是归纳学习的有效性的前提条件。

决策树模型

分类决策树是一种描述对实例进行分类的树形结构,决策树由结点和有向边构成,结点可分为内部结点和叶结点两种,内部节点表示一个特征或属性,叶节点表示一个分类,通常用圆表示内部结点,用方框表示叶结点。

决策树分类,从根结点开始,对实例某一特征进行测试,根据测试结果将实例分配到其子结点,每一个子结点对应着该特征的一个取值,如此递归直至达到叶结点。

构造决策树的核心问题是在每一步如何选择适当的属性对样本做拆分。对一个分类问题,从已知类标记的训练样本中学习并构造出决策树是一个自上而下,分而治之的过程。

决策树的if-then规则

由决策树的根结点到叶结点的每一条路径构建一条规则:路径上内部结点的特征对应规则的条件,而叶结点的类对应规则的结论。

决策树的路径与其对应的if-then规则集合具有一个重要的性质:互斥且完备。这意味着每一个实例都被一条路径或一条规则所覆盖,并且只被一条路径或一条规则所覆盖。

决策树与条件概率分布

决策树表示给定特征条件下类的条件概率分布。条件概率分布定义在特征空间的一个划分上.将特征空间划分为互不相交的单元或区域,并在每个单元定义一个类的概率分布就构成了一个条件概率分布。

决策树的一条路径对应划分中的一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。

决策树学习本质上是从训练数据集中归纳出一组分类规则,能对训练数据进行正确分类的决策树可能有多个,也可能一个也没有。我们需要的是一个与训练数据矛盾较小同时具有较优泛化能力的决策树。即条件概率模型应该不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。

决策树算法

四个重要算法:CLS、ID3、C4.5、CART。ID3中使用了信息增益选择特征,增益大优先选择。C4.5中,采用信息增益率选择特征,减少因特征值多导致信息增益大的问题。CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(率)相反。

算法历程:

  • 1966年,CLS学习系统
  • 1979年,简化CLS,得到ID3
  • 1984年,CART算法
  • 1986年,基于ID3,创建节点缓冲区,得到ID4
  • 1988年,基于ID4,优化效率,得到ID5
  • 1993年,改进ID3,得到C4.5

决策树CLS算法

CLS(Concept Learning System)算法是许多决策树学习算法的基础

基本思想

CLS的基本思想是从一棵空决策树开始,选择某一分类属性作为测试属性。该测试属性对应决策树中的决策结点。根据该分类属性的值的不同,可将训练样本分成相应的子集。

若该子集为空,或该子集中的样本属于同一个类,则该子集为叶结点。否则该子集对应于决策树的内部结点,即测试结点,需要选择一个新的分类属性对该子集进行划分,直到所有的子集都为空或者属于同一类。

算法步骤

1、生成一颗空决策树和一张训练样本属性集;

2、若训练样本集T中所有的样本都属于同一类,则生成结点T , 并终止学习算法;否则继续;

3、根据某种策略从训练样本属性表中选择属性A 作为测试属性, 生成测试结点A;

测试属性集的组成以及测试属性的先后对决策树的学习具有举足轻重的影响

4、若A的取值为v1,v2,...,vm, 则根据A的取值的不同,将T划分成m个子集T1,T2,...,Tm;

5、从训练样本属性表中删除属性A,转至步骤二,对每个子集递归调用CLS。

算法思考

实际应用中可以发现,测试属性集的组成以及测试属性的先后对决策树的学习具有举足轻重的影响,不同的特征和不同的选取顺序会生成不同的决策树,因此特征的选择显得尤为重要。

不同的特征和不同的选取顺序会生成不同的决策树

那么,如何选择特征?这一点会在接下来的ID3算法中得到进一步尝试。

决策树ID3算法

ID3算法主要针对属性选择问题。是决策树学习方法中最具影响和最为典型的算法。

基本思想

基于CLS的基本思想,ID3算法通过信息增益度选择特征

当获取信息时,需要将不确定的内容转为确定的内容,因此信息伴着不确定性。从某种程度上讲,小概率事件比大概率事件包含的信息量大,如果某件事情是“百年一见”则肯定比“习以为常”的事件包含的信息量大。那么如何衡量信息量的大小?这就涉及信息论中的概念。

熵的概念

熵(entropy): 信息量大小的度量,也表示随机变量不确定性的度量。

熵的通俗解释:事件Ai的信息量l(A_i )可以表示为:l(A_i)=p(A_i)log_2\frac{1}{p(A_i)},其中p(A_i)表示事件Ai发生的概率。

熵的理论解释:设X是一个取有限个值的离散随机变量,其概率分布为

P(X_i=x_i)=p_i,i=1,2,..,n

则随机变量X的熵为:

H=-\sum_{i=1}^{n}p_ilogp_i

0\leq H\leq logn

其中对数以2为底或以e为底,熵的单位分别称为比特(bit)或纳特(nat)。

熵只依赖于X的分布,与X的取值无关。

熵越大,对应随机变量的不确定性也越大。

当X为0,1分布时,P(X=1)=p,P(X=0)=1-p,0\leq p\leq 1

H=-plog_2p+-(1-p)log_2(1-p)

H随p的变化情况可用图表示:

条件熵:H(Y|X)=\sum_{i=1}^{n}p_iH(Y|X=x_i)表示在己知随机变量X的条件下随机变量Y的不确定性,定义为X给定条件下Y的条件概率分布的熵对X的数学期.

当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别称为经验熵和经验条件熵.

信息增益

信息增益(Information gain):特征A对训练数据集D的信息增益g(D,A), 定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即g(D,A)=H(D)-H(D|A)

信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度,一般来说H(Y)-H(Y|X)称为互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息。

信息增益的算法

输入:训练数据集D和特征A;

1、计算数据集D得经验熵:

H(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|}

2、计算特征A对数据集D的经验条件熵H(D|A)

H(D|A)=\sum_{I=1}^{n}\frac{|D_i|}{|D|}H(D_i)=-\sum_{I=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D|}log_2\frac{|D_{ik}|}{|D|}

3、计算信息增益

g(D,A)=H(D)-H(D|A)

输出:特征A对训练数据集D的信息增益g(D,A)

  • |Ck |为属于类Ck的样本个数
  • 特征A有n个不同的 取值{a1,a2...an}根据特征A的取值 将D划分为n个子集D1...Dn
  • 子集Di中属于类Ck的样本集合为Dik

ID3算法

1、从根节点开始,计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的划分特征;

2、由该特征的不同取值建立子节点;

3、再对子节点递归1-2步,构建决策树;

4、直到没有特征可以选择或类别完全相同为止,得到最终的决策树。

算法思考

ID3算法以信息熵为度量,用于决策树节点的属性选择,每次优先选取信息量最多的属性,亦即能使熵值变为最小的属性,以构造一颗熵值下降最快的决策树,到叶子节点处的熵值为0。此时,每个叶子节点对应的实例集中的实例属于同一类。

决策树C4.5算法

ID3中使用了信息增益选择特征,增益大优先选择。C4.5中,采用信息增益率选择特征,减少因特征值多导致信息增益大的问题。以信息增益作为划分训练数据集的特征,易偏向于选择取值较多的特征,考虑信息增益比可以矫正这一问题。

信息增益比

特征A对训练数据集D的信息增益比定义为信息增益与训练数据集D关于特征A的值的熵之比

g_R(D,A)=\frac{g(D,A)}{H_A(D)}

其中H_A(D)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|},n是特征A的取值个数

决策树CART算法

ID3和C4.5算法,生成的决策树是多叉树,只能处理分类不能处理回归。而CART(classification and regression tree)分类回归树算法,既可用于分类也可用于回归。 分类树的输出是样本的类别, 回归树的输出是一个实数。

算法组成

  • 决策树生成
  • 决策树剪枝

CATR树

  • 目标变量是类别的——分类树:Gini指标、Towing、order Towing
  • 目标变量是连续的——回归树:最小平方残差、最小绝对残差

基尼系数

数据集D的纯度可用基尼值来度量

Gini(D)=\sum_{i=1}^{n}p(x_i)(1-p(x_i))=1-\sum_{i=1}^{n}p(x_i)^{2}

其中, p(xi) 是分类 xi 出现的概率,n是分类的数目。Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高

对于样本D,样本容量为|D|,根据特征A 是否取某一可能值a,把样本D分成两部分D1和D2 ,所以CART分类树算法建立起来的是二叉树,而不是多叉树。

在属性A的条件下,样本D的基尼系数定义为

Giniindex(D|A=a)=\frac{|D_1|}{|D|}Gini(D_1)+\frac{|D_2|}{|D|}Gini(D_2)

决策树的优点

1、决策推理过程可以表示成If-Then的形式;

2、推理过程完全依赖于属性变量的取值特点;

3、可忽略对目标变量无贡献的属性变量。

猜你喜欢

转载自blog.csdn.net/weixin_73404807/article/details/133769224