聚类C指数
c-index的Python项目详细描述
Hubert&Levin描述的C索引的Python本机实现
说明
计算Hubert&Levin C index-内部群集质量指数
Hubert&Levin(1976)在“自由回忆中评估分类聚类的一般统计框架”中描述了C指数,心理学公报,83(6),1072-1080。它的目的是比较数据簇的分散性与数据集中的总体分散性。理想情况下,使C索引最小化的集群数的值也将是划分数据集的最佳集群数。在
更多说明
C指数计算如下:
cindex = (Sw - Smin) / (Smax - Smin)
Sw是簇内距离测量值的总和(仅在每个簇内对数据的逐点组合求和,而不是在簇之间求和) Smin是整个数据集中点之间Nw最小点方向距离的总和 Smax是整个数据集中点之间nw最大点方向距离的总和 Nw是属于同一簇的观测对总数。它与一次取两个点的簇内点的总组合相同
安装
pip install c_index
示例用法
^{pr2}$C索引已经在许多R包中实现,包括clusterSim、clusterCrit和NbClust
这个包实现与这些包在几个方面不同。在
ClusterSim差异
请注意以下两行(R代码):
Dmin=sum(sort(ddist)[1:r])Dmax=sum(sort(ddist,decreasing=T)[1:r])
它们包括整个距离数组,其中包括点之间距离的所有排列(而不是组合)。这意味着高端和低端被重复计算。我不认为这是正确的方法 计算C指数,但也许他们有一个具体的原因。在
性欲差异
请注意以下几行(R代码):
Dmin=min(v_min)Dmax=max(v_max)result<-(DU-r*Dmin)/(Dmax*r-Dmin*r)
它们不需要对点之间的Nw最小和最大距离测量值进行排序和计算,而是简单地将“r”乘以距离的最小值和最大值。我不确定他们这样做的动机是什么,但有时它确实比上面描述的方法能更好地估计集群的数量。在
- 项目
标签: