Искусственно построение сбалансированного набора обучения является спорным, весьма спорно на самом деле. Если вы делаете это, вы должны эмпирически проверить, что он действительно работает лучше, чем оставить несбалансированный тренировочный набор. Искусственная балансировка тестового набора почти никогда не является хорошей идеей. Тестовый набор должен представлять новые точки данных, когда они входят без меток. Вы ожидаете, что они будут несбалансированными, поэтому вам нужно знать, может ли ваша модель справиться с несбалансированным набором тестов. (Если вы не ожидаете, что новые записи будут несбалансированными, почему все ваши существующие записи несбалансированы?)
Что касается вашей метрики производительности, вы всегда получите то, что просите. Если точность - это не то, что вам нужно в первую очередь в несбалансированном наборе, потому что несбалансированны не только классы, но и затраты на неправильную классификацию, не используйте ее. Если вы использовали точность в качестве метрики и выполнили весь выбор модели и настройку гиперпараметра, всегда выбирая модель с максимальной точностью, вы оптимизируете точность.
Я считаю класс меньшинства положительным классом, это обычный способ присвоения им имен. Таким образом, точность и отзыв, как обсуждено ниже, являются точностью и отзывом класса меньшинства.
- Если единственная важная вещь состоит в том, чтобы идентифицировать все записи класса меньшинства, вы можете взять отзыв. Таким образом, вы принимаете больше ложных срабатываний.
- Оптимизация только точности была бы очень странной идеей. Вы бы сказали своему классификатору, что не проблема недооценивать класс меньшинства. Самый простой способ получить высокую точность - это быть осторожным при объявлении класса меньшинства.
- Если вам нужна точность и отзыв, вы можете принять F-меру. Это гармоническое среднее между точностью и отзывом и, таким образом, штрафует результаты, когда обе метрики расходятся.
- Если вам известны конкретные затраты на неправильную классификацию в обоих направлениях (и прибыль от правильной классификации, если они различаются по классам), вы можете поместить все это в функцию потерь и оптимизировать ее.