决策树purity/基尼系数/信息增益 Decision Trees
决策树简单描述
决策树的样子大概是这个样子的:

选择一个特征作为根节点,把这个特征划分成两个孩子节点,每个孩子节点就是原始数据集的子集,然后再找一个特征作为划分……
划分的好坏,如图所示:

用纯度Purity来衡量划分的效果,如果划分的好,那么每一个子集都是某一类占据大多数,如果每一个子集都是跟父节点一样的状态,那么就是Low purity。
一个好的划分要满足下面两个特点:
- 划分是High purity
- 划分产生的两个子节点的样本数量相近,避免产生非常小的子集。
决策树的终止条件:
- 树的深度到达一定条件;
- 每一个节点中的样本数量到达一个下线
- 不会再有划分,可以增加节点的purity了
衡量purity的三种方法
有不同的衡量purity的方法,不同的衡量方法会导致不同的分裂。
Gini Coefficient

- Pr(k)是一个样本属于类别K的概率;
- C就是类别的总数
GINI系数的计算方法:

Entropy熵

可以看出来,GINI系数是类别的概率乘上类别的概率,而熵是类别的概率呈上类别概率的logarithm
- GINI的取值范围是0.5~1,越大越purity;
- Entropy的取值范围是0~1,越小越purity
 介绍完了熵,那么什么是信息增益:
 是要最大化的信息增益:
  
 因为Entropy取值范围是0就purity,所以information gain越大,那么说明分割的purity越好。
看一下Entropy的计算方法:

决策树purity/基尼系数/信息增益 Decision Trees的更多相关文章
- 海量数据挖掘MMDS week6: 决策树Decision Trees
		http://blog.csdn.net/pipisorry/article/details/49445465 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ... 
- Decision Trees 决策树
		Decision Trees (DT)是用于分类和回归的非参数监督学习方法. 目标是创建一个模型,通过学习从数据特征推断出的简单决策规则来预测目标变量的值. 例如,在下面的例子中,决策树从数据中学习用 ... 
- Facebook Gradient boosting   梯度提升 separate the positive and negative labeled points using a single line  梯度提升决策树 Gradient Boosted Decision Trees (GBDT)
		https://www.quora.com/Why-do-people-use-gradient-boosted-decision-trees-to-do-feature-transform Why ... 
- CatBoost使用GPU实现决策树的快速梯度提升CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs
		python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ... 
- Logistic Regression vs Decision Trees vs SVM: Part II
		This is the 2nd part of the series. Read the first part here: Logistic Regression Vs Decision Trees ... 
- Logistic Regression Vs Decision Trees Vs SVM: Part I
		Classification is one of the major problems that we solve while working on standard business problem ... 
- Machine Learning Methods: Decision trees and forests
		Machine Learning Methods: Decision trees and forests This post contains our crib notes on the basics ... 
- 壁虎书6 Decision Trees
		Decision Trees are versatile Machine Learning algorithms that can perform both classification and re ... 
- 机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm
		一.Table for Content 在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题 ... 
随机推荐
- 使用@vue/cli搭建vue项目开发环境
			当前系统版本 mac OS 10.14.2 1.安装node.js开发环境 前端开发框架和环境都是需要 Node.js vue的运行是要依赖于node的npm的管理工具来实现 <mac OS ... 
- 简单的环绕散射 Simple Wrap Diffuse From GPU GEMS1
			简单的环绕漫反射光照,实现起来特别简单,在Shader中加入以下几行: float diffuse = max(0,dot(L,N)); float wrap_diffuse = max(0, ( ... 
- 限流 - Guava RateLimiter
			2019独角兽企业重金招聘Python工程师标准>>> 限流 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦并发访问/请求达到限制速率或者 ... 
- unittest 中的方法调用时报错 ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTest
			1.调用unittest中的方法时报错: ValueError: no such test method in <class 'mytestcase.MyTestCase'>: runTe ... 
- 谷歌浏览器的F12用处及问题筛查笔记
			在前端测试功能的时候,经常有些莫名其妙的错误,这个时候开发会说打开F12看一下吧,所以感觉这个开发者功能很有用,研究一下,做如下记录: Elements:左栏以DOM树形式查看网页源代码(HTML), ... 
- kafka-eagle监控kafka
			最近想做一个kafka监控,本来准备用zabbix来监控的,需要重复造轮子,本来准备用kafka-Manager的,在GitHub上无意发现了kafka-eagle,看了官方介绍准备试一下..... ... 
- golang之array
			golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]i ... 
- string操作大全
			1. string to int && int to string 2. 整数1转换成字符串"001" int sprintf ( char * str, cons ... 
- spring对websocket的集成和使用
			WebSocket是HTML5提出的一个用于通信的协议规范,该协议通过一个握手机制,在客户端和服务端之间建立一个类似于TCP的连接,从而方便客户端和服务端之间的通信. WebSocket协议本质上是一 ... 
- 利用vue-cli + vant搭建一个移动端开发模板
			本文系原创,转载请附带作者信息.项目地址: https://github.com/momozjm/vant-project.git 前言 在项目开发过程中,一个新的项目需要我们从零开始搭建框架,这个时 ... 
