Штучне конструювання збалансованого навчального набору є дискусійним, насправді досить суперечливим. Якщо ви це зробите, вам слід емпірично перевірити, чи справді це працює краще, ніж залишати навчальний набір незбалансованим. Штучне врівноваження тестового набору майже ніколи не є хорошою ідеєю. Тестовий набір повинен представляти нові точки даних, оскільки вони надходять без міток. Ви очікуєте, що вони будуть неврівноваженими, тому вам потрібно знати, чи може ваша модель обробляти незбалансований тестовий набір. (Якщо ви не очікуєте, що нові записи будуть незбалансовані, чому всі ваші існуючі записи не збалансовані?)
Що стосується показників ефективності, ви завжди отримаєте те, що просите. Якщо точність - це не те, що вам потрібно в першу чергу в неврівноваженому наборі, оскільки не тільки класи, але і витрати на помилкову класифікацію є неврівноваженими, тоді не використовуйте її. Якщо ви використовували точність як метричну та виконували весь вибір своєї моделі та налаштування гіперпараметрів, завжди беручи одну з найкращою точністю, ви оптимізуєте для точності.
Я сприймаю клас меншості як позитивний клас, це звичайний спосіб їх називання. Таким чином, точність і згадування, як обговорювалося нижче, є точністю і відкликанням класу меншин.
- Якщо єдине важливе - визначити всі записи класів меншин, ви можете згадати. Таким чином, ви приймаєте більше помилкових позитивних результатів.
- Оптимізація лише точності була б дуже дивною ідеєю. Ви б сказали своєму класифікатору, що недостатньо визначити клас меншості не проблема. Найпростіший спосіб досягти високої точності - бути обережним у декларуванні класу меншин.
- Якщо вам потрібна точність і відкликання, ви можете вжити F-міру. Це гармонійне середнє значення між точністю та відкликанням, і таким чином карає результати, коли обидві метрики розходяться.
- Якщо ви знаєте конкретні витрати на помилкову класифікацію в обох напрямках (і прибутки від правильної класифікації, якщо вони різні для класу), ви можете поставити все це у функцію збитку та оптимізувати її.