Как оценить точность на большом наборе данных? - PullRequest
2 голосов
/ 19 января 2020

Учитывая, что у меня есть модель глубокого обучения (передача от бывшего коллеги). По какой-то причине набор train / dev отсутствует.

В моей ситуации я хочу классифицировать свой набор данных на 100 категорий. Набор данных крайне несбалансирован. Размер набора данных составляет около десятков миллионов

Прежде всего, я запускаю модель и получаю прогноз для всего набора данных.

Затем я выбираю 100 записей в каждой категории (согласно прогнозу ) и получил набор из 10000 тестов.

Затем я пометил основную истинность каждой записи для набора тестов и вычислил точность, отзыв, f1 для каждой категории и получил F1-микро и F1-макро.

Как оценить точность или другие метрики для всего набора данных? Верно ли, что я использую взвешенную сумму точности каждой категории (вес - это доля прогнозирования в целом) для оценки?

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

1 Ответ

0 голосов
/ 19 января 2020

Проблема, если вы берете средневзвешенное значение, состоит в том, что если ваш классификатор работает хорошо в классе большинства, но плохо в классах меньшинства (что является типичным сценарием), он не будет отражен в счете.

Один из рекомендуемых подходов заключается в использовании сбалансированной оценки точности (см. здесь для реализации обучения Scikit). По сути, это среднее всех баллов отзыва: для каждого наблюдения в классе он смотрит, сколько из них было правильно классифицировано, и усредняет это по всем классам. Это даст вам разумный общий балл для отчета.

...