详解决策树、python实现决策树

本文详细介绍了决策树模型,包括定义、决策过程、决策树学习和特征选择。重点讨论了信息增益作为特征选择的依据,并介绍了ID3算法的原理。此外,还给出了使用Python实现决策树的示例。
摘要由CSDN通过智能技术生成

决策树模型

定义

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点(Node)和有向边(directed edge)组成。节点有两种类型:内部节点(internal node)和叶节点(left node)。内部节点表示一个特征或一个属性,叶节点表示一个类。

决策过程

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

我们来举个例子,看一下决策树的决策过程。

假设小明要出门了,需要选择一种出行方式,假设出行方式有以下几种:步行,自行车,驾车,地铁。如果距离很近,那么小明就选择步行,如果不是特别远,就选择自行车,如果特别远的话,就要选择驾车或地铁了。然后考虑今天是不是限号呢,不限号就驾车,限号就只能地铁了,现在我们把这个决策过程画出来。
这里写图片描述

上图就表示了小明在选在出行方式时的策略,对照上述的定义,可以看出这棵决策树有两个内部节点(距离、限号)、四个叶节点(步行,骑车,驾车、地铁),也就是说在决策的时候要考虑这两个特征,最终的结果可能有四种。

决策树学习

目标:决策树的学习,就是根据数据集构建出一棵决策树。我们希望构建出来的决策树,既能很好的对数据集进行分类,又具有很好的泛化能力。

启发式学习:由于基于特征空间划分的类的条件概率模型有无限多个,从所有可能的决策树中选取最优化决策树是NP完全问题,所以现实中决策树学习算法是采用启发式方法,近似求解这一最优化问题,这样得到的决策树是次优的。也就是说现实中的决策树学习算法,一般是逐步构建决策树,每次选取的特征是保证最优划分的,但是这样的得到的决策树不一定是所有可能的决策树中最优的。

学习过程:决策树学习算法通常就是递归的选择最优特征,兵器人根据该特征对训练集进行划分,在划分之后的训练集上再进行决策树学习算法,如果能够大致分类,则设置成叶节点,否则继续选择最优特征,知道所有的训练数据子集都能被正确的分类或者没有可选的特征为止。

剪枝:这样的算法生成的决策树,一般对训练集的分类效果很好、但泛化能力不强,也就是说容易产生过拟合现象。因此需要对构建好的数据集进行剪枝,将树变得更简单,因而具有更好的泛化能力。

可以看出决策树的学习算法一般包含三个过程:特征选择、决策树生成和决策树剪枝。

特征选择

特征选择就是决定用哪个特征来划分特征空间。

训练集中的样本会包含很多特征,在选择特征的时候,我们应该考虑选用哪个特征划分特征空间的效果更好。

问题是的关键在于我们如何比较哪个特征的划分效果更好,也就是如何确定评价指标。

解决思路是这样的,如果选取某个特征对数据集划分后,得到的若干个子集,如果这些子集内的分类效果比选择其他特征划分后的效果都要好,那么就应该选择这个特征。

信息增益

在介绍信息增益之前需要先给出熵和条件熵的定义。

在信息论中熵(entropy)是表示随机变量不确定性的度量。
X X 是一个取有限个值的离散性随机变量,其概率分布为

P ( X = x i ) = p i , 1 , 2 , 3 , . . . , n

则熵定义为

H(X)=i=1npilog(pi) H ( X ) = − ∑ i = 1 n p i l o g ( p i )

随机变量的不确定行越大,熵越大。

当随机变量指取两个值时,例如1,0,即X的分布为

P(X=1)=p,p(X=0)=1p,0p1 P ( X = 1 ) = p , p ( X = 0 ) = 1 − p , 0 ≤ p ≤ 1

此时,熵为

H=plog2p(1p)log2(1p) H = − p l o g 2 p − ( 1 − p ) l o g 2 ( 1 − p )

熵随 p p 的变化曲线为

这里写图片描述

p = 0 p=1 p = 1 时, H(p)=0 H ( p ) = 0 ,随机变量完全没有不确定性。当 p=0.5 p = 0.5 时,不确定性最大。

设随机变量 (X,Y) ( X , Y ) ,其联合概率分布为

P(X=xi,Y=yi)=pij,i=1,2,...,n,j=1,2,...m P ( X = x i , Y = y i ) = p i j , i = 1 , 2 , . . . , n , j = 1 , 2 , . . . m

条件熵 H(Y|X) H ( Y | X ) 表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量 X X 给定的条件下随机变量Y打分条件熵(conditional entropy)
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值