根据 Pairs 评估 Scikit-learn 中的聚类

Posted

技术标签:

【中文标题】根据 Pairs 评估 Scikit-learn 中的聚类【英文标题】:Evaluation of Clustering in Scikit-learn According to Pairs 【发布时间】:2014-10-03 23:04:28 【问题描述】:

我使用 scikit-learn 对我的数据进行聚类,并希望评估结果。

我想知道是否有一个内置函数可以根据文档对计算 TP、TN、FP、FN,如 Introduction to Information Retrieval, Ch.16, p.359 (http://nlp.stanford.edu/IR-book/pdf/16flat.pdf )?

谢谢, 阿隆

【问题讨论】:

喜欢confusion matrix? @EdChum 混淆矩阵对分类有意义,对聚类没有意义。请参阅***、聚类分析、部分评估。 @Anony-Mousse 但是你不能从混淆矩阵中计算出 TP/TN/FP 和 FN 吗? @EdChum 当您在一个轴上没有类但集群时如何计算混淆矩阵?集群和类之间没有 1:1 的对应关系。这就是您在聚类评估中使用 pairs 的原因。见***! @Anony-Mousse 是的,我明白你的意思了 【参考方案1】:

查看sklearn.metrics.cluster 包和sklearn.metrics.adjusted_rand_score

我不知道他们是否公开了 2 × 2 矩阵,但有计算一些最流行的评估指标的功能。

【讨论】:

谢谢。但我认为实现并没有根据对计算分数,因此产生的值不符合我的期望。 兰德指数(和 ARI)在对上定义。那么,如果不是对,那么它在计算什么? 没错,我的意思是其他流行的评估指标不是根据上面的书所建议的那样按对计算的(如 f1_score)。

以上是关于根据 Pairs 评估 Scikit-learn 中的聚类的主要内容,如果未能解决你的问题,请参考以下文章

Quora Question Pairs 挑战,使用二元交叉熵损失预测两个问题是不是问同一个问题来评估预测

Scikit-learn:用于集群评估的 ARI 分数

如何在 Python 中使用带有 Keras 的 scikit-learn 评估指标函数?

Scikit-learn 微调:在评估前对预测标签进行后处理

如何使用scikit-learn中的持久性模型计算评估指标

评估 scikit-learn GridSearchCV 中交叉验证分数的平均值、标准差