写在前面

在网上看XGBoost资料的时候觉得自己以前看的树模型算法都忘得差不多了,所以就趁着这个机会把机器学习里的树模型算法重新再过一遍,主要包括决策树、随机森林、提升树、XGBoost等等。

1.决策树模型

决策树(decision tree)是一种常见的机器学习方法,可用于分类和回归问题。决策树模型成树形街否,由结点和有向边组成,其中结点包括内部节点(表示一个特征或属性)和叶节点(表示一个分好的类)。

决策树分类过程:从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子节点;每个子节点对应着该特征的一个取值。如此递归对实例进行测试并分配,直至达到叶节点,叶节点即表示一个类。

决策树学习的目标是根据给定的训练数据集构建一个模型,使得与训练数据矛盾较小且存在较好的泛化能力。在决策树学习中,利用损失函数(通常是正则化的极大似然函数)来表述这一目标,最终的策略就是以损失函数为目标函数的最小化。

决策树的学习主要包括三个步骤:特征选择、决策树生成和决策树修剪。

2.特征选择

为了构建一颗合适的决策树,选择分类的最优特征成为了关键因素,即如何选择最优划分属性。通常特征选择的准则是信息增益或信息增益比。

为了便于说明,先了解熵和条件熵的定义。

熵(entropy)是表示随机变量不确定性的度量,熵越大,随机变量的不确定性就越大。

这里设X是一个有限个值的离散随机变量,其概率分布为:

则随机变量X的熵定义为:

条件熵:设随机变量(X,Y),其联合概率分布为:

条件熵表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X),定义为X给定条件下Y的条件概率分布对X的数学期望:

2.1 信息增益

信息增益(information gain)表示得知特征X的信息而使得Y类的信息的不确定性减少的程度

定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差:

对于数据集D而言,信息增益依赖于特征,信息增益大的特征表示使用该特征导致结果不确定性减小的大,故该特征具有更强的分类能力。

根据信息增益准则选择特征的决策树算法主要有ID3:对训练数据集D计算其每个特征的信息增益,并比较他们的大小,选择信息增益大的特征进行分支,如此递归地进行下去。

下面给出具体的信息增益算法

其中:

2.2 信息增益率

以信息增益为划分训练数据的特征,存在偏向于选择取值较多的特征的问题。而使用信息增益率可以有效进行校正。

