如何评估聚类算法?
0 187
0
该提问暂无详细描述
收藏
2021-02-23 10:13 更新 小眼的铁板烧 •  2910
共 1 个回答
高赞 时间
0

有很多方法可以评估机器学习中聚类模型的性能。它们大致分为3类

  • 有监督方法
  • 无监督方法
  • 混合方法

有监督方法

通过将评估指标的值与一些预定义的基本规则和值进行比较,可以评估有监督的聚类方法。 例如-杰卡德相似度指数,兰德指数,纯度等。

无监督方法

无监督方法由一些评估指标组成,这些指标无法与预定义值进行比较,但可以在不同的聚类模型之间进行比较,因此我们可以选择最佳模型。 例如-轮廓测量,SSE

混合方法

混合方法就是监督方法和无监督方法的结合。

轮廓测量

轮廓度量来自两个主要度量-内聚和分离。 内聚力就是集群中数据点的紧密性。 基本上有2种方法来计算内聚力-

  • 基于图的内聚
  • 基于原型的内聚

假设A是具有4个数据点的集群,如图所示:

基于图的内聚

基于图的内聚通过将每个点到每个其他点的距离(欧几里得或曼哈顿)相加来计算内聚值。 图凝聚力(A)=常数*(Dis(1,2)+ Dis(1,3)+ Dis(1,4)+ Dis(2,3)+ Dis(2,4)+ Dis(3, 4)) 常数= 1 /(2 *所有距离的平均值)

基于原型的内聚

基于原型的内聚是通过将所有数据点与普遍接受的点(例如质心)的距离相加得出的。 假设考虑C作为簇A中的质心 原型内聚力(A)=常数*(Dis(1,C)+ Dis(2,C)+ Dis(3,C)+ Dis(4,C)) 常数= 1 /(2 *所有距离的平均值) 距离是两个不同群集的数据点之间的距离或差异的大小。 同样在这里,我们主要有两种计算距离的方法。

  • 基于图的距离
  • 基于原型的距离

基于图的距离通过将群集1中所有点之间的距离与群集2中每个点之间的距离相加来计算值。 例如,假设A和B是2个群集,每个群集具有4个数据点,则: 基于图的距离=常数*(Dis(A1,B1)+ Dis(A1,B1)+ Dis(A1,B2)+ Dis(A1,B3)+ Dis(A1,B4)+ Dis(A2,B1)+ Dis (A2,B2)+ Dis(A2,B3)+ Dis(A2,B4)+ Dis(A3,B1)+ Dis(A3,B2)+ Dis(A3,B3)+ Dis(A3,B4)+ Dis( A4,B1)+ Dis(A4,B2)+ Dis(A4,B3)+ Dis(A4,B4)) 常数= 1 /簇数 通过找到两个像质心一样的簇的公认点之间的距离来计算基于原型的距离。 我们可以简单地计算两个簇A和B的质心之间的距离,即Dis(C(A),C(B))乘以一个常数,其中常数= 1 /簇数。 轮廓测量=(ba)/ max(b,a) a =内聚值 b =分离值 如果Silhouette度量= -1,则表示聚类非常差。 如果Silhouette度量= 0,则表示聚类良好,但仍有可能进行一些改进。 如果Silhouette度量= 1,则表示聚类非常好。 当我们有多种聚类算法时,总是建议选择一个具有高轮廓度量的算法。

SSE(误差平方和)

SSE是通过将内聚值和分离值相加来计算的。 SSE =值(内聚)+值(分离)。 当我们有多种聚类算法时,总是建议选择SSE低的一种。

Jaccard相似度指数

使用数据点中的标签来测量Jaccard相似性指数。如果没有提供数据点,那么我们将无法测量该指标。 数据点分为4类:

  • 真负(TN)=具有相同类别和不同簇的数据点
  • 真正(TP)=具有相同类别和相同簇的数据点
  • 假负(FN)=具有相同类别和不同簇的数据点
  • 假正(FP)=具有不同类别和相同群集的数据点

注-nC2表示从包含n个元素的集合中可以包含2个元素的组合数 nC2 = n *(n-1)/ 2 TP = 5C2 + 4C2 + 2C2 + 3C2 = 20 FN = 5C1 * 1C1 + 5C1 * 2C1 + 1C1 * 4C1 + 1C1 * 2C1 + 1C1 * 3C1 = 24 FP = 5C1 * 1C1 + 4C1 * 1C1 + 4C1 * 1C1 + 1C1 * 1C1 + 3C1 * 2C1 = 20 TN = 5C1 * 4C1 + 5C1 * 1C1 + 5C1 * 3C1 + 1C1 * 1C1 + 1C1 * 1C1 + 1C1 * 2C1 + 1C1 * 3C1 + 4C1 * 3C1 + 4C1 * 2C1 + 1C1 * 3C1 + 1C1 * 2C1 = 72 Jaccard相似度指数= TP /(TP + TN + FP + FN) Jaccard相似度指数= 20 /(20+ 72 + 20 + 24)= 0.15

兰德指数

兰德指数类似于雅卡德相似度指数。其公式由下式给出: 兰特指数=(TP + TN)/(TP + TN + FP + FN) 兰特指数=(20 + 72)/(20+ 72 + 20 + 24)= 0.67 当兰德指数高于0.7时,可以认为是良好的聚类。 类似地,当Jaccard相似性指数大于0.5时,可以认为它是良好的聚类。

纯度

这些指标还需要数据中的标签。该公式由- 纯度=(属于簇1的标签的最大数据点数+属于簇2的标签的最大数据点数+ .... +属于标签1的最大标签的数据点数群集n)/数据点总数。 例如,假设具有标记数据点的3个群集– A,B和C 纯度=(a + b + c)/ n a =群集A中的黑色圆圈数(因为黑色是最大数量) b =群集B中红色圆圈的数量(因为红色是最大数量) c =群集C中的绿色圆圈数(因为绿色是最大计数) n =数据点总数 纯度=(5 + 6 + 3)/(8 + 9 + 5)= 0.6 如果纯度大于0.7,则可以认为是良好的聚集。 转载自:https://www.quora.com/q/datasciencemustneeded

收藏
2021-02-23 10:43 更新 空心人 •  2542