为什么 precision_recall_fscore_support returns 2 个值?

Why precision_recall_fscore_support returns 2 values?

我是第一次使用precision_recall_fscore_support

precision, recall, fscore, support = score(y_test, y_pred)


print('precision: {}'.format(precision))
print('recall: {}'.format(recall))
print('fscore: {}'.format(fscore))
print('support: {}'.format(support))

但我得到每个值 2 个值

precision: [0.67420814 0.67032967]
recall: [0.62343096 0.71764706]
fscore: [0.64782609 0.69318182]
support: [239 255]

为什么我每次评价都有2个值?

以及如何获得标准 precision/recall/f1score?

我不确定你在说什么分数,我相信它是 sklearn 库中的 .score(),如果是这样,那么下面就是答案。

Parameters
X : array-like, shape = (n_samples, n_features)
Test samples.
y : array-like, shape = (n_samples) or (n_samples, n_outputs)
True values for X.
sample_weight : array-like, shape = [n_samples], optional
Sample weights.
**Returns**
score : float
either accuracy or R^2 of self.predict(X) wrt. y.

在你的情况下,我相信你在 o/p 中有 2 个 类,因此它返回 2 个值。 e.x:class1精度为0.67420814,class2精度为0.67032967

这里是 link 可能对你有帮助,https://www.kite.com/python/docs/sklearn.kernel_ridge.KernelRidge.score

我建议您使用 classification_report(https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html) 库,它可以最大限度地减少您的工作量。