model

相关模型介绍

分类模型

决策树

决策树(Decision Tree)算法是一种基本的分类与回归方法,是最经常使用的数据挖掘算法之一。我们这章节只讨论用于分类的决策树。

决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。

决策树学习通常包括 3 个步骤: 特征选择、决策树的生成和决策树的修剪。

决策树场景

一个叫做 "二十个问题" 的游戏,游戏的规则很简单: 参与游戏的一方在脑海中想某个事物,其他参与者向他提问,只允许提 20 个问题,问题的答案也只能用对或错回答。问问题的人通过推断分解,逐步缩小待猜测事物的范围,最后得到游戏的答案。

一个邮件分类系统,大致工作流程如下: 邮件分类

  • 首先检测发送邮件域名地址。如果地址为 myEmployer.com, 则将其放在分类 "无聊时需要阅读的邮件"中。

  • 如果邮件不是来自这个域名,则检测邮件内容里是否包含单词 "曲棍球" , 如果包含则将邮件归类到 "需要及时处理的朋友邮件"。

  • 如果不包含则将邮件归类到 "无需阅读的垃圾邮件" 。

假如你了解足球,让你预测世界杯 32 个球队哪支球队是冠军预测夺冠

  • 在 1-16 么?在

  • 在 9-16 么?在

  • 在 13-16 么? 在

  • 在 15 -16 么? 在

  • 是 15 么? 不是

答案:16 号球队夺冠。

tips 最多通过 5 次机会就猜测出哪只球队是冠军球队。这个 5 代表的是 5 bit(比特),相当于是 2^5=32,通过 5 bit 可以描述出这个信息量。 如果是 64 支球队,那么需要 6 bit 来描述这个信息量。

信息熵(香农熵)

香农通过世界杯预测冠军的问题提出了信息熵,故信息熵也叫香农熵,信息熵用来度量信息量;信息量的度量等于不确定性的多少。 通过上述问题描述,相信读者已经了解了信息量的比特数和所有可能情况的对数函数 log 有关。(log32 = 5, log64 = 6)。

当然,如果是你对足球比较了解,通过历届球队的实力比较了解,以及世界杯参赛球队球星也比较了解。你可能会对一些球队能力的强弱进行分组, 因为你了解的信息量会多一些,所以猜测的不确定性就会小一些,从而你可能不需要 5 次就可以猜中。故香农提出了如下公式来计算信息熵: H(x) = -(P1 logP1 + P2 logP2 + P3 logP3 + ... + P32 logP32), 其中P1、P2、P3...P32 分别代表 32 支球队夺冠的概率。

信息增益

信息增益 = 信息熵 - 条件熵。

条件熵:在你得知一个信息(条件)后,得出结论还需要多少信息量。

信息增益越大,说明你得到的这个信息就越重要。

决策树定义

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型: 内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性(features),叶结点表示一个类(labels)。

用决策树对需要测试的实例进行分类: 从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分配到叶结点的类中。

决策树工作原理

如何构造一个决策树?

使用 create_branch() 方法,伪代码如下所示:

决策树开发流程

  • 收集数据: 可以使用任何方法。

  • 准备数据: 树构造算法 (这里使用的是ID3算法,只适用于标称型数据,这就是为什么数值型数据必须离散化。 还有其他的树构造算法,比如CART)。

  • 分析数据: 可以使用任何方法,构造树完成之后,我们应该检查图形是否符合预期。

  • 训练算法: 构造树的数据结构。

  • 测试算法: 使用训练好的树计算错误率。

  • 使用算法: 此步骤可以适用于任何监督学习任务,而使用决策树可以更好地理解数据的内在含义。

决策树算法特点

  • 优点: 计算复杂度不高,输出结果易于理解,数据有缺失也能跑,可以处理不相关特征。

  • 缺点: 容易过拟合。

  • 适用数据类型: 数值型和标称型。

决策树案例分析

实例一 鱼类非鱼类问题

决策树如下: 预测夺冠

项目概述

根据以下 2 个特征,将动物分成两类: 鱼类和非鱼类。

特征:

  • 不浮出水面是否可以生存。

  • 是否有脚蹼(du 第三声)。

构造数据集

计算香农熵(经验熵)shannonEnt

将指定特征值等于 value 的行剩下列作为子数据集

选择信息增益最大的特征列

构建决策树

通过输入的特征,预测分类

选择出现次数最多的一个结果

GBDT

GBDT: Gradient Boost Decision Tree。DT-Decision Tree决策树,GB是Gradient Boosting,是一种学习策略,GBDT的含义就是用Gradient Boosting的策略训练出来的DT模型。可以处理二分类问题。

LightGBM

XGBoost

分类树与回归树

XGBoost是以CART回归树作为基本分类器。 分类树:分类树的样本输出都是以类别的形式,比如说判断用户会不会购买华为Mate40,判断西瓜是甜还是不甜。

回归树:回归树的样本输出是数值的形式,比如给某人发放房屋贷款的数额,给某人发放的红包金额。

Boost介绍

Boost可以用于回归和分类问题,它每一步会产生一个弱分类器 (如决策树),然后通过加权累加起来变成一个强分类器。比如每一步都会产生一个f(x),F(x)=sum(fi(x)),其实就是一堆分类器通过加权合并成一个强分类器。

提升树

首先要明确一点,xgboost 是基于提升树的。

什么是提升树,简单说,就是一个模型表现不好,我继续按照原来模型表现不好的那部分训练第二个模型,依次类推。

来几个形象的比喻就是:

做题的时候,第一个人做一遍得到一个分数,第二个人去做第一个人做错的题目,第三个人去做第二个人做错的题目,以此类推,不停的去拟合从而可以使整张试卷分数可以得到100分(极端情况)。

把这个比喻替换到模型来说,就是真实值为100,第一个模型预测为90,差10分,第二个模型以10为目标值去训练并预测,预测值为7,差三分,第三个模型以3为目标值去训练并预测,以此类推。

Random Forests

Last updated

Was this helpful?