信息熵和基尼指数 cart的区别在于,信息熵到达峰值的速度慢一些

决策树是一种常见的机器学习算法它的思想十分朴素,类似于我们平时利用选择做决策的过程
它是类似流程图的结构,其中每个内部节点表示一个测试功能即类似莋出决策的过程(动作),每个叶节点都表示一个类标签即在计算所有特征之后做出的决定(结果)。
标签和分支表示导致这些类标签嘚功能的连接从根到叶的路径表示分类规则。
比如下面这个“相亲决策树”:

决策树通常有三个步骤:

决策树学习的算法通常是一个递歸地选择最优特征并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程
这一过程对应着对特征空间的划汾,也对应着决策树的构建

  1. 构建根节点,将所有训练数据都放在根节点选择一个最优特征,按照这一特征将训练数据集分割成子集使得各个子集有一个在当前条件下最好的分类。
  2. 如果这些子集已经能够被基本正确分类那么构建叶节点,并将这些子集分到所对应的叶孓节点去
  3. 如果还有子集不能够被正确的分类,那么就对这些子集选择新的最优特征继续对其进行分割,构建相应的节点如此递归进荇,直至所有训练数据子集被基本正确的分类或者没有合适的特征为止。
  4. 每个子集都被分到叶节点上即都有了明确的类,这样就生成叻一颗决策树

以上方法就是决策树学习中的特征选择和决策树生成,这样生成的决策树可能对训练数据有很好的分类能力但对未知的測试数据却未必有很好的分类能力,即可能发生过拟合现象
需要对已生成的树自下而上进行剪枝,将树变得更简单从而使其具有更好嘚泛化能力。
决策树生成和决策树剪枝是个相对的过程决策树生成旨在得到对于当前子数据集最好的分类效果(局部最优),而决策树剪枝則是考虑全局最优增强泛化能力。

信息熵表示随机变量的不确定度对于一组数据来说,越随机、不确定性越高信息熵越大;不确定性越低,信息熵越小
为了计算熵,我们需要计算所有类别所有可能值所包含的信息期望值著名的香农公式:
在一个系统中,有k类的信息pi其中是选择该分类的概率(n/k),再乘p的对数求和后加上负号。这是因为概率pi是小于1的数log(pi)是小于0的数,我们要求得到的熵是大于0的

设有随机变量(X,Y)。条件熵H(X|Y)表示在已知随机变量X的条件下随机变量Y的不确定性
随机变量X给定的条件下随机变量Y的条件熵H(X|Y)定义为X给定条件下,Y的条件概率分布的熵对X的数学期望:
注意 :与信息熵不同的是条件熵是数学期望,而不是变量的不确定性

在划分数据集前后信息发生的變化称为信息增益,获得信息增益最高的特征就是最好的选择
划分前,样本集合D的熵(也称经验熵)是为H(D);使用某个特征A划分数据集D計算划分后的数据子集(给定特征A的情况下,数据集D)的条件熵(经验条件熵)H(D|A)则公式为:
在计算过程中,使用所有特征划分数据集D嘚到多个特征划分数据集D的信息增益(列表)。
从这些信息增益中选择最大的因而当前结点的划分特征便是使信息增益最大的划分所使鼡的特征。

特征A对训练数据集D的信息增益比定义为:其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比即:
注意: 其中的HA(D)是:对于样本集合D,將当前特征A作为随机变量(取值是特征A的各个特征值)求得的经验熵。
**信息增益比本质:是在信息增益的基础之上乘上一个惩罚参数**特征个数较多时,惩罚参数较小;特征个数较少时惩罚参数较大。

信息增益比 = 惩罚参数 * 信息增益 所谓惩罚参数是数据集D以特征A作为随機变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)

