I was well beaten myself,and i am better for it.
我自己也被被打败过,但我因此变得更好。
社团检测度量指标
假设对于图
根据不同的计算方法,社团检测指标大概可以分为以下三类:
- 基于成对计数(Based on pair counting)
- 基于聚类匹配(Based on cluster matching)
- 基于信息论(Based on information theory)
基于成对计数指标
基于成对计数度量取决于两种划分
Wallace 提出两种指标
兰德指数(Rand Index)
兰德指数 是两种划分
其中
对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:
可参考Wiki上详细的ARI计算公式 ,ARI取值范围为[−1,1],值越大意味着两种划分结果越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。
杰卡德指数(Jaccard Index)
杰卡德指数是两种划分
对于其改进形式可以参考这篇论文Comparing clusterings—an information based distance
基于聚类匹配指标
基于类匹配的度量方法是找出不同划分中社团的重叠性。
分类错误率(Classification Error)
计算公式定义如下:
其中
Normalized Van Dongen Metric
计算公式定义如下:
上面公式是对分类错误率公式的改进,具体信息可以参考论文Performance criteria for graph clustering and Markov cluster experiments
基于信息论指标
基于信息论的度量指标根据香农信息熵理论进行计算不同划分之间的相关性。下面只简单介绍标准化信息,具体计算标准可以参考论文Information Theoretic Measures for Clusterings Comparison: Variants, Properties, Normalization and Correction for Chance
互信息(Mutual Information)
互信息(Mutual Information)是用来衡量两个数据分布的吻合程度。假设
其中
那么
其中
标准化互信息(Normalized Mutual Information)
标准化信息定义如下:
具体计算过程可以参考我的另一篇博客:标准化互信息NMI计算步骤及其Python实现
调整的互信息(Adjusted Mutual Information)
与
具体计算形式可以参考Wikipedia上Adjusted mutual information
其它相关指标
以上度量指标适用于人工生成的数据集,对于真实网络的数据集一般采用以下两种度量指标:
非重叠社团划分质量的模块度函数Q
模块度的主要介绍可以参考Wiki上Modularity networks,以下写出主要的理解。
设
函数
模块度的大小定义如下:社团内部的总边数和网络中的总边数的比例减去一个期望值,该期望值是将网络设定为随机网络时同样的社团分配所形成的社团内部的总边数和网络中总边数的比例的大小,模块度计算公式定义如下:
其中,
可以根据上述定义简化Q的计算,假设网络分为n个社团,Q的计算公式可以进一步推导:
在进行每次划分的时候计算Q值,Q取值最大的时候则是此网络较理想的划分。Q值的范围在0-1之间,Q值越大说明网络划分的社区结构准确度越高,在实际的网络分析中,Q值的最高点一般出现在0.3-0.7之间。
重叠社团划分质量的模块度函数 EQ
由模块度改进的指标EQ可用于度量重叠社团的划分结果,具体推导过程可以参考论文Extending the definition of modularity to directed graphs with overlapping communities,以下给出具体的定义公式:
其中