一、信息量与信息熵
简单来讲,就是一个时间的发生概率越小,信息量越大
信息量的定义:
不确定性越大,熵值越大,信息熵是时间集合的信息量的平均值。
信息熵的定义:
若随机变量退化成定值,熵为0
经验信息熵:根据你的样本得到的概率
条件熵:在给定X的条件下,随机变量Y的不确定性。相当于是数学期望。
可以推导出:
经验条件熵:
信息增益:集合D的经验熵与在给定a后的经验条件熵的差。
我用人话叙述一下整个过程:
首先理清楚我们样本的构成:我们的目的是找到一个属性。样本有多个属性,每一个属性有多个取值。
在样本D中计算关于训练结果(好瓜与坏瓜)的信息熵,遍历每一个属性,以每一个属性的每一个取值作为样本总体,计算关于训练结果的信息熵,计算数学期望,从而计算出G(D,a)。这样就得到了每一个属性的信息增益,信息增益下降最大的作为根节点。
然后将样本进行取值的分类(划分过程),如果所有样本都属于同一类,则是一个单节点子树。如果特征用完,则返回单节点子树。如果信息增益小于阈值,则返回单节点子树。
整个过程是一个递归的过程。每进行一次递归进入子结点,更新样本集和特征集。
以上是最基础的建树过程,但是存在很多的问题。
problems:偏向与取值多的属性;对噪声敏感;无法处理连续值;无法处理不同代价属性;无法处理缺失值
接下来的方法针对以上的问题:
1、直观来讲,取值多的属性会产生更大的信息增益,我们用增益率来代替:
2、
基尼指数(用来选取最纯的那个属性)可以用来代替信息增益:数据集中任意两个数据是否属于同一类的衡量标准
3、处理过拟合,噪声问题:
剪枝策略分为:
预剪枝:在生成过程中,对每个结点在划分前进行估计,若划分不能带来决策树的泛化性能的提升,就不划分了,将其作为叶结点,结束这层递归。
后剪枝:先生成决策树,然后自底向上对非叶结点进行考察,若将该子树替换为叶结点能带来泛化性能的提高,就替换。
以上剪枝策略都是通过比较剪枝前后泛化性能来决定的。泛化性能的考察就是通过对测试集的分类正确率进行比较。
3、连续值离散化(二分法)
先将样本排序,去每两个样本值之间的中值作为划分点候选值的集合之一。最后通过信息增益选取使信息增益最大的那个划分点。
4、缺失值处理
对于每一个属性来说,去除缺失该属性的样本值。
5、不同代价属性处理
将信息增益替换为:或者
ω是(0,1)之间的常数,代表的是代价对于信息增益的相对重要性。