2015-05-05 5 views
0

Мне нужно составить таблицу с значениями TPR и FPR, а также точностью и отзывом. Я использую функции roc_curve и precision_recall_curve из пакета sklearn.metrics в python. Моя проблема в том, что каждая функция дает мне другой вектор для пороговых значений, и мне нужно только одно, чтобы объединить значения в виде столбцов в одной таблице. Может ли кто-нибудь мне помочь?Как получить одинаковые значения пороговых значений для обеих функций precision_recall_curve и roc_curve в sklearn.metrics

Заранее благодарен

+0

Я думаю, что они должны дать вам те же самые значения, правда? В противном случае вы всегда можете интерполировать .... –

ответ

0

Пороговые значения имеют два основных отличия.

  1. Заказы разные. roc_curve имеет пороговые значения в порядке убывания, а precision_recall_curve имеет пороговые значения в порядке возрастания.

  2. Номера разные. В roc_curve, n_thresholds = len(np.unique(probas_pred)), а в precision_recall_curve номер n_thresholds = len(np.unique(probas_pred)) - 1. В последнем наименьшее пороговое значение от roc_curve не включено. В то же время последние значения точности и возврата равны 1. и 0. соответственно без соответствующего порога. Поэтому количество элементов для tpr, fpr, точность и отзыв одинаковы.

Итак, вернемся к вашему вопросу, как сделать таблицу для включения tpr, fpr, точности и отзыва с соответствующими порогами? Вот шаги:

  1. выбросьте последнюю точность и напомнят значение
  2. Reverse точности и вспомнить значения
  3. вычисления значений точности и вспомнить, соответствующие самую низкую пороговую величину из порогов roc_curve
  4. Поместите все значения в ту же таблицу

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

  • Нет связанных вопросов^_^