机器学习实战一:决策树

本文介绍了决策树的基本思想,包括特征选择、决策树的生成和剪枝。通过信息熵、信息增益等概念解释了如何选择最优划分属性,并以西瓜数据集为例展示了决策树的构建过程。同时,讨论了预剪枝和后剪枝策略,以防止过拟合。最后,文章提到了使用R语言实现决策树的代码和运行结果。
摘要由CSDN通过智能技术生成

1 决策树理论介绍

(声明:本文部分内容和图片来自周志华老师的《机器学习》)

1.1 引例

决策树是一种基本的分类与回归方法,它是基于特征对实例进行分类。比如面对一个未切开的西瓜,我们需要作出“这是好瓜吗?”这个问题的“决策”过程。通常情况下,我们会进行一系列的判断或“子决策”:我们先看“它的脐部是什么形状?”,如果是凹陷,则我们再看“它是什么颜色?”,最后我们得出最终决策:这是个好瓜。决策过程可用下面的决策树表示:
图片来自周志华《机器学习》
如上图所示,西瓜有脐部、色泽、根蒂等特征,这些特征又可称为西瓜的属性集。决策树中的节点都是西瓜的属性,各个分支代表了属性的不同取值。例如节点1代表的属性“脐部”有三种不同的取值:凹陷、稍凹、平坦,因此这个属性就有三个分支。决策树的起点是“脐部=?”,又可称为决策树的根节点。节点2、3、4、5、6是根据其他属性作出进一步判断,称为决策树的中间节点。我们希望通过西瓜属性的判断,作出“这是好瓜吗?”的决策,因此把属性“好瓜”作为决策树的叶节点。

1.2 基本思想

我们给定一个数据集,随机抽样形成训练集(双线上部)与验证集(双线下部),来说明决策树的学习过程。
图片来自周志华《机器学习》
决策树的学习包括三个步骤:特征选择、决策树的生成和决策树的修剪。

1.2.1 特征选择

特征选择也就是选择最优划分属性。所谓最优的划分属性,是使划分后的节点的纯度最高。纯度的度量指标包括:信息熵、信息增益、增益率和基尼系数等。

(1)信息熵

“信息熵”是度量样本集纯度最常用的一种指标。假定当前集合D中第k类样本所占的比例为 p k {p_k} pk k = 1 , 2 , ⋯   , ∣ y ∣ k = 1,2, \cdots ,\left| y \right| k=1,2,,y
则D的信息熵定义为:
[ E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k ] [Ent(D) = - \sum\limits_{k = 1}^{\left| y \right|} { {p_k}{ {\log }_2}{p_k}} ] [Ent(D)=k=1ypklog2pk]
Ent(D)的值越小,则D的纯度越高。信息熵的取值范围是[0,1],越接近于0,节点的纯度越高。
以西瓜数据集为例,该数据集包含10个训练样例,用来学习一棵没剖开的西瓜是否是好瓜的决策树。显然 ∣ y ∣ = 2 \left| y \right| = 2 y=2,其中好瓜的比例 p 1 = 1 2 {p_1} = \frac{1}{2} p1=21,坏瓜的比例 p 2 = 1 2 {p_2} = \frac{1}{2} p2=21 。可计算出数据集D的信息熵为:
[ E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k = − ( 1 2 log ⁡ 2 1 2 + 1 2 log ⁡ 2 1 2 ) = 1 ] [Ent(D) = - \sum\limits_{k = 1}^{\left| y \right|} { {p_k}{ {\log }_2}{p_k}} = - (\frac{1}{2}{\log _2}\frac{1}{2} + \frac{1}{2}{\log _2}\frac{1}{2}) = 1] [Ent(D)=k=1ypklog2pk=(21log221+21log221)=1]

(2)信息增益

假定离散属性a有V种可能的取值 { a 1 , a 2 , ⋯   , a v } \left\{ { {a^1},{a^2}, \cdots ,{a^v}} \right\} { a1,a2,,av},使用a可将样本划分为V个分支节点,其中第V个节点 D v {D^v} Dv包含了D在属性a上取值为 a v {a^v} av的样本。我们可计算出各个节点的信息熵,赋予各个节点不同的权重,计算出属性a的信息增益。信息增益定义为:
[Gain(D,a) = Ent(D) - \sum\limits_{v = 1}^V {\frac{ {\left| { {D^v}} \right|}}{ {\left| D \right|}}} Ent({D^v})]
信息增益越大,使用属性a进行划分获得的纯度提升越大。
以“脐部”为例,它有三个可能的取值:{凹陷,稍凹,平坦}。使用该属性可将D划分为3个子集:
D 1 {D^1} D1(脐部=凹陷), D 2 {D^2} D2(脐部=稍凹), D 3 {D^3} D3(脐部=平坦
子集1包含编号为{1,2,3,14}的4个样例,其中好瓜的比例 p 1 = 3 4 {p_1} = \frac{3}{4} p1=43,坏瓜的比例 p 2 = 1 4 {p_2} = \frac{1}{4} p2=41;子集2包含编号{6,7,15,17}的4个样例,其中好瓜的比例 p 1 = 1 2 {p_1} = \frac{1}{2} p1=21,坏瓜的比例 p 2 = 1 2 {p_2} = \frac{1}{2} p2=21;子集3包含编号{10,16}的2个样例,其中好瓜的比例 p 1 = 0 {p_1} = 0 p1=0,坏瓜的比例${p_2} = 1。于是可以计算出3个节点的信息熵:
[ E n t ( D 1 ) = − ( 3 4 log ⁡ 2 3 4 + 1 4 log ⁡ 2 1 4 ) = 0.881 , [\begin{array}{l} Ent({D^1}) = - (\frac{3}{4}{\log _2}\frac{3}{4} + \frac{1}{4}{\log _2}\frac{1}{4}) = 0.881,\\ \end{array} [Ent(D1)=(43log243+4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值