Как получить TPR и TNR из метрики керас - PullRequest
0 голосов
/ 02 февраля 2019

Я хотел бы получить истинную положительную ставку (TPR) и истинную отрицательную ставку (TNR) в операторе model.compile () в качестве одного из показателей оценки.

Я пытался использовать следующеекод:

model.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ["accuracy", "tpr", "tnr"])

Однако я получаю сообщение об ошибке:

Неизвестная метрическая функция: tpr

Я считаю, что они оба являются известными метриками вКерас, так что я не понимаю эту ошибку.Пожалуйста, помогите

1 Ответ

0 голосов
/ 02 февраля 2019

Как ясно из соответствующих документов Keras , tpr & tnr являются , а не частью собственных метрик Keras;есть соответствующий поток Github , но проблема все еще остается открытой.

Но для двоичного случая, над которым вы, кажется, работаете, просто получить необходимые количества из scikit-learn (простовам нужно будет преобразовать результаты модели в двоичные метки, то есть , а не вероятности);адаптируя пример из документов :

from sklearn.metrics import confusion_matrix
y_true = [0, 1, 0, 1]
y_pred = [1, 1, 1, 0]
cm = confusion_matrix(y_true, y_pred) # careful with the order of arguments!
tn, fp, fn, tp = cm.ravel()
(tn, fp, fn, tp)
# (0, 2, 1, 1)

Получив эти величины, теперь легко вычислить TPR и TNR (см. определения в Wikipedia ):

TPR = tp/(tp+fn)
TPR
# 0.5

TNR = tn/(tn+fp)
TNR
# 0.0

Случай с несколькими классами немного сложнее - см. Мой ответ в Как получить точность, вызвать и f-меру из путаницы в Python .

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