точность и ошибка отзыва при использовании sklearn

Я использую точность 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')

person merklexy    schedule 24.05.2018    source источник


Ответы (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

Поэтому я бы посоветовал вам перейти на последнюю версию

person Vivek Kumar    schedule 24.05.2018