Scikit learn 使用sklearn时的精度和召回错误

Scikit learn 使用sklearn时的精度和召回错误,scikit-learn,precision-recall,Scikit Learn,Precision Recall,我正在使用sklearn precision和recall获得这些分数。我说值错误时出错。谁能告诉我哪里做错了 我的y_测试如下 443 positive 3615 positive 2030 negative 2993 positive 2870 positive 2907 negative 2215 positive ['positive' 'positive' 'positive' ..., 'positive' 'positive' 'pos

我正在使用sklearn precision和recall获得这些分数。我说值错误时出错。谁能告诉我哪里做错了

我的y_测试如下

443     positive
3615    positive
2030    negative
2993    positive
2870    positive
2907    negative
2215    positive
['positive' 'positive' 'positive' ..., 'positive' 'positive' 'positive']
我的预测如下

443     positive
3615    positive
2030    negative
2993    positive
2870    positive
2907    negative
2215    positive
['positive' 'positive' 'positive' ..., 'positive' 'positive' 'positive']
代码:

错误:

ValueError: pos_label=None is not a valid label: array(['negative', 'positive'], 
      dtype='<U8')
ValueError:pos_label=None不是有效的标签:数组(['negative','positive']),

dtype='精度定义为真阳性与总预测阳性的比率

precision = tp / (tp + fp)
现在,在您的情况下,程序不知道哪个标签将被视为正类。因此,您需要自己定义它。请执行以下操作:

precision_score(y_test, pred, pos_label='positive')
此外,您显示的错误:
pos\u label=None不是有效的标签
表明您可能拥有较旧版本的scikit。较新版本应引发此错误(如果未指定
pos\u label
):

所以我建议你升级到最新版本