如何手动计算群集的轮廓,内聚力和分离度

ask*_*ker 5 validation cluster-analysis cohesion

美好的一天!

不幸的是,尽管资源丰富,但我一直在Internet上寻找如何计算轮廓系数,内聚力和分离度的方法,但我只是不明白所发布的公式。我知道某些工具中有它的实现,但是我想知道如何手动计算它们,尤其是在给定向量空间模型的情况下。

假设我具有以下群集:

群集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

rai*_*pak 5

Cluster 1 ={{1,0},{1,1}} 
Cluster 2 ={{1,2},{2,3},{2,2},{1,2}}, 
Cluster 3 ={{3,1},{3,3},{2,1}}
Run Code Online (Sandbox Code Playgroud)

要点 {1,0} in cluster 1

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

So a1 =?( (1-1)^2 + (0-1)^2) =?(0+1)=?1=1
Run Code Online (Sandbox Code Playgroud)

现在,对于群集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
Run Code Online (Sandbox Code Playgroud)

因此,群集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
Run Code Online (Sandbox Code Playgroud)

因此,群集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

  • 很好的解释!顺便说一句,小修正:根据原始论文,SC 的公式为 = (b - a) / max(b,a) (2认同)

Ano*_*sse 0

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

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