决策树(decision tree):是机器学习常见的算法之一。是基于树形结构进行决策的。

讲决策树就要提到“信息熵”、“信息增益”、“增益率”和“基尼指数”的概念。

我们先来介绍一下这几个概念:(讲解针对离散型数据,连续型暂时不讲)

信息熵(information entropy):是度量样本集合纯度的一种指标。本文使用Ent表示。

  

其中,D表示样本集合(比如现有100个苹果的数据,D就表示这100个苹果),y表示标签可选择的个数(比如判断苹果的好坏,有“好”和“坏”两种结果,所以y=2),Pk表示第k类样本所占的比例(例如好苹果有80个,则p1=0.8,p2=0.2)。通过上式可以计算出信息熵的值。

信息熵的值越小,说明集合D的纯度越高,即属于同一类别的苹果就越多。当全部属于同一类别时,信息熵的值为0.

信息增益(information gain):

    

a表示样本众多属性中的一个(比如苹果的颜色,产地,体型等都是属性),v表示a这个属性可以取值的个数(比如,苹果体型这个属性可以去大、中、小三个值,v=3),Dv表示属性a取值为v的时候的样本空间(比如,全部体型大的苹果,或者全部体型小的苹果),D让然表示全部的样本空间(所有的苹果)。通过上式可以计算出信息增益。

信息增益的值越大,则意味着用属性a来划分,所获得的“纯度提升”越大。换句话说,就是把好坏苹果分的越清楚。

计算出所有的属性所对应的信息增益值,选择最大的那个属性,按该属性将苹果进行划分,判断苹果是好还是坏。之后再对划分后的子集合在利用相同的方法选择属性进行划分(已使用过的属性将不再使用),知道划分后的苹果属于同一类别(都是好的,或者都是坏的)。著名的ID3算法就是以信息增益为准则来选择划分属性的。

信息增益对可取值数目较多的属性有所偏好,当一个属性的可取值很多时,他的信息增益也就回变的很大。(不妨私下试一试)

假如某个属性是标号,那么有多少个样本,该属性就有多少个取值,该属性的信息增益肯定是最大的,但是我们在划分的时候是不会按样本编号来划分的。所以我们要消除这样属性给我们带来的错误。这就有了增益率。

增益率(gain ratio):

  

IV(a)称属性a的“固有值”,当属性a可取的值的个数越多时,IV(a)的值越大。增益率=信息增益/固有值。

因为,增益率对取值较少的的属性有所偏好。所以在选区划分属性的时候并不是单纯的选择增益了最高的那个,而是在信息增益高于平均水平的属性中,选择增益率最高的那个。

著名的C4.5算法就是以增益率为准则来选择划分属性的。

基尼指数:

数据集D的纯度可以用基尼值来度量。基尼值(Gini)反应了从数据集D中随机抽取两个样本,其类别标签不一样的概率。 基尼值越小,数据集D的纯度越高。

所以,我们会选择基尼指数最小的那个属性进行划分。

CART决策树(classification and regression tree)就是使用基尼指数来选取划分属性的。

参考书籍是 南京大学 周志华老师的 《机器学习》

Machine Learning--决策树(一)的更多相关文章

  1. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试

    机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...

  3. 《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”

    <Machine Learning in Action>-- Taoye给你讲讲决策树到底是支什么"鬼" 前面我们已经详细讲解了线性SVM以及SMO的初步优化过程,具体 ...

  4. 《Machine Learning in Action》—— 小朋友,快来玩啊,决策树呦

    <Machine Learning in Action>-- 小朋友,快来玩啊,决策树呦 在上篇文章中,<Machine Learning in Action>-- Taoye ...

  5. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  6. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  7. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  8. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  9. [Machine Learning] 国外程序员整理的机器学习资源大全

    本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C ...

  10. Pattern Recognition And Machine Learning读书会前言

    读书会成立属于偶然,一次群里无聊到极点,有人说Pattern Recognition And Machine Learning这本书不错,加之有好友之前推荐过,便发了封群邮件组织这个读书会,采用轮流讲 ...

随机推荐

  1. 解决 FusionCharts3.2.1 首页无法载入的问题

    在实际项目中测试FusionCharts3.2.1时,发现首次载入无法正常载入,第二次载入就恢复正常!   原因:FusionCharts ID与变量名重复   以下是正常写法: var member ...

  2. 关于sqlserver帐号被禁用问题

    若发现sqlsrver所有帐号不小心被禁用了,这个时候怎么办?用重装吗?不用,仔细看小白是怎么一步一步解开这个谜题的.首先需要Windows帐号设置里重新添加一个新帐号.并将其添加到管理员组里面,然后 ...

  3. 博客高亮代码及使用OpenLiveWriter修改之前博客

    简述:  最近查阅前辈资料的时候,看到写的博客很有条理,回头看下自己的乱做麻花,然后来时研究: 他们的代码看起来很漂亮然后我就查资料,在网页版上一直没法出来像他们的格式,后查资料看来的使用客户端工具才 ...

  4. 如何启动Intel VT-x

    如何启动Intel VT-x 5 在64bit win7系统下安装了Vmware10,然后安装64位的UbuntuKylin 14.04,想要打开UbuntuKylin,弹出如下对话框: 请问该如何启 ...

  5. 关于用终端运行php来测试推送的问题

    照网上的方法,合并好了证书的pem,密码也是对的,然后也写好了推送用的php文件,在终端里php这个文件,报错报错内容是:Warning: stream_socket_client(): SSL op ...

  6. CPP-网络/通信:WebService

    工具:vc2003 //引入相关头文件,连接动态库,定义全局变量. //***************************************************** #include & ...

  7. ueditor中FileUtils.getTempDirectory()找不到

    2014-6-27 14:22:25 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() fo ...

  8. Swift 编程思想 Part 4:map all the things!

    Swift 编程思想 Part 4:map all the things! 2015-10-22  837 文章目录 1. 数组 vs. 可选类型 2. 作用在可选类型上的 map() 3. 回到我们 ...

  9. LeetCode 最长连续递增序列

    给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...

  10. 概述「并查集补集转化」模型&&luoguP1330 封锁阳光大学

    奇妙的模型转化以及并查集思想 模型概述 有图$G=(V,E)$,初始所有点为白色,现在要将其中一些点染为黑色,要求染色后满足:$∀(u,v)∈E$,$∃col_u!=col_v$.求最小染色点数. 题 ...