使用 sklearn 时的精度和召回误差
precision and recall error while using sklearn
我正在使用 sklearn precision and recall 来获得这些分数。我收到一条错误消息,指出值错误。谁能告诉我哪里做错了?
我的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')
精度定义为真阳性与总预测阳性的比率。
precision = tp / (tp + fp)
现在在你的情况下,程序不知道哪个标签被认为是积极的class。所以你需要自己定义它。这样做:
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
所以我建议你升级到最新版本
我正在使用 sklearn precision and recall 来获得这些分数。我收到一条错误消息,指出值错误。谁能告诉我哪里做错了?
我的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')
精度定义为真阳性与总预测阳性的比率。
precision = tp / (tp + fp)
现在在你的情况下,程序不知道哪个标签被认为是积极的class。所以你需要自己定义它。这样做:
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
所以我建议你升级到最新版本