决策树简单描述

决策树的样子大概是这个样子的:

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


划分的好坏,如图所示:

用纯度Purity来衡量划分的效果,如果划分的好,那么每一个子集都是某一类占据大多数,如果每一个子集都是跟父节点一样的状态,那么就是Low purity。

一个好的划分要满足下面两个特点:

  1. 划分是High purity
  2. 划分产生的两个子节点的样本数量相近,避免产生非常小的子集。

决策树的终止条件

  1. 树的深度到达一定条件;
  2. 每一个节点中的样本数量到达一个下线
  3. 不会再有划分,可以增加节点的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的更多相关文章

  1. 海量数据挖掘MMDS week6: 决策树Decision Trees

    http://blog.csdn.net/pipisorry/article/details/49445465 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  2. Decision Trees 决策树

    Decision Trees (DT)是用于分类和回归的非参数监督学习方法. 目标是创建一个模型,通过学习从数据特征推断出的简单决策规则来预测目标变量的值. 例如,在下面的例子中,决策树从数据中学习用 ...

  3. 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 ...

  4. CatBoost使用GPU实现决策树的快速梯度提升CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...

  5. 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 ...

  6. 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 ...

  7. Machine Learning Methods: Decision trees and forests

    Machine Learning Methods: Decision trees and forests This post contains our crib notes on the basics ...

  8. 壁虎书6 Decision Trees

    Decision Trees are versatile Machine Learning algorithms that can perform both classification and re ...

  9. 机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm

    一.Table for Content 在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题 ...

随机推荐

  1. 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)

    1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...

  2. flutter在2019年会有怎样的表现?

    2019独角兽企业重金招聘Python工程师标准>>> Flutter的趋势 在移动端,受成本和效率的驱使,跨平台一站式开发慢慢成为一个趋势.从Hybird,RN,WEEX,Flut ...

  3. Everything 本地磁盘文件搜索工具下载!

    如何运用布尔算子? AND(且)是缺省使用的布尔算子. 例如:如果要搜索 foo 和 bar 同时出现的文件:foo bar 如果从两者之中任一个都可以,则用 | 介于两者之间. 例如:如果要搜索.j ...

  4. P3831 [SHOI2012]回家的路

    P3831 [SHOI2012]回家的路 分层图基础题,就是建图稍有麻烦   #include<cstdio> #include<algorithm> #include< ...

  5. 【Elasticsearch学习】之基础概念

    Elasticsearch是一个近实时的分布式搜索引起,其底层基于开源全文搜索库Lucene:Elasticsearch对Lucene进行分装,对外提供REST API 的操作接口.基于 ES,可以快 ...

  6. 如何找到Hive提交的SQL相对应的Yarn程序的applicationId

    最近的工作是利用Hive做数据仓库的ETL转换,大致方式是将ETL转换逻辑写在一个hsql文件中,脚本当中都是简单的SQL语句,不包含判断.循环等存储过程中才有的写法,仅仅支持一些简单的变量替换,比如 ...

  7. golang之reflect

    reflect,反射. 利用reflect,可以得到一个struct的相关信息. package main import ( "fmt" "reflect" ) ...

  8. Redux在项目中的文件结构

    React + Redux   今天我们来唠唠在React一般项目中,使用Redux进行状态管理的时候,相对的如何存放reducer.action.api之类文件的结构与使用时机吧.本章默认看官们已经 ...

  9. Java——Spring依赖配置详解

    <properties> <junit.version>4.12</junit.version> <spring.version>4.3.9.RELEA ...

  10. etcd环境安装与使用

    etcd简介 etcd是开源的.高可用的分布式key-value存储系统,可用于配置共享和服务的注册和发现,它专注于: 简单:定义清晰.面向用户的API(gRPC) 安全:可选的客户端TLS证书自动认 ...