【问题标题】:precision and recall error while using sklearn使用 sklearn 时的精度和召回错误
【发布时间】:2018-11-03 15:01:24
【问题描述】:

我正在使用 sklearn 精度和召回率来获得这些分数。我收到一个错误提示值错误。谁能告诉我哪里做错了?

我的y_test如下

443     positive
3615    positive
2030    negative
2993    positive
2870    positive
2907    negative
2215    positive

我的预测如下

['positive' 'positive' 'positive' ..., 'positive' 'positive' 'positive']

代码:

from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
precision_score(y_test, pred)

错误:

ValueError: pos_label=None is not a valid label: array(['negative', 'positive'], 
      dtype='<U8')

【问题讨论】:

    标签: scikit-learn precision-recall


    【解决方案1】:

    精度定义为真阳性与总预测阳性的比率。

    precision = tp / (tp + fp)
    

    现在,在您的情况下,程序不知道哪个标签被视为正类。所以你需要自己定义。这样做:

    precision_score(y_test, pred, pos_label='positive')
    

    此外,您显示的错误:pos_label=None is not a valid label 表明您可能拥有旧版本的 scikit。较新的版本应该抛出此错误(如果未指定 pos_label):

    pos_label=1 is not a valid label
    

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

    【讨论】:

      猜你喜欢
      • 2021-05-05
      • 2018-07-04
      • 2020-06-09
      • 1970-01-01
      • 2018-01-20
      • 2017-05-28
      • 2021-09-25
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多