文章目录
名词 | 解释 |
---|---|
熵 | 一种事物的不确定性 |
信息 | 为消除不确定的事物,调整概率,排除相关的干扰因素 |
噪音 | 不能消除对某件事情的不确定性的事物 |
数据 | 噪音+信息称为数据 |
1、对于不确定的事件作为单位,比如抛硬币,熵值相当于抛几次硬币的不确定性,比如1次,结果有两种,熵为2;两次,结果有4种,熵为4
2、对于等概率均匀分布的事件,熵=log以2为底的m,由m决定,m的等概率不确定情况为8,熵为3;m的等概率不确定情况为4,熵为2;
3、每种情况概率不相等,一般分布,下图就是公式,一般用log2比较多
信息量化(信息增益)
举例1:对于ABCD四个选型不知道答案时熵为:2,等概率均匀分布;假设告知C有一半概率正确,那A 1/6 B1/6 C 1/2 D 1/6,此时熵计算为0.5*log以2为底的3(解释下:1/6 * log2(6)+1/6 * log2(6)+1/2 * log2(2)+1/6 * log2(6)),约等于1.79;那此时的信息增益为2-1.79=0.21
所以 信息增益
按照更官方的应该是叫信息熵-条件熵
ID3决策树-信息增益
获取书上案例
计算好瓜的熵值
下面就是选择哪一个属性作为第一分类,那就是要计算每个属性所带来的信息增益,信息增益越大,下降越快,当然优先选择,至于怎幺计算,我们选取色泽这一属性作为案例
计算出熵值后再计算信息增益
上述的Gain公式就是信息熵-条件熵,其他属性也是同理计算,最后我们得出属性”纹理”的信息增益最大,于是它被选为第一划分属性, 注意:
后面我们是要以这个纹理的三种样本作为基础再次进行剩余属性熵、信息增益的计算,然后选择划分属性,而不是还是按之前算的进行划分,最后的划分结果如下图
C4.5决策树-增益率
名词 | 解释 |
---|---|
增益率 | 避免对取值数目较多属性有所偏好,减少偏好带来影响 |
增益率的计算公式如下,其实我们发现这个结果就是,算出指标的信息增溢后,除以IVa,dv就是该属性中某个具体值(解释下:比如色泽分为三种,具体值就是其中一种)包含样本数目
最后衡量的标准就是先从候选的划分属性中找出信息增益高于平均水平的属性,再比较增益率最高的
CART决策树-基尼指数
名词 | 解释 |
---|---|
基尼指数 | 同熵值含义,反映数据集的纯度 |
下图就是基尼值的公式,实则我们可以知道该指数越小,数据的纯度越高,形象理解:几乎都是一种东西,那占的比例多/概率大,自然基尼指数就小,就是越纯
具体的公式理解就是随机抽取一个数是某个值的概率为pk,不是这个值的概率自然为1-pk,化简过后就是最后的结果
基尼指数:比如属性a的基尼指数应该如何计算,有如下公式
CART决策树就是选择基尼指数最小的属性作为最优划分属性,他的构建算法和信息增益的决策树计算不同,是要计算出某个属性具体值是还是非(解释下:比如色泽分为三种,具体值就是其中一种,要计算的就是上面基尼值的所提及的两种,1:是这个具体值,2:不是这个具体值),就是二叉的过程
预剪枝的主要功能就是避免过拟合;上述图片是将数据集分为两个部分,上半部分是训练集,下半部分是验证集,对于开始的情况,我们将所有样本假设为好瓜,那自然在验证集当中的精度就是3/7(这里解释下:因为假定都为好的,那验证集一共7个样本,四个为坏的,自然假定正确的也就是精度就是3/7)
现在我们经由之前的信息增益概念,在训练集选取出脐部作为划分属性,那显然脐部有三种类型,从上图的测试集可以看到,凹陷的脐部是1、2、3、14,稍凹的脐部是6、7、15、17,平坦的脐部是10、16,所以这三种,就被分别定义为好、好、坏,此时我们按照验证集去测,发现精度就是5/7,显然5/7 > 3/7
之后我们再计算出凹陷的样本下个划分为色泽,那用色泽划分时却发现,这个时候的精度为4/7,明显小于5/7,所以 预剪枝策略禁止该点被划分
,同理稍凹下一划分为根蒂,划分后和5/7一样,但是由于 预剪枝属于类似贪心的本质,相同值也不给划分
,最后的成图如下
我们可以很容易的得到一种结论,预剪枝会有欠拟合的风险,我们看如下的图,是根据信息增益来得出的划分结论
此时我们需要对其 修剪
,就叫做后剪枝,很容易可以根据预剪枝的4.2图进行计算得出该划分的精度为3/7,我们首先考虑6号点,如果将该分支去除,那幺精度经过计算为4/7,明显精度提升,那显然可以 剪除
,再计算5号点,计算出来精度仍然为4/7,作为不贪心的代表,后剪枝此时不会剪除,会保留,同理,2号被剪除,其他保留,最终的效果图如下:
决策树中连续值&缺失值
连续值
这里要清楚连续值和离散值的含义,其实连续值在实际方面指的就是可取值的数目不再有限,那这时候计算的准则就可以取中位点作为二分,那就等同变成了离散值的取值
缺失值
缺失值的属性计算的时候不带缺失值,最后计算出的Gain需要乘以一个系数(系数值为 无缺失值数目/总数目);
针对该列是离散值也可以用众数填充(这里的填充需要相关性最高的列填充);针对该列是连续值也可以用中位数填充(这里的填充需要相关性最高的列做线性回归进行估计)
Be First to Comment