定义:特征A对训练数据集D的信息增益比gr(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值得熵HA(D)之比:

根据信息增益准则选择特征的决策树算法主要有C4.5,:对训练数据集D计算其每个特征的信息增益,并比较他们的大小,选择信息增益大的特征进行分支,如此递归地进行下去。

关于信息增益率具体算法与前述信息增益相似,就不再赘述。

需要注意的是,增益率准则对可取值数目较少的特征有所偏好,C4.5算法并不是直接选择增益率最大的特征划分属性,而是使用了一个启发式算法:先从候选划分特征中找出信息增益高于平均水平的特征,再从中选择信息增益率最高的用于划分。

2.3 基尼指数

与上相似,基尼指数(Gini index)也可用于划分属性。

在分类问题中,假设有K个类,样本点属于第k类的概率为Pk,则概率分布的基尼指数定义为:

`$$`

若对于给定的样本集合D,其基尼指数为:

在特征A的条件下,集合D的基尼指数定义为:

基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经特征A分割后集合D的不确定性。因此,基尼指数越大,样本的不确定性也就越大,这一点与熵类似。于是,我们在候选特征集合中,选择那个使得划分后基尼指数最小的特征作为最优划分特征。

基尼指数这一特征选择的算法主要用于CART模型,后续会在CART生成算法中细述。

为了加深印象,在这里贴一个例子(李航统计学习方法P62)

小结

今天主要记录了一些决策树的基本概念以及三大特征选择算法。

在这三大算法之外,人们还设计了许多其他的准则用于决策树的划分选择,但是好像...泛化性能影响不大....

本质上,各种特征选择的方法均可以用于决策树的划分属性选择。具体特征选择详解可参考周志华的《机器学习》第11章节。

以上~

To be continued~

2018.04.17

机器学习中树模型算法总结之 决策树(上)相关推荐

  1. 机器学习中树模型算法总结之 决策树(下)

    写在前面 首先回顾一下上一篇的相关内容,主要是理论的介绍了决策树的模型及几种常见的特征选择准则,具体可参见机器学习中树模型算法总结之 决策树(上).今天主要接着学习,包括决策树的生成(依赖于第一篇的三 ...

  2. 机器学习中的模型评价、模型选择及算法选择

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 正确使用模型评估.模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要.本文将对这三个任务的相关技术 ...

  3. 炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看)...

    炼数成金数据分析课程---16.机器学习中的分类算法(交叉内容,后面要重点看) 一.总结 一句话总结: 大纲+实例快速学习法 主要讲解常用分类算法(如Knn.决策树.贝叶斯分类器等)的原理及pytho ...

  4. 机器学习中的分类算法

    机器学习中的分类算法 机器学习,模式识别中很重要的一环,就是分类,因为计算机其实无法深层次地理解文字图片目标的意思,只能回答是或者不是.当然现在卷积神经网络正在希望计算机能够看懂东西,这次我们先来看一 ...

  5. 机器学习中的模型是什么?

    在机器学习中,模型是指一种数学函数,它能够将输入数据映射到预测输出.模型是机器学习算法的核心部分,通过学习训练数据来自适应地调整模型参数,以最小化预测输出与真实标签之间的误差. 机器学习中的模型是什么 ...

  6. 机器学习中【回归算法】详解

    关注微信公众号[Microstrong],我写过四年Android代码,了解前端.熟悉后台,现在研究方向是机器学习.深度学习!一起来学习,一起来进步,一起来交流吧! 本文同步更新在我的微信公众号里,地 ...

  7. 机器学习中的聚类算法有哪几种?

    目前,聚类算法被广泛应用于用户画像.广告推荐.新闻推送和图像分割等等.聚类算法是机器学习中一种"数据探索"的分析方法,它帮助我们在大量的数据中探索和发现数据的结构.那么机器学习中的 ...

  8. 一文读懂机器学习中的模型偏差

    一文读懂机器学习中的模型偏差 http://blog.sina.com.cn/s/blog_cfa68e330102yz2c.html 在人工智能(AI)和机器学习(ML)领域,将预测模型参与决策过程 ...

  9. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

最新文章

  1. HTML4如何让一个DIV居中对齐?float输入日志标题
  2. discuzx2.5添加自定义积分日志
  3. 《VMware vSphere设计(原书第2版)》——1.1 什么是设计
  4. 我为什么对TypeScript由黑转粉?
  5. Office 365身份认证管理-添加并验证联合认证域
  6. 怎么删除python工程_python根据字典的键来删除元素的方法
  7. free命令里的buffers/cache
  8. 三言五载道不尽【追梦五年】
  9. 在windows下配置PostgreSQL
  10. curl查看swift状态命令_微服务之——docker高级命令
  11. 计算机组装课上机课干什么,多媒体技术与《计算机组装与维护》课的精彩结合:组装一台多媒体计算机需要哪些部件...
  12. vue 头像修改-裁剪图片 vue-cropper
  13. 一文读懂复权—不复权、前复权、后复权
  14. ECS 7天实践训练营-day1
  15. Unity Cull 背面剔除
  16. 有了花呗还需要办信用卡吗?
  17. 趋势科技如何卸载?卸载时总提示要输入密码
  18. 基于最新WEB技术的Web SCADA平台构建数字化车间
  19. scsi和iscsi区别
  20. 【FGPA】RTL级的意思

热门文章

  1. 风控模型及特征的上线部署方法
  2. B端评分卡在中小企业贷款中使用的三个阶段
  3. C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
  4. 模板主要变量注解 - $postlist 帖子内容页
  5. Hibernate SQL方言
  6. codevs 1191 树轴染色 线段树区间定值,求和
  7. applicationstatewinec7 电源管理
  8. 一个完整的使用的例子,和可下代码
  9. 互联网反欺诈体系中的常用技术和数据类型
  10. Oracle之Union与Union all的区别