决策树算法梳理

信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)

: 信息是不是可以量化?为什么有的信息量大有的信息量小?那么,不确定性的变化跟什么有关呢?
一,跟事情的可能结果的数量有关;二,跟概率有关。
那么,怎么衡量不确定性的变化的大小呢?怎么定义呢?
一,起码不是个负数吧,不然说句话还偷走信息呢~
二,起码信息量和信息量之间可以相加吧!
三,刚刚已经提过,信息量跟概率有关系,但我们应该会觉得,信息量是连续依赖于概率的吧!
四,刚刚也提过,信息量大小跟可能结果数量有关。假如每一个可能的结果出现的概率一样,那么对于可能结果数量多的那个事件,新信息有更大的潜力具有更大的信息量,因为初始状态下不确定性更大。
信息熵就是平均而言发生一个事件我们得到的信息量大小。所以数学上,信息熵其实是信息量的期望。
H = − ∑ x ϵ U P ( x ) log ⁡ P ( x ) H=-\sum_{x\epsilon U}{P(x)\log P(x)} H=xϵUP(x)logP(x)
讨论下二元随机变量的情况,为了直观解释和记忆,先给出如下图解:
在这里插入图片描述
 
**联合熵:**先说联合熵的定义,代表X,Y同时发生的不确定性;公式为在这里插入图片描述
从上图中理解就是两个大圆的面积。

再说条件熵,代表在已知一个变量发生的条件下,另一个变量发生所新增的不确定性;公式为:在这里插入图片描述
有兴趣的朋友可以自己推导一下是如何从(1)式到(2)式的,从上图中理解就是两个大圆去掉其中一个大圆所剩下的面积。

最后定义互信息,其中的一个定义就是在已知X发生的条件下,Y不确定性减少的程度,这个定义在ID3算法中也叫信息增益,计算公式可以理解为:在这里插入图片描述
有兴趣的朋友可以自己推导一下是如何从(1)式到(2)式的,从上图理解就是两个大圆相交的面积,所以互信息是对偶的。

另一个定义是这样
在这里插入图片描述
等式右边的值叫做KL散度,相对熵,或者交叉熵等等,所以说理解了交叉熵就理解了互信息的第二个定义。

定义交叉熵,代表两个概率分布(函数)的相似度,计算公式为:
在这里插入图片描述

信息增益:
信息增益率:

在这里插入图片描述
**基尼系数:**分类问题中,假设有K个类别,第k个类别的概率为pk, 则基尼系数的表达式为:

G i n i ( p ) = 1 − ∑ k = 1 K p k 2 Gini(p)=1−∑_{k=1}^Kp_k^2 Gini(p)=1k=1Kpk2

决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景

ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择。在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题。但是无论是ID3还是C4.5,都是基于信息论的熵模型的,这里面会涉及大量的对数运算。能不能简化模型同时也不至于完全丢失熵模型的优点呢?有!CART分类树算法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。

回归树原理

决策树防止过拟合手段

1. 预剪枝(pre-pruning)
2. 后剪枝(post-pruning)
首先剪枝(pruning)的目的是为了避免决策树模型的过拟合。因为决策树算法在学习的过程中为了尽可能的正确的分类训练样本,不停地对结点进行划分,因此这会导致整棵树的分支过多,也就导致了过拟合。决策树的剪枝策略最基本的有两种:预剪枝(pre-pruning)和后剪枝(post-pruning):

预剪枝(pre-pruning):预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛华性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点。
后剪枝(post-pruning):后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛华性能的提升,则把该子树替换为叶结点。

模型评估

混淆矩阵
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。在机器学习的模型评价中用到的很多指标都来源于对混淆矩阵结果的运算。

下图是常见的二分类问题的混淆矩阵:
在这里插入图片描述

其中列表示模型预测值,行表示数据真实值。

根据图中的交叉结果会出现以下4种状况:

真实值为0,预测值也为0,用字母TP(True Positive)表示真正类数据。
真实值为0,预测值为1,用字母FN(False Negative)表示假反类数据。
真实值为1,预测值也为1,用字母TN(True Negative)表示真反类数据。
真实值为1,预测值为0,用字母FP(False Positive)表示假正类数据。
其中,True、False表示预测结果正确与否,Positive、Negative表示预测倾向为正类或者反类。

准确率、F1-Score、ROC曲线
整体分类结果的准确率accuracy=(TP+TN)/(TP+FN+TN+FP)

预测为正类的准确率,即在被预测为正类中真正是正类样本比例,又称精确率或查准率precision=TP/(TP+FP)

真实为正类的准确率,即在所有正类样本中被正确识别的比例,又称召回率或查全率TPR/recall=TP/(TP+FN)

F1-score是综合precision和recall两个指标的判断指标,
F1-Score=2/(1/precision+1/recall)=2precisionrecall/(precision+recall),
F1-Score的值在0到1之间,越大越好。

真实FP为负类预测错误率,即负类被预测为正类占所有真实负类的比例FPR=FP/(FP+TN)

ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以TPR为纵坐标,FPR为横坐标绘制的曲线。实际上ROC曲线是对一系列的TPR和FPR的值所构成点的连线绘制,而其中每一个点的都代表一个概率分界值,即把大于分界值得部分分为正类,小于分界值的分为负类。对于模型而言,我们计算出每个样本属于正类的概率,然后对概率值按顺序排序,计算每个概率作为分界点的TPR和FPR,然后绘制曲线,就构成了模型的ROC曲线。

在这里插入图片描述

在样本有限的情况下,ROC曲线通常不是一条平滑的曲线,而是锯齿形的,数据较多的情况下,曲线会接近平滑。同时我们也可以通过计算 AUC(Area Under roc Cure)来做为评价指标。

sklearn参数详解,Python绘制决策树

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值