第四章 机器学习之分类 决策树

决策树

在这里插入图片描述
根据特征解决数据分类问题。每个节点选择一个特征提出问题,通过判断,将数据分为两类,再继续提问。这些问题是在已知各种情况发生概率基础上,构成决策树,求取值大于等于0的概率。再投入新数据时,根据树上的问题,将数据划分到合适叶子上。事先确定每个样本的属性和类别,节点表示属性测试,每个分支表示测试输出,叶节点表示类别。

决策树算法常用于分类任务中,从给定的训练数据集中学习到一个模型用于对新示例进行分类。

决策树需要两部分数据:

训练数据:用于构造决策树,即决策机制
测试数据:验证所构造决策树的错误率

决策树算法:ID3、 C4.5、 CART 等。

构造树的依据–信息熵&信息增益

问题:
• 每个节点应该选择什么样的特征进行划分呢?
• 选择哪个特征才能比较好的划分数据集?
• 为什么有的人画出来的决策树简介高效;而有的人
画出来的决策树看起来很复杂,效果很差?

信息熵表示信息的复杂程度,例如集合A={1,1,1,2,2}和集合B={1,2,3,4,5}相比,集合A的熵更小。
信息增益是在划分数据集前后信息熵的差值。

应用实例(赖床问题取决于多个变量)

在这里插入图片描述

决策树过程(1):根节点

  1. 计算赖床信息熵H

H ( x ) = − ∑ p ( x i ) ∗ l o g 2 ( p ( x i ) )        ( i = 1 , 2 , . . . , n ) H(x)=-\sum{p(xi)*log2(p(xi))}{\;\;\;(i=1,2,...,n)} H(x)=p(xi)log2(p(xi))(i=1,2,...,n)

p(赖床)=8/12. p(不赖床)=4/12.
H(赖床)=-(p(赖床)*log2(p(赖床))+p(不赖床) *log2(p(不赖床)))=0.89

  1. 计算每个属性(季节、时间已过 8 点、风力情况)的信息熵
    在这里插入图片描述
    (1)风力情况为breeze时,有4/5的概率会赖床,1/5的概率不会赖床,它的熵为:entropy(breeze) = -(p(breeze,赖床) * log2(p(breeze,赖床))+p(breeze,不赖床) * log2(p(breeze,不赖床))) =0.722
    (2)风力情况为 no wind 时,熵值为 entropy(no wind) = 0.811
    (3)风力情况为 gale 时,熵值为 entropy(gale) = 0.918
    H ( 风 力 情 况 ) = 5 / 12 ∗ e n t r o p y ( b r e e z e ) + 4 / 12 ∗ e n t r o p y ( n o w i n d ) + 3 / 12 ∗ e n t r o p y ( g a l e ) = 0.801 H(风力情况)=5/12*entropy(breeze)+4/12* entropy(nowind)+3/12*entropy(gale)=0.801 H()=5/12entropy(breeze)+4/12entropy(nowind)+3/12entropy(gale)=0.801

同样的计算方法:
H(季节)=0.56 ;H(是否过8点)=0.748

信息增益是上一步的信息熵减去选定属性的信息熵:
信息增益 g(风力情况) = H(赖床) - H(风力情况) =0.89-0.801=0. 089
信息增益 g(是否过8点) =0.89-0.748=0.142
信息增益 g(季节) =0.89-0.56=0.33

选取信息增益最大的那个作为根节点:季节

决策树(2):挑选新的节点

在这里插入图片描述

决策树(3):构建完整树

在这里插入图片描述
剪枝:即减少树的高度,避免过拟合。

(1)预剪枝干:设定一个树高度,当构建的树达到高度时,停止。
(2)后剪枝:任由决策树构建完成,然后从底部开始,判断哪些枝干应该剪掉。
预剪枝更块,后剪枝更精确。

决策树总结

一棵决策树包含一个根节点、若干个内部结点和若干个叶结点。

在决策过程中提出的每个判定问题都是对某个属性的“测试”(节点)。

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

根节点包含了样本全集,其中叶节点对应于决策结果(yes 或no),其他每个结点对应于一个属性测试(例如 风力情况=?)

从根节点到每个叶节点的路径对应一个判定测试序列.

决策树的生成是一个递归过程。

有三种情形会导致递归返回:
(1)当前节点包含的样本全属于同一类别,无需划分.
(2)当前属性为空或者是所有样本在所有属性上取值相同,无需划分。这种情况下,把当前节点标记为叶节点,并将其类别设定为该节点所含样本最多的类别。
(3)当前节点包含的样本集为空,不能划分,同样把当前节点标记为叶节点。

在这里插入图片描述

决策树学习的生成算法

建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有一下三种算法:ID3、C4.5、CART。

适应信息增益来进行特征选择的决策树学习过程,即为ID3决策。

所以如果是取值更多的属性,更容易使得数据更“纯”,其信息增益更大,决策树会首先挑选这个属性作为树的顶点。结果训练出来的形状是一棵庞大且深度很浅的树,这样的划分是极为不合理的。

C4.5:信息增益率 gr(D,A) = g(D,A) / H(A)

CART:基尼指数

总结:一个属性的信息增益越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强。

决策树优缺点

优点:

易于理解和实现,学习中不需了解太多背景知识,直接体现数据特点;
数据准备简单或不必要,能同时处理数据型和常规型属性;
易于通过静态测试对模型评测(可信度)、逻辑表达式;

缺点:

对连续性的字段比较难预测;
对有时间顺序的数据,需要很多预处理工作;
类别太多时,错误可能增加比较快;
一般算法分类,都只是根据一个字段来分类;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值