续 聚类算法(三)—— 评测方法1
聚类相关:
聚类算法(一)——DBSCAN 聚类算法(二)—— 优缺点对比 聚类算法(三)—— 评测方法1 聚类算法(三)—— 评测方法2 聚类算法(三)—— 评测方法3(代码) 聚类算法(四)—— 基于词语相似度的聚类算法(含代码) 聚类算法(五)——层次聚类 linkage (含代码) 聚类算法(六)——谱聚类 (含代码)
sklearn的源码 需要先计算MI,然后根据MI计算其它值: ‘ M I ( U , V ) = ∑ i = 1 ∣ U ∣ ∑ j = 1 ∣ V ∣ ∣ U i ∩ V j ∣ N log N ∣ U i ∩ V j ∣ ∣ U i ∣ ∣ V j ∣ ‘ `MI(U,V)=\sum_{i=1}^{|U|} \sum_{j=1}^{|V|} \frac{|U_i\cap V_j|}{N} \log\frac{N|U_i \cap V_j|}{|U_i||V_j|}` ‘MI(U,V)=∑i=1∣U∣∑j=1∣V∣N∣Ui∩Vj∣log∣Ui∣∣Vj∣N∣Ui∩Vj∣‘ ‘ h = M I ( U , V ) / e n t r o p y ( U ) ‘ `h=MI(U,V)/entropy(U)` ‘h=MI(U,V)/entropy(U)‘ ‘ c = M I ( U , V ) / e n t r o p y ( V ) ‘ `c=MI(U,V)/entropy(V)` ‘c=MI(U,V)/entropy(V)‘
上面详细介绍中涉及的公式存在问题 根据 源码原理及一些相关参考,整理下个人理解: 其中U为预测类,V为标记类 MI为互信息(Mutual Information)
将p(k,l) p(k), p(l)统计值带入即可转化为上面MI(U,V)公式。
贴一个互信息、信息熵之间联系的图,便于理解这一评测指标的原理
假设粉色的圆圈为预测结果类信息熵,黄色的圆圈为实际类信息熵。那么交叠的部分为互信息 H = MI/H(U), 相当于交叠的部分在粉色圆圈中占的比例,也就是 预测结果和实际结果的重叠部分占预测结果的比例,预测结果越准确,重叠越多,H值越高。 C = MI/H(V),相当于交叠的部分在黄色圆圈中占的比例,也就是 预测结果和实际结果的重叠部分占实际类别的比例,预测结果越准确,重叠越多,C值越高。 最后调和平均