Machine Learning--决策树(一)
决策树(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--决策树(一)的更多相关文章
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...
- 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试
机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...
- 《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
<Machine Learning in Action>-- Taoye给你讲讲决策树到底是支什么"鬼" 前面我们已经详细讲解了线性SVM以及SMO的初步优化过程,具体 ...
- 《Machine Learning in Action》—— 小朋友,快来玩啊,决策树呦
<Machine Learning in Action>-- 小朋友,快来玩啊,决策树呦 在上篇文章中,<Machine Learning in Action>-- Taoye ...
- 【Machine Learning】KNN算法虹膜图片识别
K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 【Machine Learning】Python开发工具:Anaconda+Sublime
Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- [Machine Learning] 国外程序员整理的机器学习资源大全
本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C ...
- Pattern Recognition And Machine Learning读书会前言
读书会成立属于偶然,一次群里无聊到极点,有人说Pattern Recognition And Machine Learning这本书不错,加之有好友之前推荐过,便发了封群邮件组织这个读书会,采用轮流讲 ...
随机推荐
- Oracle中查询和定位数据库问题的SQL语句
--1)查询和定位数据库问题的SQL语句--Oracle常用性能监控SQL语句.sql --1查询锁表信息 select vp.SPID, vs.P1, vs.P1RAW, vs.P2, vs.EVE ...
- SQLServer查询耗时sql语句
qs.total_worker_time/qs.execution_count as [Avg CPU Time], , ( ) as query_text, qt.dbid, dbname=db_n ...
- codevs 1553 互斥的数
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有这样的一个集合,集合中的元素个数由给定的N决定,集合的元素为N个不同的正整数, ...
- SAP产品的Field Extensibility
SAP开发人员的工作职责,除了实现软件的功能性需求外,还会花费相当的精力实现一些非功能性需求,来满足所谓的SAP Product Standard(产品标准).这些产品标准,包含在SAP项目实施中大显 ...
- C++实现动态数组
实现一个动态数组,要求对于随机访问可以在常数时间完成,可以通过push_back向数据的尾部追加元素,可以通过pop_back删除尾部元素,能够满足常见的数组操作. LINE 2016年春招笔试 ...
- 转: opencv4.0.0 +opencv_contrib在vs2015中编译
https://blog.csdn.net/baidu_40691432/article/details/84957737
- 【线段树 细节题】bzoj1067: [SCOI2007]降雨量
主要还是细节分析:线段树作为工具 Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小 ...
- 配置charles对手机进行抓包
1.如下打开charles配置信息:Help –> SSL Proxying –>Install Charles Root Certificate on a Mobile Device 2 ...
- perl学习之FLOCK函数的调用(讲的非常好)
一段演示flock系统调用的perl程序http://www.extmail.org/forum/viewthread.php?tid=1066
- perl学习之裸字
use strict包含3个部分.其中之一(use strict "subs")负责禁止乱用的裸字. 这是什么意思呢? 如果没有这个限制,下面的代码也可以打印出"hell ...