问题标签 [precision-recall]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3645 浏览

python - Precision-Recall曲线或ROC曲线是否可能是一条水平线?

我正在对不平衡数据进行二元分类任务。

由于在这种情况下准确性没有那么大的意义。我使用 Scikit-Learn 计算 Precision-Recall 曲线和 ROC 曲线以评估模型性能。

但是我发现当我使用带有大量估计器的随机森林时,两条曲线都是一条水平线,当我使用 SGD 分类器来拟合它时也会发生这种情况。

ROC图表如下:

在此处输入图像描述

以及 Precision-Recall 图表:

在此处输入图像描述

由于随机森林的行为是随机的,我不会在每次运行时都得到一条水平线,有时我也会得到一条规则的 ROC 和 PR 曲线。但水平线更为常见。

这是正常的吗?还是我在代码中犯了一些错误?

这是我的代码片段:

0 投票
1 回答
2076 浏览

python - 在scikit的precision_recall_curve中,为什么threshold与recall和precision的维度不同?

我想看看精度和召回率如何随阈值而变化(不仅仅是彼此)

回报:

因此,我不能将它们绘制在一起。关于为什么会出现这种情况的任何线索?

0 投票
0 回答
496 浏览

java - lucene 中的召回率和精度

我是新的 lucene 用户。我正在尝试计算查询的召回率/精度,我想知道 lucene 是否提供了一种简单的方法来做到这一点。

目前,我有许多与给定查询匹配的文档。然后我正在搜索,我正在找回所有的点击量。然后,我将从 lucene 返回的文档数(命中大小)除以应该获得的文档数。这就是我计算召回率的方式。

为了精确起见,我只获取每个相关文档的 hits.score() 。我不确定我是否走在正确的轨道上,或者是否有更简单/更好的方法来做到这一点。我将不胜感激。

0 投票
0 回答
202 浏览

web-crawler - 如何自动化集中网络爬虫的评估(精度和召回)

有一个关于此的问题,但用户对了解precisionrecallF1 score感到满意(可能?) ,所以我将扩展它:

要计算准确率和召回率,您需要 TP、FN、TN 和 FP 值。开箱即用,经过爬行,你知道:

  • TP + FP(被选为相关)
  • TN + FN(其余被爬取丢弃)

困难的部分似乎是通过从爬网集中找到真正相关的页面来分离这些总和(TPFN - 未加起来)

验证文档的相关性,我可以手动完成,除了应该实际测试的爬虫的相关性功能。在我的例子中,它是被抓取页面的TF-IDF和用户给出的主题文档之间的余弦相似度。

由于我想在数百个已爬网页面上对其进行测试,您如何使用精度和召回率进行正确性评估,而无需实际手动验证每个已爬网页面?此外,还有其他方法可以评估专注的网络爬虫吗?

0 投票
1 回答
969 浏览

recommendation-engine - 如何在推荐系统上设定目标?(平均平均精度,baselineRmse)

我开始使用ALS 算法开发离线推荐系统。我需要为系统设定一个目标。

所以我想知道用于评估推荐系统的标准。我已经知道MAP(平均精度)和对baselineRmse的改进,我想知道:在现代推荐系统中这些标准的性能如何设定我的目标。

0 投票
1 回答
20332 浏览

r - 多类模型的准确率、精度和召回率

如何从混淆矩阵中计算每个类的准确率准确率和召回率?我正在使用嵌入式数据集 iris;混淆矩阵如下:

我使用 75 个条目作为训练集和其他用于测试:

0 投票
1 回答
101 浏览

scikit-learn - 需要帮助将 scikit-learn 应用于这个不平衡的文本分类任务

我有一个多类文本分类/分类问题。我有一组具有K不同互斥类的地面实况数据。这是一个两方面的不平衡问题。首先,有些课程比其他课程更频繁。其次,我们对某些类别比其他类别更感兴趣(这些类别通常与其相对频率呈正相关,尽管有些类别相当罕见)。

我的目标是开发单个分类器或它们的集合,以便能够以k << K高精度(至少 80%)对感兴趣的类别进行分类,同时保持合理的召回率(什么是“合理的”有点模糊)。

我使用的特征大多是典型的基于 unigram-/bigram 的特征加上一些来自正在分类的传入文档的元数据的二进制特征(例如,它们是通过电子邮件还是通过网络表单提交的)。

由于数据不平衡,我倾向于为每个重要类开发二元分类器,而不是像多类 SVM 这样的单一分类器。

实现了哪些 ML 学习算法(二进制或非二进制)scikit-learn允许将训练调整到精度(例如召回或 F1),我需要为此设置哪些选项?

哪些数据分析工具scikit-learn可用于特征选择,以缩小可能与特定类别的面向精度的分类最相关的特征?

这并不是一个真正的“大数据”问题:K大约是大约100,可供我用于训练和测试的样本总数大约是。k15100,000

谢谢

0 投票
1 回答
3058 浏览

machine-learning - 如何解释这个三角形的 ROC AUC 曲线?

我有 10 多个特征和一万个案例来训练逻辑回归来对人们的种族进行分类。第一个例子是法语 vs 非法语,第二个例子是英语 vs 非英语。结果如下:

但是,我得到了一些看起来很奇怪的 AUC 曲线,它们是三角形而不是锯齿状的圆形曲线。关于我为什么会变得这样的形状有什么解释吗?我犯了什么可能的错误?

在此处输入图像描述 在此处输入图像描述

代码:

0 投票
0 回答
2325 浏览

apache-spark - SCALA Spark环境中决策树的Precision、Recall、Accuracy计算

我正在尝试计算决策树的精度、召回率、准确性。这与先前关于同一程序的问题有关,尽管上下文不同。请找到链接以查看所有代码: 将决策树训练分类器的模型输出保存为 Spark Scala 平台中的文本文件

计算代码如下:

Precision=98.52% 和 Recall= 98.52%,这似乎不太可能,因为,

以上是Confusion Matrix的Spark计算。

安排,

因此,精度 = TP/(TP+FP)=20/(20+2) =0.9091 召回率 = TP/(TP+FN) = 20/(20+251) =0.074。

如果我错了,请纠正我。如果我将 (0,0) 组视为 True Positives(TP),那么 Precision 和 Recall 也将不一样。但是根据上面的代码,Spark out 显示相同。

有建议和帮助会很棒。提前致谢。

我想知道如何从可以转换为字符串的混淆矩阵中计算精度、召回率和准确率。

0 投票
1 回答
4731 浏览

machine-learning - 良好的 ROC 曲线但较差的精确召回曲线

我有一些我不太了解的机器学习结果。我正在使用 python sciki-learn,有大约 14 个特征的 2+ 百万数据。“ab”的分类在精确召回曲线上看起来很糟糕,但 Ab 的 ROC 看起来与大多数其他组的分类一样好。这有什么可以解释的?

在此处输入图像描述

在此处输入图像描述