我第一次使用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))
但我得到的每个指标都有两个值
precision: [0.67420814 0.67032967]recall: [0.62343096 0.71764706]fscore: [0.64782609 0.69318182]support: [239 255]
为什么每个评估指标都有两个值?
以及如何获得标准的精确度/召回率/F1分数?
回答:
我不确定你具体指的是哪个评分函数,我认为你使用的是sklearn库中的.score()函数,如果是这样的话,以下是答案。
ParametersX : array-like, shape = (n_samples, n_features)测试样本。y : array-like, shape = (n_samples) or (n_samples, n_outputs)对于X的真实值。sample_weight : array-like, shape = [n_samples], optional样本权重。**Returns**score : floateither accuracy or R^2 of self.predict(X) wrt. y.
在你的情况下,我认为输出中有两个类别,因此它返回了两个值。例如:类别1的精确度是0.67420814,类别2的精确度是0.67032967
这里有一个链接可能会对你有帮助,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)库,这样可以减少你的工作量。