聚类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包中实现,包括clusterSimclusterCritNbClust

这个包实现与这些包在几个方面不同。在

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”乘以距离的最小值和最大值。我不确定他们这样做的动机是什么,但有时它确实比上面描述的方法能更好地估计集群的数量。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修复尝试将用户签名到服务器主机时出现的“字符串无法转换为json对象”错误?   控制台Java:不使用新行更新命令行中的文本   java servlet接收xml数据时,出现错误   使用REST API在Bitbucket中复制或复制存储库   java如何在JavaFX中对齐一行?   java如何在活动中显示通过服务获得的数据?   返回BigDecimal作为字符串:返回int   java组织。openqa。硒。InvalidSelectorException:尝试查找元素时选择器无效   java仅在阻塞状态下通知和通知所有影响线程   java JBOSS无法启动部署   java方法的返回值能保证类型安全吗?   JavaeShadoop序列化组织。阿帕奇。hadoop。木卫一。短写失败   java如果我在同一个类上同步了两个方法,它们能同时运行吗?   不使用java数据库的spring分页实现   java如何将字符串切碎成这样的数组?