机器学习实战-决策树

本文深入解析决策树算法,包括ID3、C4.5和CART等经典算法的工作原理及应用。通过递归构建决策树,选择最优特征进行数据集划分,直至生成完整的决策模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

决策树的生成和修剪
数据集构造决策树算法所需要的子功能模块,包括经验熵的计算和最优特征的选择,其工作原理如下:得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分之后,数据集被向下传递到树的分支的下一个结点。在这个结点上,我们可以再次划分数据。因此我们可以采用递归的原则处理数据集。
构建决策树的算法有很多,比如C4.5、ID3和CART,这些算法在运行时并不总是在每次划分数据分组时都会消耗特征。由于特征数目并不是每次划分数据分组时都减少,因此这些算法在实际使用时可能引起一定的问题。目前我们并不需要考虑这个问题,只需要在算法开始运行前计算列的数目,查看算法是否使用了所有属性即可。
3.2.1 决策树的构建

  1. ID3算法
    ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。

具体方法是:

1)从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征。

2)由该特征的不同取值建立子节点,再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止;

3)最后得到一个决策树。

ID3相当于用极大似然法进行概率模型的选择

算法步骤:

分析数据:

上面已经求得,特征A3(有自己的房子)的信息增益最大,所以选择A3为根节点的特征,它将训练集D划分为两个子集D1(A3取值为“是”)D2(A3取值为“否”)。由于D1只有同一类的样本点,所以它成为一个叶结点,结点的类标记为“是”。

对D2则需要从特征A1(年龄),A2(有工作)和A4(信贷情况)中选择新的特征,计算各个特征的信息增益:

g(D2,A1)=H(D2)−H(D2∣A1)=0.251 g(D2,A1)=H(D2)-H(D2|A1)=0.251
g(D2,A1)=H(D2)−H(D2∣A1)=0.251

g(D2,A2)=H(D2)−H(D2∣A2)=0.918 g(D2,A2)=H(D2)-H(D2|A2)=0.918
g(D2,A2)=H(D2)−H(D2∣A2)=0.918

g(D2,A3)=H(D2)−H(D2∣A3)=0.474 g(D2,A3)=H(D2)-H(D2|A3)=0.474
g(D2,A3)=H(D2)−H(D2∣A3)=0.474

根据计算,选择信息增益最大的A2作为节点的特征,由于其有两个取值可能,所以引出两个子节点:

①对应“是”(有工作),包含三个样本,属于同一类,所以是一个叶子节点,类标记为“是”

②对应“否”(无工作),包含六个样本,输入同一类,所以是一个叶子节点,类标记为“否”

这样就生成一个决策树,该树只用了两个特征(有两个内部节点),生成的决策树如下图所示:

  1. C4.5的生成算法
    与ID3算法相似,但是做了改进,将信息增益比作为选择特征的标准。

递归构建决策树:

从数据集构造决策树算法所需的子功能模块工作原理如下:得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分,第一次划分之后,数据将被向下传递到树分支的下一个节点,在此节点在此划分数据,因此可以使用递归的原则处理数据集。
递归结束的条件是:
程序完全遍历所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类,如果所有实例具有相同的分类,则得到一个叶子节点或者终止块,任何到达叶子节点的数据必然属于叶子节点的分类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值