为啥 sklearn 在实现 rand 索引时需要真实标签?

Posted

技术标签:

【中文标题】为啥 sklearn 在实现 rand 索引时需要真实标签?【英文标题】:Why does sklearn require the true labels when implementing the rand index ?为什么 sklearn 在实现 rand 索引时需要真实标签? 【发布时间】:2018-04-22 21:29:17 【问题描述】:

我一直在研究评估我的聚类的准确性,兰德指数似乎是文献中非常流行的一种。它是通过对每个集群中的每个项目进行成对比较并根据四个标准为它们分配一个分数来计算的:真阳性、真阴性、假阳性和假阴性或 a、b、c、d。兰德分数是通过将真阳性和真阴性的总和除以所有上述类别的总和来计算的。

我的问题是,为什么 sklearn 需要正确的标签来计算 Rand 指数分数?

【问题讨论】:

没有正确的标签,你怎么知道它是假阳性、真阴性还是真阳性? fp tp 和 tp 是使用成对比较确定的。如果一组中的两个项目相同,则 A 加一。同样,如果它们都不同,则它们被视为负数,并从那里确定分数。 【参考方案1】:

Rand 索引等需要真正的标签(准确地说,它们需要 两个 组标签,并计算它们同意的程度)。所以 sklearn 的实现没有任何问题。

如果 label1(x)==label1(y) AND label2(x)==label2(y),则一对 (x,y) 是正数。 其他三种情况是从切换到不平等。

【讨论】:

以上是关于为啥 sklearn 在实现 rand 索引时需要真实标签?的主要内容,如果未能解决你的问题,请参考以下文章

当我使用较小的浮点数时,为啥 sklearn 中的 KNN 实现会变慢?

为啥 rand() 编译时不包含 cstdlib 或使用命名空间 std?

为啥我自己的逻辑回归实现与 sklearn 不同?

为啥这段代码不用import sklearn就可以使用sklearn函数?

为啥 `sklearn` 和 `statsmodels` 的 OLS 回归实现给出不同的 R^2?

为啥 rand() + rand() 会产生负数?