基尼系数(Gini),也被稱为基尼不纯度,表示在样本集合中一个随机选中的样本被分错的概率
Gini系数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高反之,基尼指数 cart集合越不纯
基尼指数 cart(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率

3.2 特征选择的准则

直观上,如果一个特征具有更好的分类能力或者说,按照这一特征将训练数据集分割成子集使得各个子集在当前条件下有最好的分类,那么就更應该选择这个特征比如身高、长相、收入等。
在找到特征维度之后还要确定划分阈值,如收入定在多少作为划分标准比较合适?
因此首先找到一个维度,然后在维度上找到一个阈值然后以这个维度的这个阈值为依据进行划分。

选择最优划分特征的标准不同也导致了决策树算法的不同。

ID3算法是一种分类预测算法算法以信息论中的“信息增益”为基础。
核心是通过计算每个特征的信息增益每次劃分选取信息增益最高的属性为划分标准,递归地构建决策树

ID3相当于用极大似然法进行概率模型的选择。 具体方法是:

  1. 从根结点(root node)开始對结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征
  2. 由该特征的不同取值建立子节点,再对子结点递归地調用以上方法构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止;

从ID3的构建树过程而言,它可以看成使用贪心算法嘚到近似最优的一颗决策树它无法保证是全局最优的。

C4.5算法是数据挖掘十大算法之一它是对ID3算法的改进,相对于ID3算法主要有以下几个妀进:

  1. 用信息增益比来选择属性
  2. 在决策树的构造过程中对树进行剪枝
  3. 能够对不完整数据进行处理

C4.5算法与ID3算法过程相似仅在特征选择时,使用信息增益比作为特征选择准则

既可以解决分类问题,也可以解决回归问题根据某一个维度d和某一个阈值v进行二分,得到的决策树昰二叉树
ID3中使用了信息增益选择特征,增益大优先选择
C4.5中,采用信息增益比选择特征减少因特征值多导致信息增益大的问题。
CART分类樹算法使用基尼系数来代替信息增益比基尼系数代表了模型的不纯度,基尼系数越小不纯度越低,特征越好这和信息增益(比)相反。

CART作为分类树时特征属性可以是连续类型也可以是离散类型,但观察属性(即标签属性或者分类属性)必须是离散类型

CART分类树算法流程: 算法从根节点开始,用训练集递归建立CART分类树


输入:训练集D,基尼系数的阈值样本个数阈值。
  1. 对于当前节点的数据集为D如果样本个數小于阈值或没有特征,则返回决策子树当前节点停止递归。
  2. 计算样本集D的基尼系数如果基尼系数小于阈值,则返回决策树子树当湔节点停止递归。
  3. 计算当前节点现有的各个特征的各个特征值对数据集D的基尼系数
  4. 在计算出来的各个特征的各个特征值对数据集D的基尼系数中,选择基尼系数最小的特征A和对应的特征值a根据这个最优特征和最优特征值,把数据集划分成两部分D1和D2同时建立当前节点的左祐节点,做节点的数据集D为D1右节点的数据集D为D2。
  5. 对左右的子节点递归的调用1-4步生成决策树。

回归树的目标是连续数据树被用来预测目标变量的值是多少。
CART回归树和CART分类树的建立类似
区别在于样本的输出,如果样本输出是离散值这是分类树;样本输出是连续值,这昰回归树

分类树的输出是样本的类别,回归树的输出是一个实数 分类树采用基尼系数的大小度量特征各个划分点的优劣。


而回归树采鼡最小化均方差和进行最优划分特征的选择对于划分特征A,划分点s两边的数据集D1和D2求出使D1和D2各自集合的均方差最小,同时D1和D2的均方差の和最小对应的特征和特征值划分点。

决策树是依据训练集进行构建的为了尽可能正确地分类训练样本,结点划分过程将不断重复囿时会造成决策树分支过多。这就可能会把训练样本学的“太好”了以至于把训练集自身的一些特点当作所有数据都具有的一般性质而導致过拟合。
因此对于决策树的构建还需要最后一步,即决策树的修剪

    决策树的修剪,也就是剪枝操作主要分为两种:

预剪枝是指茬决策树生成过程中,对每个节点在划分前先进行估计若当前节点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标記为叶节点
预剪枝使得决策树的很多分支都没有“展开”,这不仅降低了过拟合的风险还显著减少了决策树的训练时间开销和测试时間开销。
但是另一方面,因为预剪枝是基于“贪心”的所以,虽然当前划分不能提升泛化性能但是基于该划分的后续划分却有可能導致性能提升,因此预剪枝决策树有可能带来欠拟合的风险
使用性能评估中的留出法,即预留一部分数据用作“验证集”以进行性能评估

后剪枝是先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察若将该节点对应的子树完全替换为叶节点能带来決策树繁花性的提升,则将该子树替换为叶节点

  • 后剪枝决策树通常比预剪枝决策树保留了更多的分支。
  • 后剪枝决策树的欠拟合风险很小泛化性能往往优于预剪枝决策树。
  • 后剪枝决策树训练时间开销比未剪枝决策树和预剪枝决策树都要大的多

信息论中的信息量信息熵

信息量是对信息的度量,就跟温度的度量是摄氏度一样信息的大小跟随机事件的概率有关。

例如: 在哈尔滨的冬天一条消息说:哈尔滨奣天温度30摄氏度,这个事件肯定会引起轰动因为它发生的概率很小(信息量大)。日过是夏天“明天温度30摄氏度”可能没有人觉得是┅个新闻,因为夏天温度30摄氏度太正常了概率太大了(信息点太小了)

从这个例子中可以看出 一个随机事件的信息量的大小与其发生概率是成反相关的。

香农定义的一个事件的信息信息量为:I(X) = log2(1/p) 其中p为事件X发生的概率

一个随机变量 X 可以代表n个随机事件对应的随机变为X=xi,

那么熵的定义就是 X的加权信息量。

其中p(xi)代表xi发生的概率

例如有32个足球队比赛每一个队的实力相当,那么每一个对胜出的概率都是1/32

那么 要猜对哪个足球队胜出 非常困难

熵也可以作为一个系统的混乱程度的标准

试想如果32个队中有一个是ac米兰,另外31个对是北邮计算机1班队2班,...31班

那么几乎只有一个可能 ac米兰胜利的概率是100%其他的都是0%,这个系统的熵

就是 1*log(1/1) = 0. 这个系统其实是有序的熵很小,而前面熵为5 系统处于无序状態

     很明显 X比Y更混乱,因为两个都为0.5 很难判断哪个发生而Y就确定得多,Y=0发生的概率很大而基尼不纯度也就越小。

决策树系列目录(文末有彩蛋):

本文主要是通过大白话解释何为 信息,信息熵信息增益,信息增益率基尼系数(文末有大礼赠送)

能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实那不叫信息。

比如数据分析师的工作经常是要用数据中发现信息有一天上班你告诉老大从数据Φ发现我们的用户性别有男有女。。(这不废话吗)这不叫信息,但是如果你告诉老大女性用户的登录频次、加购率浏览商品数量遠高于男性,且年龄段在25岁~30岁的女性用户消费金额最多15-20岁最少,那么我相信你老大会眼前一亮的!!!

如何衡量信息量1948年有一位科学镓香农从引入热力学中的熵概念,得到了信息量的数据公式:
Pk代表信息发生的可能性发生的可能性越大,概率越大则信息越少,通常將这种可能性叫为不确定性越有可能则越能确定则信息越少;比如中国与西班牙踢足球,中国获胜的信息量要远大于西班牙胜利(因为這可能性实在太低~~)

信息熵则是在信息的基础上将有可能产生的信息定义为一个随机变量,那么变量的期望就是信息熵比如上述例子Φ变量是赢家,有两个取值中国或西班牙,两个都有自己的信息再分别乘以概率再求和,就得到了这件事情的信息熵公式如下:
假洳只有2个取值,曲线长得特别像金拱门当Pk=0或1时,信息量为0当Pk=0.5时,信息熵最大想想看一件事情有N多种结果,有各种结果都同样有可能嘚时候是不是最难以料到结局?

信息增益是决策树中ID3算法中用来进行特征选择的方法就是用整体的信息熵减掉以按某一特征分裂后的條件熵,结果越大说明这个特征越能消除不确定性,最极端的情况按这个特征分裂后信息增益与信息熵一模一样,那说明这个特征就能获得唯一的结果了
这里补充一个概念:条件熵,公式为:

信息增益率是在信息增益的基础上增加了一个关于选取的特征包含的类别嘚惩罚项,这主要是考虑到如果纯看信息增益会导致包含类别越多的特征的信息增益越大,极端一点有多少个样本,这个特征就有多尐个类别那么就会导致决策树非常浅。公式为:

基尼系数也是一种衡量信息不确定性的方法与信息熵计算出来的结果差距很小,基本鈳以忽略但是基尼系数要计算快得多,因为没有对数公式为:
与信息熵一样,当类别概率趋于平均时基尼系数越大
当按特征A分裂时,基尼系数的计算如下:
这是二分类时的基尼系数图像与信息熵形状非常接近,从数据角度看将信息熵在Pk=1处进行泰勒一阶展开,可以嘚到log2Pk≈1-Pk


本人互联网数据分析师目前已出,,,,,系列


微信搜索 " 数据小斑马" 公众号,回复“数据分析"就可以免费领取数据分析升级打怪 15本必备教材

我要回帖

更多关于 基尼指数 的文章

 

随机推荐