机器学习 day05(一)

数学原理

决策树

1、决策树的定义

1)用非叶子节点作为特征
2)用叶子节点作为标签
3)从根节点开始依次将特征带入,进行决策,直至决策到某个叶子节点为止,决策的结果就是最终的叶子节点值

2、如何构造一棵决策树

原理:信息论
【相关概念】
1)信息量
香浓对信息量有以下规定:
如果参与分类的事物可以划分到多个类别中去,即X该类事物类别信息;则该信息的信息量就是:L(X)=-log2(P(Xi)),其中P(Xi)代表Xi这个类别占的比例(也即是出现的概率)

职业年龄收入学历是否贷款
自由职业285000高中
工人365500高中
工人422800初中
白领453300小学
白领2510000本科
白领328000硕士
白领2813000博士
自由职业214000本科
自由职业223200小学
工人333000高中
工人484200小学

通过职业、年龄、收入、学历判断是否贷款。此时特征就是职业、年龄、收入、学历,标签是是否贷款

从标签上来看,11个样本有2个类别:是与否
在这里插入图片描述

2)信息熵

信息熵指的就是信息量的数学期望
在这里插入图片描述

信息熵的含义:信息熵描述了数据的混乱程度,熵值越大代表类别混乱程度越高,也就是说类别的纯度越低;反之熵值越小代表类别的混乱程度越小类别越纯。
比如上面二分类:如果标签上只有一个类别,此时纯度是最高的,信息熵为0;如果是两个类别的概率都为1/2,此时纯度最低,信息熵为 1

3)基尼值
在这里插入图片描述

4)信息增益
(1) 相对信息熵:以某个特征对标签进行划分的时候,得到的这个特征范围内的信息熵
在这里插入图片描述
(2)信息增益

信息增益:Gain(X) = Entropy(类别) - Entropy(某个特征的相对)
Gain(职业) = Entropy - E(职业) = 0.994 - 0.840 = 0.154

信息增益的含义:信息增益描述的是,如果以某个特征进行分裂,分裂前后数据的复杂程度的变化情况。例如:如果某个特征对标签进行划分的时候,信息增益越大,说明用该特征来划分类别的时候区分程度越明显;我们在决策的时候分裂某个属性尽量选择信息增较大提前分裂。

3、决策树的算法
  1. ID3算法,分裂的时候用信息熵来作为判断分类的纯度的标准,分裂出来的数我们称为ID3树,ID3树是一个分类树

  2. CART算法,用gini值来作为分裂依据,分裂出来的树我们称为CART树,CART树是一棵二叉树,既可以作为分类树也可作为回归树

  3. C4.5算法,对节点分裂的时候以信息增益率为依据,分裂出来的树我们称为C4.5树,C4.5树也是一棵分类树

【算法介绍】

1、ID3算法

在这里插入图片描述
根据当天天气、温度、湿度、季节来判断明天天气

  1. 数据的分割
    三种情况:
    (1)属性是离散的而且不要求构造二叉树
    按照属性的取值直接分叉,例如:季节这个特征就可以作为直接分支
    (2)属性是离散的且要求构造二叉树
    按照属性的取值的分析来进行分叉,例如:可以把天气分成两种晴天就是好天阴天和雨天合在一起就是坏天
    (3)属性是连续的
    把连续变量离散化,首先对连续的数据从小到大排序,然后将连续的数据均匀的划分到多个区间中去。
    例如温度:
    4 6 8 15 18 18 18 21 24 25 28 31
    如果要划分三个区间:
    [-∞,16],[16,22],[22,+∞]

  2. 选择最优的分裂属性
    ID3算法在进行属性选择的时候,以信息增益为属性分裂的指标,选择信息熵来作为节点纯度的衡量标准。
    在这里插入图片描述
    温度的信息增益:
    Gain2 = 0.084
    湿度的信息增益:
    Gain3 = 0.084
    季节的信息增益:
    Gain4 = 0.973
    通过信息增益的对比,我们发现以季节作为分裂属性时信息增益最大,即季节对标签影响最大,我们就以季节作为根节点

  3. 分裂
    首先我们根据根节点取每一个熵值,看是否达到了某个规定纯度标准,如果达到了纯度标准就直接分裂出叶子(标签),否则输出到下一个特征来判断。
    比如:现在我们以0.75为标准发现只有夏天达到了这个标准,夏天输出到“晴”,其他三个特征都输出到下一个特征
    然后,把取“夏天”的所有的行全部剔除掉,继续求信息增益以及信息熵,再进行判断下个特征是谁,然后分裂,直至所有的特征都分裂完为止。

