我们来回顾学习一下这些概念
一、信息
信息是指能消除随机不确定性的内容
,换句话说,告诉你一个想都不用想的事实,就不叫信息了。
比如数据分析师基于大数据想发现一些有用的信息,
- 有一天上班你告诉上级,基于数据中我们发现我们的用户性别有男有女。。。(这不废话吗?)这不叫信息
- 但是如果你告诉上级,女性用户的登录频次、加购率,浏览商品数量远高于男性,且年龄段在25岁~30岁的女性用户消费金额最多,15-20岁最少,那么我相信你老大会眼前一亮的!!!
如何衡量信息量?1948年有一位科学家香农从热力学中的熵概念,引入了信息的概念,得到了信息度量的数据公式:
p(xi) 代表信息发生的可能性,发生的可能性越大,概率越大,则信息越少,通常将这种可能性叫为不确定性,越有可能则越能确定则信息越少
二、信息熵
信息熵则是在信息的基础上,将有可能产生的信息定义为一个随机变量,那么变量的期望就是信息熵,比如上述例子中变量是赢家,有两个取值,中国或西班牙,两个都有自己的信息,再分别乘以概率再求和,就得到了这件事情的信息熵,公式如下:
其中,n 为类别的数量
熵只依赖X的分布,和X的取值没有关系,熵是用来度量不确定性,当熵越大,不确定性越大,反之越小,在机器学期中分类中说,熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:
如果看上面的,还没有理解,我们来在机器学习模型中进一步学习和理解一下:
|D|
表示样本集合中所有样本数量;| Dk |
样本集合中,第K类样本的数量
三、条件熵
条件熵是用来解释信息增益而引入的概念,概率定义:随机变量X在给定条件下随机变量Y的条件熵。在机器学习中为选定某个特征后的熵,公式如下:
我来直观的展示该公式的实现方式:
先定义几个概念:|D|为样本集合中所有样本数量;|Di|为某一特征第i个属性下的样本集合中样本数量;H(Di)为某一特征第i个属性下的样本集合的熵(计算的是该集合中目标变量的熵);|Dik|为某一特征第i个属性下的样本集合中第K个类别(目标标量)的数量
四、信息增益
信息增益是决策树中ID3算法中用来进行特征选择的方法,就是用整体的信息熵减掉以按某一特征分裂后的条件熵,结果越大,说明这个特征越能消除不确定性,即获得最好的分类效果。最极端的情况,按这个特征分裂后信息增益与信息熵一模一样(完全消除了不确定性),那说明这个特征就能获得唯一的结果了。
一样的,我进行直观的展示
五、基尼系数
在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。基尼不纯度为这个样本被选中的概率乘以它被分错的概率
。当一个节点中所有样本都是一个类时,基尼不纯度为零。
或者
当按特征A分裂时,基尼系数的计算如下:
Gini(Di)
表示为特征A对应的y的基尼系数,一定要注意区别
六、实现
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import io
# 准备数据
data_str = output = io.StringIO('''编号,色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率,好瓜
1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,0.697,0.46,是
2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,0.774,0.376,是
3,乌黑,蜷缩,浊响,清晰,凹陷,硬滑,0.634,0.264,是
4,青绿,蜷缩,沉闷,清晰,凹陷,硬滑,0.608,0.31