决策树中的熵和基尼指数

决策树是一种很基本的分类与回归方法,但正如前面博文机器学习排序算法:RankNet to LambdaRank to LambdaMART中所讲的LambdaMART算法一样,这种最基本的算法却是很多经典、复杂、高效的机器学习算法的基础。关于什么是决策树,网上一搜就会有很多博客文章,所以本文并不想讨论这个话题。本文想讨论的是决策树中两个非常重要的决策指标:熵和基尼指数。熵和基尼指数都是用来定义随机变量的不确定性的指标。下面先介绍什么是随机变量的不确定性。

1. 随机变量的不确定性

什么是随机变量的不确定性?举个例子,比如一个班级有50个同学,每个同学都有且仅有一部智能手机,问:如果任意选择一位同学,他可能用什么品牌的手机?如果这个班的同学全部都用苹果手机,那这个问题很好回答,也即“从这个班中任意选取的一位同学用什么品牌的手机”这个随机变量是确定的,不确定性为0。但如果这个班级中$\frac{1}{3}$的同学用小米手机,$\frac{1}{3}$的同学用苹果手机,其余$\frac{1}{3}$的同学用华为手机,这种情况下,这个变量的不确定性明显增大了。那接下来就需要考虑另外一个问题:什么情况下,这个变量的不确定性最大呢?直观来看,如果每个同学都使用不同品牌的手机时,这个变量的不确定性应该最大的。理解了随机变量的不确定性后,就更容易理解下面介绍的熵和基尼指数的定义。

2. 熵的定义及相关证明

在信息论与概率统计中,熵是最基础的概念,其表示随机变量不确定的度量。设$X$是一个取有限个值的离散随机变量,其概率分布为:

$$P(X=x_i)=p_i, i=1,2,...,n$$

则随机变量$X$的熵定义为:

$$H(X)=-\sum_{i=1}^{n}p_i\log{p_i}$$

为了使上式有意义,定义$0\log{0}=0$。因为熵的定义只依赖于$X$的分布,而与$X$的取值无关,所以我们可以将熵看成是分布的函数:

$$H(p)=-\sum_{i=1}^{n}p_i\log{p_i}$$

上面说到均匀分布的熵最大,但这只是直观的感觉,并没有证明。下面利用拉格朗日乘子法进行证明。根据拉格朗日乘子的可以将$H(p)$改写成:

$$H(p)=-\sum_{i=1}^{n}p_i\log{p_i}+\lambda \left(\sum_{i=1}^{n}p_i-1\right)$$

$H(p)$对每个$p_i$求导,得到:

$$\frac{\partial{H(p)}}{\partial{p_i}}=-\ln{p_i}-1+\lambda=0,i=1,2,...,n$$

由$-\ln{p_i}-1+\lambda=0$可以得到$p_i=e^{\lambda-1}, i=1,2,...,n$

所以可知$p_i$是只与$\lambda$相关的值,每个$p_i$应该都相等,即$p_1=p_2=...=p_n=\frac{1}{n}$,此时$H(p)$取得最大值$\log{n}$。由此可知熵的值域是$[0,\log{n}]$。

3. 基尼指数的定义及相关证明

基尼指数是经典决策树CART用于分类问题时选择最优特征的指标。假设有$K$个类,样本点属于第$k$类的概率为$p_k$,则概率分布的基尼指数定义为:

