精度和兰德指数 (R) 之间的差异

机器算法验证 聚类 准确性 模型评估
2022-03-24 06:16:26

我很困惑,当我在维基百科上阅读“从数学的角度来看,兰德指数与准确性有关,但即使不使用类标签也适用。” 这里和这里的兰德指数公式

但是当我在 R 中使用化石包中的rand.index函数和 MLmetrics 中的Accuracy函数时,它并没有给出相同的答案

> Accuracy(predicted, real) [1] 0.8266667

> rand.index(predicted,real) [1] 0.7114989

请有人向我解释这两者之间的区别以及我应该使用哪一个?

注意:我使用 k-medoids 聚类算法(集群包中的函数 pam)

3个回答

兰德指数是不在原始数据中计算的准确度(除非您拥有类 1 是集群 1 的数据,否则它不起作用)。

相反,它是对点对的准确性,这对于重命名集群是不变的。

在二元分类中,准确度的常见定义是:(TP+TN)/(TP+FP+FN+TN),这应该使方程的相似性一目了然。

用于计算 RI 的混淆矩阵与准确度的混淆矩阵不同。兰德指数 (RI) 中混淆矩阵的定义:

+--------------------------------+--------------------------------------+
| TP:                            | FN:                                  |
| Same class + same cluster      | Same class + different clusters      |
+--------------------------------+--------------------------------------+
| FP:                            | TN:                                  |
| different class + same cluster | different class + different clusters |
+--------------------------------+--------------------------------------+

这两者之间的另一个区别是,与准确性不同,RI 主要用于聚类(无监督学习)。

学习 RI 的最佳链接是 Introduction to Information Retrieval book: https ://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html

准确性对集群命名很敏感;但是,RI 不是。

要记住的几点:

  1. 兰德指数着眼于任何两种聚类方法之间的相似性。通常,这里没有“真实”标签。而为了计算准确性,您需要将真实标签与预测标签进行比较。
  2. Has QUIT--Anony-Mousse 回答一样,兰德指数寻找数据集中两点之间的关系,而不是一个点与其真实标签的关系。

这是一些可视化:

  • 如果方法 1 和方法 2 是两种聚类方法,那么它们的 Rand Index 将等于 1。
  • 如果方法 2 表示参考聚类(两种颜色表示不同的类别),则准确度将为 0。

希望这可以帮助。

在此处输入图像描述