8

再会!

不幸的是,尽管有资源,但我一直在互联网上寻找如何计算轮廓系数、凝聚力和分离度的方法,但我就是无法理解发布的公式。我知道在某些工具中有它的实现,但我想知道如何手动计算它们,特别是在给定向量空间模型的情况下。

假设我有以下集群:

集群 1 ={{1,0},{1,1}}
集群 2 ={{1,2},{2,3},{2,2},{1,2}},
集群 3 ={{ 3,1},{3,3},{2,1}}

根据[1],我理解它的方式是我必须得到每个集群点的平均值:

C1 X = 1;Y = .5
C2 X = 1.5; Y = 2.25
C3 X = 2.67;Y = 1.67

给定平均值,我必须通过平方误差和 (SSE) 来计算我的凝聚力:

内聚力(C1) = (1-1)^2 + (1-1)^2 + (0-.5)^2 + (0-.5)^2 = 0.5
内聚力(C2) = (1-1.5) ^2 + (2-1.5)^2 + (2-1.5)^2 + (1-1.5)^2 + (2-2.5)^2 + (3-2.5)^2 + (2-2.5)^2 +(2-2.5)^2 = 2
内聚力(C3) = (3-2.67)^2 + (3-2.67)^2 + (2-2.67)^2 + (1-1.67)^2 + (3- 1.67)^2 + (1-1.67)^2 = 3.3334

集群 (C) = 0.5 + 2 + 3.3334 = 5.8334

我的问题是:
1. 我是否正确地执行了凝聚力?
2. 我如何计算分离?
3. 如何计算轮廓系数?

谢谢你。


参考文献:
[1] http://www.cs.kent.edu/~jin/DM08/ClusterValidation.pdf

4

5 回答 5

9
Cluster 1 ={{1,0},{1,1}} 
Cluster 2 ={{1,2},{2,3},{2,2},{1,2}}, 
Cluster 3 ={{3,1},{3,3},{2,1}}

取一个点{1,0} in cluster 1

计算它到集群中所有其他点的平均距离,即集群 1

So a1 =√( (1-1)^2 + (0-1)^2) =√(0+1)=√1=1

现在,对于集群 1 中的对象 {1,0},计算其与集群 2 和集群 3 中所有对象的平均距离。其中取最小平均距离。

所以对于集群 2

{1,0} ----> {1,2} = distance = √((1-1)^2 + (0-2)^2) =√(0+4)=√4=2
{1,0} ----> {2,3} = distance = √((1-2)^2 + (0-3)^2) =√(1+9)=√10=3.16
{1,0} ----> {2,2} = distance = √((1-2)^2 + (0-2)^2) =√(1+4)=√5=2.24
{1,0} ----> {1,2} = distance = √((1-1)^2 + (0-2)^2) =√(0+4)=√4=2

因此,簇 1 中的点 {1,0} 到簇 2 中所有点的平均距离 =

(2+3.16+2.24+2)/4 = 2.325

同样,对于集群 3

{1,0} ----> {3,1} = distance = √((1-3)^2 + (0-1)^2) =√(4+1)=√5=2.24
{1,0} ----> {3,3} = distance = √((1-3)^2 + (0-3)^2) =√(4+9)=√13=3.61
{1,0} ----> {2,1} = distance = √((1-2)^2 + (0-1)^2) =√(1+1)=√2=2.24

因此,簇 1 中的点 {1,0} 到簇 3 中所有点的平均距离=

(2.24+3.61+2.24)/3 = 2.7

现在,集群 1 中的点 {1,0} 到其他集群 2 和 3的最小平均距离为,

b1 =2.325(2.325 < 2.7)

所以簇1的轮廓系数

s1= 1-(a1/b1) = 1- (1/2.325)=1-0.4301=0.5699

以类似的方式,您需要通过在每个集群中获取任何单个对象点并重复上述步骤来分别计算集群 2 和集群 3 的轮廓系数。其中轮廓系数最大的簇是根据评估最好的。

注意:这里的距离是欧几里得距离!您还可以观看此视频以获得进一步的解释:

https://www.coursera.org/learn/cluster-analysis/lecture/RJJfM/6-2-clustering-evaluation-measuring-clustering-quality

于 2018-04-26T19:36:33.110 回答
0

轮廓的计算很简单,但不涉及质心。

所以不要试图根据你为凝聚力所做的事情来计算它;根据您的原始数据计算它。

于 2014-05-01T10:58:00.837 回答
0

由于您计算了 C1 的内聚力,因此出现了错误。

Cohesion(C1) = (1 - 1) ^ 2 + (1 - 1) ^ 2 + (0 - .5) ^ 2 + (1 - .5) ^ 2 = 0.5 

这是基于原型(在本例中为质心)的内聚计算。

用于计算分离:{集群之间,即 (C1,C2) , (C1,C3) & (C2,C3)}

Separation(C1,C2) = SSE(Centroid(C1), Centroid(C2))
= (1 - 1.5) ^ 2 + (0.5 - 2.25) ^ 2 = 1 + 3.0625 = 4.0625

轮廓系数:结合了凝聚力和分离度。

参考https://cs.fit.edu/~pkc/classes/ml-internet/silhouette.pdf

于 2017-08-14T05:33:53.707 回答
0

感谢您的回答,
计算其到集群中所有其他点的平均距离,即集群 1' --> 这部分必须更正。

所以

a1 =√( (1-1)^2 + (0-1)^2) =√(0+1)=√1=1
于 2018-05-07T11:35:51.710 回答
0

{1,0} ----> {2,1} = 距离 = √((1-2)^2 + (0-1)^2) =√(1+1)=√2=2.24

这是一个错误,因为 2 的根约为 1.41

于 2021-07-01T10:26:56.047 回答