聚类模型ari_聚类模型性能评价指标

有监督的分类算法的评价指标通常是accuracy, precision, recall, etc;由于聚类算法是无监督的学习算法,评价指标则没有那么简单了。因为聚类算法得到的类别实际上不能说明任何问题,除非这些类别的分布和样本的真实类别分布相似,或者聚类的结果满足某种假设,即同一类别中样本间的相似性高于不同类别间样本的相似性。聚类模型的评价指标如下:

1. Adjusted Rand Index(兰德指数):

若已知样本的真实类别标签labels_true ,和聚类算法得到的标签labels_pred,ARI是计算两种标签分布相似性的函数,该函数对标签的定义形式没有要求。scikit-learn中的示例代码如下:

1 from sklearn importmetrics2 labels_true = [0, 0, 0, 1, 1, 1]3 labels_pred = [0, 0, 1, 1, 2, 2]4 metrics.adjusted_rand_score(labels_true, labels_pred)

1 metrics.adjusted_rand_score(labels_pred, labels_true)

adjusted_rand_score方法的输入参数没有顺序要求,上面两种结果是完全一样的。

最好的聚类结果是聚类类别和真实类别的分布完全一致,如下代码,结果为1

1 labels_pred =labels_true[:]2 metrics.adjusted_rand_score(labels_true, labels_pred)

较差的聚类结果会得到负的或者接近0的兰德指数,如下代码

1 labels_true = [0, 1, 2, 0, 3, 4, 5, 1]2 labels_pred = [1, 1, 0, 0, 2, 2, 2, 2]3 metrics.adjusted_rand_score(labels_true, labels_pred)

结果为 -0.12

ARI的优点:

随机均匀的标签分布的ARI值接近0,这点与raw Rand Index和 V-measure指标不同;

ARI值的范围是[-1,1],负的结果都是较差的,说明标签是独立分布的,相似分布的ARI结果是正的,1是最佳结果,说明两种标签的分布完全一致;

不用对聚类结果做任何假设,可以用来比较任意聚类算法的聚类结果间的相似性。

ARI的缺点:

ARI指标需要事先知道样本的真实标签,这和有监督学习的先决条件是一样的。然而ARI也可以作为一个通用的指标,用来评估不同的聚类模型的性能。

数学公式:

如果C是真实类别,K是聚类结果,我们定义a和b分别是:

a: 在C和K中都是同一类别的样本对数

b: 在C和K中都是不同类别的样本对数

raw Rand Index 的公式如下:

C2nsamples是样本所有的可能组合对.

RI不能保证在类别标签是随机分配的情况下,其值接近0(极端情况是类别数和样本数相等)

为了解决这个问题,ARI被提出,它具有更高的区分度.

参考:

http://scikit-learn.org/stable/modules/clustering.html#clustering-performance-evaluation

http://blog.csdn.net/sinat_33363493/article/details/52496011

https://en.wikipedia.org/wiki/Rand_index

https://stats.stackexchange.com/questions/89030/rand-index-calculation

你可能感兴趣的:(聚类模型ari)