使用 scikit-learn 计算精度时出现 ValueError

ValueError in computing precision using scikit-learn

from sklearn.metrics import precision_score

precision_score(expected, predicted)

预期是 array([ 4., 3.])

预测为array([ 2., 4.])

我明白了。错误:*** ValueError: pos_label=1 is not a valid label: array([ 2., 3., 4.])

如何解决这个问题?

multiclass 标签需要 average 参数。

否则您需要将 pos_label 设置为两个数组中的 class 标签之一,即 2、3 或 4:

>>> # score for all classes
>>> precision_score(expected, predicted, average=None)
array([ 0.,  0.,  0.])

>>> # score for each class
>>> precision_score(expected, predicted, pos_label=2)
0.0
>>> precision_score(expected, predicted, pos_label=3)
0.0
>>> precision_score(expected, predicted, pos_label=4)
0.0

参考: sklearn.metrics.precision_score