zoukankan      html  css  js  c++  java
  • 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)就是使用基尼指数来选取划分属性的。

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

  • 相关阅读:
    053587
    053586
    053585
    053584
    053583
    053582
    053581
    053580
    053579
    053578
  • 原文地址:https://www.cnblogs.com/zangyu/p/5342309.html
Copyright © 2011-2022 走看看