支持 = 'None'

Support = 'None'

使用下面的代码,我得到 precisionrecallF scores 的值,但我得到 Nonesupport

import numpy as np
from sklearn.metrics import precision_recall_fscore_support
ytrue = np.array(['1', '1', '1', '1', '1','1','1','1','0'])
ypred = np.array(['0', '0', '0', '1', '1','1','1','1','0'])
precision_recall_fscore_support(ytrue, ypred, average='weighted')

输出:

(0.91666666666666663, 0.66666666666666663, 0.72820512820512828, None)

我检查了 http://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html 但我发现有点不清楚为什么是 None

问题:

  1. 为什么我的输出中 support 等于 None
  2. 如何获得非None输出?

支持没有错...支持,同时提供average。文档对此有点神秘,看看 implementation

Why is support equal to None in my output?

如果提供了 average 的值,则返回 None 以获得支持

How do I get a non-None output?

不要为 average 提供值。如果您仍想使用 weighted 并需要支持,只需执行类似

的操作
> from sklearn.metrics import confusion_matrix
> np.sum(confusion_matrix(ytrue, ypred), axis=1)
array([1, 8])