2、CART算法

CART树又叫分类回归树,是在ID3算法的基础上进行的改进,有以下三个关键点:
1)CART树既能回归又能分类
2)CART树在进行分裂的时候,进行分类问题的时候以gini值为依据进行分裂,进行回归问题的时候以最小平方差作为依据。
CART是一棵二叉树

在这里插入图片描述
1、认识CART树
CART分类树:预测的结果是离散的,就是若干种类别;比如:用上表中的“看电视时间”、“年龄”、“职业”来推测“婚姻状况”,此时就是分类树
CART回归树:预测的结果是连续的,就是具体数值; 比如:用上表中的“看电视时间”、“婚姻状况”、“职业”来推测“年龄”,此时就是回归树

2、CART树如何来选择分裂属性

分裂的目的是能够让数据的标签类别变得更纯,使得决策的输出值更加接近于真实。
如何来评价一个节点的纯度?
在这里插入图片描述
1)CART分类树的分裂
以“职业”来对“婚姻状况分裂”,由于CART树是一棵二叉树,我们需要将“职业”中的取值进行二值化。此时二值化就有三种情况:
在这里插入图片描述
在这里插入图片描述
同理:在求出特征“看电视时间”对标签的最小相对gini值和年龄相对于标签的最小gini值,然后取三个最小gini值最小的那个作为根节点。

2)CART回归树
通过“职业”来预测年龄
在这里插入图片描述

此时方差最小的就是66,即用{“上班族”},{“老师”,“学生”}这样的二值化对“职业”这个特征进行分类,得到的标签的方差最小的
我们同理求其他特征的最小方差,从这些最小方差中再选择最小的,对应的属性就是根节点。

3 决策树系列——C4.5

ID3方法主要有几个缺点:一是采用信息增益进行数据分裂,准确性不如信息增益率;二是不能对连续数据进行处理,只能通过连续数据离散化进行处理;三是没有采用剪枝的策略,决策树的结构可能会过于复杂,可能会出现过拟合的情况。
C4.5在ID3的基础上对上述三个方面进行了相应的改进:
a) C4.5对节点进行分裂时采用信息增益率作为分裂的依据;
b) 能够对连续数据进行处理;
c) C4.5采用剪枝的策略,对完全生长的决策树进行剪枝处理,一定程度上降低过拟合的影响。
1.采用信息增益率作为分裂的依据
信息增益率的计算公式为:
在这里插入图片描述
其中
在这里插入图片描述
表示信息增益,
在这里插入图片描述
表示分裂子节点数据量的信息增益,
计算公式为:
在这里插入图片描述
其中m表示节点的数量,Ni表示第i个节点的数据量,N表示父亲节点的数据量,说白了,其实是分裂节点的熵。
信息增益率越大,说明分裂的效果越好。
以一个实际的例子说明C4.5如何通过信息增益率选择分裂的属性:

原始数据表

当天天气温度湿度日期逛街
2550工作日
2148工作日
1870周末
2841周末
865工作日
1843工作日
2456周末
1876周末
3161周末
643周末
1555工作日
458工作日

以当天天气为例:
一共有三个属性值,晴、阴、雨,一共分裂成三个子节点。
在这里插入图片描述
根据上述公式,可以计算信息增益率如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值