sklearn.metrics.accuracy_score函数中是否存在矛盾?

根据我所阅读的内容,Jaccard指数的计算公式是(交集/并集)。Jaccard指数公式

看起来在二元情况下,sklearn.metrics.accuracy_score应该等同于Jaccard指数。然而,当我使用这个函数时,我对得到的结果感到困惑。例如:

from sklearn import metricsy=np.array([0,0,0,0,1,1])y2=np.array([1,1,0,0,1,1])metrics.accuracy_score(y,y2)

这应该会得到一个Jaccard指数为4/(6+6-4)=0.5,对吗?然而,最后一行代码的结果是0.67,显然这是基于相似/总数的计算。我是否误解了Jaccard指数公式?


回答:

你的1维数组被视为6个样本,Jaccard指数的公式是针对每个样本的,如用户指南中的公式所示,而不是跨所有样本。(多类别和多标签的例子可能会帮助澄清这一点。)

在二元分类的情况下,预测的标签是互斥且详尽的,0或1;因此,对于正确的预测,交集的大小为1,否则为0,而并集的大小对于正确的预测为1,否则为2,因此每个样本的Jaccard指数要么是1要么是0。这然后在所有样本中取平均(”…计算Jaccard相似系数的平均值…”来自用户指南),这与准确率相同。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注