本文主要是介绍利用互信息比较不同的聚类结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
互信息(mutual information)和信息熵(information entropy)一样都是信息论里面的概念。信息熵在决策树里面用的比较多,可以度量样本集合的纯度。而互信息在聚类中有很大的作用,它可以衡量对同一个数据集不同的划分的之间的相似程度。
假设 Pa,Pb 表示数据集 X 上的两个不同的划分,
Pa 包含 ka 个簇, Pa = { Ca1,Ca2,⋯,Caka }。
Pb 包含 kb 个簇, Pb = { Cb1,Cb2,⋯,Cbkb }。
nabij 表示 Cai 和 Cbj 中相同样本的个数。
nai 表示 Cai 中样本的个数, nbj 表示 Cbj 中样本的个数。
Pa,Pb 的互信息为 I(Pa,Pb) :
接下来还要对 I(Pa,Pb) 进行标准化,使 I(Pa,Pb) 的值域为 [0,1]
标准化的互信息用 NMI 表示:
其中 H(Pa),H(Pb) 分别表示 Pa,Pb 的信息熵
NMI(Pa,Pb) 的值介于0到1之间,当划分 Pa,Pb 只有很小的差别时, NMI(Pa,Pb) 趋近于1,反之趋近于0。
如果我们通过先验信息,知道了真正的划分 P∗ ,那么就可以用 NMI(Pa,P∗) 来检验划分 Pa 是否合理。
这篇关于利用互信息比较不同的聚类结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!