本文主要是介绍熵,KL散度(相对熵),交叉熵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
信息量:-lg(p)
I(), 一个事件发生的概率越大,则它发生时所携带的信息量就越小;
熵: -p*lg(p)
对一个事件,,...,所有可能的发生结果的信息量的期望E(I(X)),或者不确定性程度的期望;
KL散度(相对熵): (注意前面没有负号)
= = - H(p)
用来度量两个分布p(真实分布),q(假设分布)之间的差异(严格意义上不是距离,因为不满足交换律)
例子:google用KL散度来度量蒙特卡罗树试探得到的action分布和神经网络预测得到的action分布之间的差异;
交叉熵:
当p(x)是已知分布时,例如时已知的label y向量,则H(p)是常数,最小化KL散度就变成了最小化交叉熵,所以交叉熵就成了损失函数;
(之所以叫做交叉熵,是因为看上去像是H(p)和H(q)一个取前面一个取后面得到的。。。)
把p(x)放到lg里面的q(x)的指数上,就变成了负对数似然函数,所以交叉熵和负对数似然函数是等价的;
ID3,C4.5,CART,3者对比:
C4.5的信息增益率,可以削弱“对取值多的属性”的偏好,但是同时对取值数目少的属性就有了偏好。。。通常会,先选取信息增益高于平均水平的特征以后,再从中选取增益率高的。
ID3和C4.5的树可以是多叉树,CART的树只能是二叉树。
CART树可以做分类(gini系数),也可以做回归(均方误差损失函数);(Random Forest用的就是CART树)
gini系数: = 意义:从数据集D中随机抽取两个样本类别标识不一致的概率。基尼指数越小,数据集的纯度越高。优点:省去了log,节省了计算量;
Random Forest: (Random Forest用的就是CART树---(CART树:二叉树,分类用基尼指数指标,回归用平方误差))
1. 训练样本采样使用Bagging(有放回的采样,训练集占所有样本的比例趋向于0.632,1-(1-1/N)^N取极限)
2. 特征采样:每个树节点,只采样一部分特征,在这部分特征里选择最优特征和最优分界点;
这篇关于熵,KL散度(相对熵),交叉熵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!