Как оценить модель Pytorch с помощью таких показателей, как точность и отзыв? - PullRequest
0 голосов
/ 08 июля 2020

Я обучил простую нейронную сеть Pytorch на некоторых данных и теперь использую sh для ее тестирования и оценки с использованием таких показателей, как точность, отзыв, f1 и точность. Я тщательно просмотрел документацию Pytorch и не смог найти никаких классов или функций для этих показателей. Затем я попытался преобразовать предсказанные метки и фактические метки в массивы numpy и использовать метрики scikit-learn, но предсказанные метки, похоже, не равны 0 или 1 (мои метки), а вместо этого являются непрерывными значениями. Из-за этого метрики scikit-learn не работают. Документация Fast.ai тоже не имела особого смысла, я не мог понять, какой класс унаследовать для точности et c (хотя я смог вычислить точность). Мы будем очень благодарны за любую помощь.

1 Ответ

1 голос
/ 10 июля 2020

Обычно при настройке двоичной классификации ваша нейронная сеть будет выводить вероятность того, что событие произойдет (например, если вы используете сигмовидную активацию и один нейрон на выходном слое), которая представляет собой непрерывное значение от 0 до 1 • Чтобы оценить точность и отзывчивость вашей модели (например, с помощью scikit-learn precision_score и recall_score), необходимо преобразовать вероятность вашей модели в двоичное значение. Это достигается за счет определения порогового значения вероятности вашей модели. (Для обзора пороговых значений, пожалуйста, взгляните на эту ссылку: https://developers.google.com/machine-learning/crash-course/classification/thresholding)

Scikit-learn precision_recall_curve (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_curve.html) обычно используется для понимания того, как ведут себя показатели точности и запоминания для разных пороговых значений вероятности. Анализируя значения точности и отзыва для каждого порога, вы сможете указать лучший порог для вашей проблемы (вам может потребоваться более высокая точность, поэтому вы будете стремиться к более высоким пороговым значениям, например, 90%; или вы можете захотеть иметь сбалансированный точность и отзыв, и вам нужно будет проверить порог, который дает лучший результат f1 для вашей проблемы). Хороший обзор topi c можно найти в следующей ссылке: https://machinelearningmastery.com/threshold-moving-for-imbalanced-classification/

Надеюсь, это может помочь.

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