$$G(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2$$

满足条件$\sum_{k=1}^{K}p_k=1$

正如上面所说,基尼指数同样可以描述一个随机变量的不确定性的程度,所以可以猜测:当$p_1=p_2=...=p_K=\frac{1}{K}$时,$G(p)$取得最大值,此时随机变量最不确定。那么,如何进行证明?下面给出两种方法。

方法1:同样可以使用拉格朗日乘子法进行证明。根据拉格朗日乘子的性质,改写$G(p)$函数为:

$$G(p)=1-\sum_{k=1}^{K}p_k^2+\lambda \left(\sum_{k=1}^{K}p_k - 1\right)$$

$G(p)$对每个$p_i$求导,得到:

$$\frac{\partial{G(p)}}{\partial{p_i}}=-2p_i+\lambda=0,i=1,2,...,K$$

由$-2p_i+\lambda=0$可知$p_i$同样只与常数$\lambda$相关,所以$p_1=p_2=...=p_K=\frac{1}{K}$

$G(p)$的值域为$[0,1-\frac{1}{K}]$。

方法2:构造$K$为空间中的两个点$P_1=[p_1,p_2,...,p_K]^T$和$P_2=[\frac{1}{K},\frac{1}{K},...,\frac{1}{K}]^T$,其夹角为$\theta$,所以:

$$\cos\theta=\frac{P_1\cdot P_2}{|P_1|\cdot |P_2|}=\frac{[p_1,p_2,...,p_K]\cdot [\frac{1}{K},\frac{1}{K},...,\frac{1}{K}]}{\sqrt{p_1^2+p_2^2+...+p_K^2}\cdot \sqrt{\frac{1}{K^2}+\frac{1}{K^2}+...+\frac{1}{K^2}}}\leq{1}$$

所以:

$$\sum_{k=1}^{K}p_k^2\ge \frac{(\sum_{k=1}^{K}p_k)^2}{K}$$

于是:

$$G(p)\leq 1-\frac{(\sum_{k=1}^{K}p_k)^2}{K}=1-\frac{1}{K}$$

等号在$p_1=p_2=...=p_K=\frac{1}{K}$时达到。

原文地址:https://www.cnblogs.com/genyuan/p/9827638.html

时间: 2024-11-08 16:09:45

决策树中的熵和基尼指数的相关文章

决策树系列三——基尼指数,减枝和

-- coding: utf-8 -- """ Created on Tue Aug 14 17:36:57 2018 @author: weixw """ import numpy as np 定义树结构,采用的二叉树,左子树:条件为true,右子树:条件为false leftBranch:左子树结点 rightBranch:右子树结点 col:信息增益最大时对应的列索引 value:最优列索引下,划分数据类型的值 results:分类结果 s

B-经济学-基尼指数

目录 基尼指数 一.基尼指数简介 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 基尼指数 一.基尼指数简介 基尼指数(gini coefficient)代表了模型的不纯度,基尼指数越小,则不纯度越低:基尼指数越大,则不纯度越高,这和信息增益比是相反的. 假设一个训练集有\(K\)个类别,样本属于第\(k\)个类别的概率为\(p_k\),则它的基尼指数为 \[ G(p

比基尼美女_人像摄影吧主题 - 云寻觅云贴吧

云贴吧 首页 注册 登录 首页 贴吧分类 人像摄影吧 比基尼美女 比基尼美女 回复主题 楼主 佚名 比基尼美女 比基尼美女 这是在地下3层的洗车房的群拍作品. [器材]:佳能数码相机佳能 5D Mark III [参数] 光圈: F/1.6 焦距:35 毫米 感光度:160 2楼 匿名用户 比基尼美女 [器材]:佳能数码相机佳能 5D Mark III [参数] 光圈: F/1.6 焦距:35 毫米 感光度:800 2014-12-02 16:20 3楼 匿名用户 比基尼美女 [器材]:佳能数码

物化时代:“美国小姐”取消比基尼比赛

感谢雪梨! 今日导读 一年一度的"美国小姐"大赛,总能吸引大批观众和粉丝的目光.最近外媒官方宣布,过往最吸睛的项目之一:比基尼选秀,从明年度(2019)大赛开始将被取消.<纽约时报>新刊登的一篇新闻就对此事进行了独到的评论,语言讽刺有深意,很值得一读,今天就让我们跟着雪梨老师一起来读一读其中的节选. 新闻正文 The bikini contest is over, but we are living inside the beauty pageant 比基尼选美结束了,但我

机器学习【2】决策树中熵和信息增益的计算,构造决策树 ID3

信息熵很亮的是在你知道一个事件的结果后,平均会带给你多大的信息量,当事件的不确定性越大,那么要搞清它所需要的信息量也就越大,也就是信息熵越大,是无序性,不确定性的度量指标. 信息熵的计算: -p[i]logp[i],底数为2 public static double calcEntropy(int p[]) { double entropy = 0; // 用来计算总的样本数量,p[i]/sum即i的概率 double sum = 0; int len = p.length; for (int

JASFKD比基尼DSG秀大长腿F彩虹股

http://www.iliangcang.com/i/usermain/favour/?id=800396012 http://www.iliangcang.com/i/usermain/favour/?id=279243458 http://www.iliangcang.com/i/usermain/favour/?id=115256356 http://www.iliangcang.com/i/usermain/favour/?id=537438345 http://www.iliangc

决策树中的J48算法分析

J48原理:本来名称为C4.8,由于是Java实现的算法,再加上C4.8为商业收费算法. 其实J48是自上而下的,递归的分治策略,选择某个属性放置在根节点,为每个可能的属性值产生一个分支,将实例分成多个子集,每个子集对应一个根节点的分支,然后在每个分支上递归地重复这个过程.当所有实例有相同的分类时,停止. 问题是如何:如恶化选择根节点属性,建立分支呢? 例如:weather.nominal.arff 我们希望得到的是纯分裂,即分裂为纯节点,希望找到一个属性,它的一个节点全是yes,一个节点全是n

数据挖掘-决策树 Decision tree

数据挖掘-决策树 Decision tree 目录 数据挖掘-决策树 Decision tree 1. 决策树概述 1.1 决策树介绍 1.1.1 决策树定义 1.1.2 本质 1.1.3 决策树的组成 1.1.4 决策树的分类 1.1.5 决策过程 1.2 决策树的优化 1.2.1 过拟合 1.3.1 剪枝 2. 理论基础 2.1 香农理论 2.1.1 信息量 2.1.2 平均信息量/信息熵 2.1.3 条件熵 2.1.4 信息增益(Information gain) 2.1.5 信息增益率

决策树与随机森林算法

决策树 决策树模型是一种树形结构,基于特征对实例进行分类或回归的过程.即根据某个特征把数据分划分到若干个子区域(子树),再对子区域递归划分,直到满足某个条件则停止划分并作为叶子节点,不满足条件则继续递归划分. 一个简单的决策树分类模型:红色框出的是特征. 决策树模型学习过程通常包3个步骤:特征选择.决策树的生成.决策树的修剪. 1.特征选择 选择特征顺序的不同将会产生不同决策树,选择好的特征能使得各个子集下标签更纯净.度量特征对产生子集的好坏有若干方法,如误差率,信息增益.信息增益比和基尼指数等