Лучшее поколение AUC для нейронной сети с 2 выходами, представляющими двоичную классификацию - PullRequest
0 голосов
/ 26 июня 2019

Итак, у меня есть NN, выход которого для каждого элемента - 2 узла. Каждый узел соответствует выходу другого класса, так как существует два класса, есть два узла. Чтобы получить «вероятностные» значения для каждого узла, применяется функция softmax (2 класса означают, что это действительно сигмовидная активация). Теперь сумма двух узлов равна 1, и их можно считать вероятностями каждого класса.

ex) NN с сигмоидальным выходом: (.8, .2), их много

Теперь я хочу посмотреть на выходные данные для моего тестового набора и сгенерировать AUC. Мой текущий план состоит в том, чтобы взять узел № 1, который является «положительным» классом, и вычесть его из узла № 2 для «порога». Затем с этим значением для каждого образца в наборе тестов я использовал бы одну из многих функций для генерации кривой AUC из вектора порогов. Я думаю, мой вопрос, это кошерный? Я не могу думать о проблеме с этим, но кто знает.

без трубопровода)

out = [[.8,.2], # all are NN outputs put through softmax
   [.5,.5],
   [.2,.8],
   [.9,.1]]

thresholds = outs[:,0] - outs[:, 1]

thresholds = [ 0.6,
           0.0,
          -0.6,
           0.8]

auc_from_thresholds (пороги)

tldr; вывод модели: 2 узла, соответствующие вероятностям каждого класса желаемый результат: AUC для задачи классификации

...