2016-06-21 2 views
1

Я работаю с scikit-learn для задачи классификации, чтобы предсказать выигрыш или потерю возможности.
я использовал кусок кода:Как интерпретировать roc_curve (тест, предсказания) в scikit-learn

fpr, tpr, thresholds =roc_curve(yTest,predictions) 

И результат:

(array([ 0.  , 0.2628946, 1.  ]), 
    array([ 0.  , 0.73692477, 1.  ]), 
    array([2, 1, 0])) 

Я знаю вычисления ППК с помощью РСП, TPR для различных порогов различной в диапазоне (1, 0). В идеале, то, что я знаю, должно быть между 1 и 0.

Но здесь пороговые значения составляют 2,1,0. Что понимать из этого и как интерпретировать это.

Пример кода выглядит нормально:

import numpy as np 
from sklearn import metrics 
y = np.array([1, 1, 2, 2]) 
scores = np.array([0.1, 0.4, 0.35, 0.8]) 
fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2) 
>>>fpr 
array([ 0. , 0.5, 0.5, 1. ]) 
>>>tpr 
array([ 0.5, 0.5, 1. , 1. ]) 
>>> thresholds 
array([ 0.8 , 0.4 , 0.35, 0.1 ]) 

Мой predict_proba (yTest) являются:

[ 0.09573287 0.90426713] 
[ 0.14987409 0.85012591] 
[ 0.16348188 0.83651812] 
..., 
[ 0.13957409 0.86042591] 
[ 0.04478675 0.95521325] 
[ 0.03492729 0.96507271] 
+0

Можете ли вы поделиться значениями в массивах yTest и прогнозов? –

+0

@AbhinavArora: Отредактировал мой вопрос –

ответ

0

Пороги не ограничиваются [0; 1].

Только TPR и FPR являются ставки, т.е. от 0 до 1.

Если вы видите документации, он расскажет вам, как он прибыл на значение 2:

убывающие пороги на решающая функция, используемая для вычисления fpr и tpr. thresholds[0] не предсказывает экземпляров и произвольно устанавливается в max(y_score) + 1.

Если входные данные имеют значения [100,42,42,3.14], то он будет рассматривать пороги [101, 100, 42, 3.14].

Судя по вашим пороговым значениям [2,1,0], вы являетесь не, используя эту функцию в правильном направлении. Вероятно, вы переключили два параметра? Поскольку вывод показывает, что ваши входные оценки равны либо 0, либо 1. На таких данных кривая ROC вырождается, и вы просто используете точность и отзыв. Но если вы включили оценки и метки, вы можете получить реальную кривую ROC.

Смежные вопросы