机器学习第四章:决策树

机器学习第四章:决策树

1.基本流程

决策树是基于树结构来进行决策的。
例如,我们要对“这是好瓜吗?”进行决策时,通常要进行一系列的判断或子决定:首先看“它是什么颜色?”,如果是青绿色,那么再看“它的根蒂是什么形态?”,如果是蜷缩,则…以此类推,最终得到最终决策:这是好瓜。

在这里插入图片描述

决策过程中提出的每个判定问题都是对某个属性的“测试”;

每个测试的结果要么导出最终结论,要么导出进一步的判定问题;

一般的,一棵决策树包含一个根结点若干个内部结点若干个叶节点;叶节点对应于决策结果,其他结点各对应一个属性测试;每个结点包括的样本集合根据属性测试的结果被划分到子节点中;根节点包含样本全集;从根节点到每个叶节点的路径对应了一个判定测试序列

决策树学习的目的是为了产生一棵泛化能力强(处理未见示例能力强的决策树),其基本流程遵循“分而治之”的策略。

决策树学习基本算法:

输入:训练集D={
   (x1,y1),(x2,y2),...,(xm,ym)}
      属性集A={
   a1,a2,...,ad}

过程:函数TreeGenerate(D,A)
生成结点node;
if D中样本全属于同一类别C then
	将node标记为C类叶节点;return
end if
if A=or D中样本在A上取值相同 then 
	将node标记为叶节点,其类别标记为D中样本数最多的类;return
end if
从A中选择最优划分属性a*;
for a*的每个值a*v do
	为node生成一个分支;
	令Dv表示D中在a*上取值为a*v的样本子集;
	if Dv为空 then
		将分支节点标记为叶节点,其类别标记为D中样本最多的类;return
	else
		以TreeGenerate(Dv,A\{
   a*})为分支节点
	end if
end for
输出:以node为根节点的一棵决策树

决策树的生成时一个递归过程
在算法中,有三种情形会导致递归返回:
(1)当前节点包含的样本全属于同一类别,无需划分;
(2)当前属性集为空/所有样本在所有属性上取值相同,无法划分;
(3)当前节点包含样本集合为空,不能划分。

2.划分选择

决策树学习的关键在于如何选择最优划分属性;
随着划分过程的不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别(结点的“纯度”越来越高)。

2.1 ID3决策树

信息熵”是度量样本集合纯度最常用的一种指标;
假设当前样本集合D中第k类样本所占比例为 p k ( k = 1 , 2 , . . . , ∣ Y ∣ ) p_{k}(k=1,2,...,|Y|) pk(k=1,2,...,Y),则 信息熵定义为:
E n t ( D ) = − ∑ i = 1 ∣ Y ∣ p k log ⁡ 2 p k Ent\left( D\right) =-\sum ^{|Y|}_{i=1}p_{k}\log _{2}p_{k} Ent(D)=i=1Ypklog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

colaj_49485675

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值