Как понять кривую auc_precision_recall в тензорной доске? - PullRequest
0 голосов
/ 25 апреля 2018

Версия:

TensorFlow: 1.6.0
TensorBoard: 1.6.0

Что я делаю и знаком с:

  1. Использование предварительно созданного Estimator tf.estimator.DNNClassifier для обучения модели двоичной классификации с largely skewed dataset (а именно, несбалансированным набором данных).
  2. Итак, мне нужно использовать Precision-Recall кривую, чтобы выбрать оптимальную модель вместо AUC кривой.
  3. Я ничего не изменил на tf.estimator.DNNClassifier (Конечно, я изменил эти три параметра: hidden_units, feature_columns, model_dir).
  4. После того, как точность модели достигла порога и прекратил оптимизацию, я должен продолжить обучение следующим образом: выбрать одну функцию итеративно из всех функций и выполнить обучение, чтобы я мог избавиться от некоторых шумовых функций, насколько это возможно.
  5. Я сделал как Step 4, каждый раз, когда я выбирал функцию, я получал новый результат обучения и новые снимки с кривой auc_precision_recall от TensorBoard. А именно, когда я выбрал FEATURE_A, я получил figure A, выбрал FEATURE_B, я получил figure B и выбрал FEATURE_C я получил figure C.
    Фотографии следующим образом:
    рисунок A , рисунок B , рисунок C
  6. Описания по приведенным выше auc_precision_recall кривым фигурам:
    • x Оси: укажите шаг тренировки.
    • y оси: от 0 до 1 (это то, что я хочу знать: что означает y?).
  7. Ниже приводится стандартная Precision-Recall кривая с этого сайта . (Я вставляю его сюда только для того, чтобы мы могли легко обсудить мою проблему).
    стандартная кривая точности-отзыва
  8. Описания о приведенной выше стандартной кривой Precision-Recall:
    • x Оси: Напомним, диапазон от 0 до 1.
    • y Оси: Точность, диапазон от 0 до 1.

Мои проблемы:

  1. Что означает значение в y осях на кривой TensorBoard auc_precision_recall?
  2. Какая связь между кривой TensorBoard auc_precision_recall и стандартной кривой Precision-Recall?
  3. Почему значение в y осях на кривой TensorBoard auc_precision_recall так странно?
    • В figure A первая точка - (x, y) = (1, 0.5009), почему y равна 0.5009 даже в 1st Step? а также почему большинство других значений также остаются в 0,5 (из figure A мы можем легко прочитать об этом)?
    • Также в figure B первая точка равна (x, y) = (7, 0.4625), почему это значение y (0,4625) не равно значению около 0 даже на первых нескольких шагах обучения, как показывает figure C?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Чтобы ответить на вопросы 1 и 2. AUC означает площадь под кривой.Таким образом, вы смотрите на область под кривой точного восстановления (PR).Ось Y дает вам эту область, которая находится между 0 и 1, потому что это минимальные и максимальные области, достижимые на кривой PR.

0 голосов
/ 21 мая 2018

У меня есть ответ: это ошибка в тензорном потоке версии 1.6.0, вызванная неправильным способом ( trapezoidal ) для вычисления значения AUC_PR, и эта ошибка была исправлена ​​в последняя версия 1.8.0 this commit . Поэтому, если вы тренируетесь с сильно искаженным набором данных, не забудьте обновить tenorflow до последней версии 1.8.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...