Як Керас обчислює точність?


26

Як Керас обчислює точність з імовірностей класів? Скажімо, у тестовому наборі у нас є 100 зразків, які можуть належати до одного з двох класів. У нас також є список класових імовірностей. Який поріг використовує Керас, щоб призначити вибірку будь-якому з двох класів?


Ви використовуєте model.evaluate в керах?
Хіма Варша

Так, я використовую model.evaluate. Більш конкретно, model.evaluate_generator.
Рагурам


Можливо, пов’язане @SO: Як Керас оцінює точність? )
пустеля

Відповіді:


24

Для двійкової класифікації код метрики точності:

K.mean(K.equal(y_true, K.round(y_pred)))

що говорить про те, що 0,5 - це поріг для розрізнення класів. y_true, звичайно, у цьому випадку має бути 1-х точним.

Це трохи інше для категоричної класифікації:

K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))

що означає "як часто прогнози мають максимум на тому ж місці, що і справжні значення"

Існує також можливість категоричної точності топ-k, яка схожа на попередню, але обчислює, наскільки часто цільовий клас знаходиться в межах прогнозів top-k.


Дякую за відповідь. Чи означає це навіть для двійкової класифікації, етикетки повинні бути кодировані гарячими?
Рагурам

@Raghuram Ні, для двійкової класифікації вам просто потрібно 0 або 1 як клас, немає необхідності в одному гарячому кодуванні їх. Оскільки K.mean (K.equal (y_true, K.round (y_pred))) буде відповідати 2 знакам з плаваючою точкою для кожного випадку, то це повинно бути 0 або 1, а не [0,1], [1,0].
Дивяншу Калла

Для категоричної точності використовуйте categorical_accuracy.
Shital Shah

1
для багатокласової проблеми (з більш ніж двома класами), чи є різниця між використанням "точності" проти "категоричної_акуратності"
Quetzalcoatl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.