问题标签 [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.
machine-learning - scikit加权f1分数计算及使用
我对weighted
sklearn.metrics.f1_score 的平均值有疑问
首先,如果有任何参考证明使用加权 F1 是合理的,我只是好奇在哪些情况下我应该使用加权 F1。
其次,我听说 weighted-F1 已弃用,是真的吗?
第三,实际加权 F1 的计算方式,例如
如何计算上述示例的加权 F1。我虽然应该是(0.8*2/3 + 0.4*1/3)/3,但我错了。
python - 如何使用 sklearn.metrics 计算多标签分类任务的微观/宏观度量?
我有一个多标签分类器产生的结果,我想在 python 中计算微观和宏观精度、召回和 F1 分数sklearn.metrics
,但不能完全弄清楚如何。
我有两个二进制稀疏矩阵,dataOUT
它们dataGT
分别代表同一数据集的分类结果和基本事实。两个矩阵的大小都是nLabels X nSamples
。每个样本都可以用一个或多个标签进行标记,如果分类器用th 标签标记样本,则dataOUT[i,j]
也是如此,否则。1
j
i
0
对于任何给定的类,我可以通过从中提取第行并将它们馈送到i
来轻松计算常规精度、召回率和 F 分数,例如:i
dataOUT
dataGT
sklearn.metrics.precision_recall_fscore_support
但是我如何计算整个数据集的微观和宏观度量,即如何获得单个微观(P,R,F)和单个宏观(P,R,F)三元组,(dataOUT,dataGT)
而不是分别为每个标签?
谢谢!
r - 从 R 中的混淆矩阵的结果计算精度、召回率和 FScore
我有以下混淆矩阵,现在我需要从中计算精度、召回率和 FScore,我该如何使用获得的值来做到这一点?混淆矩阵和统计
根据其他用户的建议,我使用了以下编辑过的代码
python - 一次性计算精度、召回率和 F 分数 - python
准确度、精确度、召回率和 f 分数是机器学习系统中系统质量的衡量标准。它取决于真/假阳性/阴性的混淆矩阵。
给定一个二元分类任务,我尝试了以下方法来获得一个返回准确率、精度、召回率和 f 分数的函数:
但似乎我已经对数据集进行了 4 次冗余循环以获得真/假阳性/阴性。
try-excepts
捕获的倍数ZeroDivisionError
也有点多余。
那么在没有通过数据集的多个循环的情况下获取真/假阳性/阴性计数的pythonic方法是什么?
如何在ZeroDivisionError
没有多个 try-excepts 的情况下以 Python 方式捕获?
我也可以执行以下操作来计算一个循环中的真/假阳性/阴性,但是有没有没有倍数的替代方法if
?:
machine-learning - 不同组大小的精确率和召回率计算
我在任何地方都没有找到这个问题的答案,所以我希望这里的人可以帮助我以及其他有同样问题的人。
假设我有1000 个正样本和1500 个负样本。
现在,假设有950 个 True Positives(正样本被正确归类为正样本)和100 个 False Positives(负样本被错误归类为正样本)。
我应该使用这些原始数字来计算Precision,还是应该考虑不同的组大小?
换句话说,我的精度应该是:
TruePositive / (TruePositive + FalsePositive) = 950 / (950 + 100) = 90.476%
或者应该是:
(TruePositive / 1000) / [(TruePositive / 1000) + (FalsePositive / 1500)] = 0.95 / (0.95 + 0.067) = 93.44%
在第一次计算中,我不考虑每组的样本数量,而在第二次计算中,我使用每个度量与其对应组的比例,以消除由于组的不同而导致的偏差尺寸
r - 在 R 中评估统计模型
我有一个非常大的数据集(ds
)。它的一列是('High' / 'Low')Popularity
类型。factor
我将数据分成 70% 和 30% 以创建训练集 ( ds_tr
) 和测试集 ( ds_te
)。
我使用逻辑回归创建了以下模型:
然后我创建了一个predict
对象(将再做一次ds_te
)
我想找到对应于截止阈值 0.5 的精度值并找到对应于截止阈值 0.5 的召回值,所以我做了:
结果是一个包含许多值的表
如何找到对应于 0.5 截止阈值的特定精度和召回值?
machine-learning - 如何解释几乎完美的准确率和 AUC-ROC 但 f1 分数、准确率和召回率为零
我正在训练 ML 逻辑分类器以使用 python scikit-learn 对两个类进行分类。它们处于极度不平衡的数据中(大约 14300:1)。我得到了几乎 100% 的准确率和 ROC-AUC,但准确率、召回率和 f1 分数为 0%。我知道准确性通常在非常不平衡的数据中没有用,但为什么 ROC-AUC 测量也接近完美?
上面使用逻辑回归,下面使用决策树,决策矩阵看起来几乎相同,但 AUC 有很大不同。
scikit-learn - sklearnaverage_precision_score与precision_score之间的区别
在文档中,它将 average_precision_score 描述为精确召回曲线下的区域。我无法理解该区域的含义?
该指标与原始精度得分有何不同。