Я нашел, что Он и Гарсия (2009) являются полезным обзором обучения в несбалансированных классовых проблемах. Вот несколько определенно не всеобъемлющих вещей для рассмотрения:
Основанные на данных подходы:
Можно отобрать класс большинства или класс меньшинства. (Брейман указал, что это формально эквивалентно назначению неоднородных затрат на неправильную классификацию.) Это может вызвать проблемы: недопущение выборки может привести к тому, что учащийся упустит аспекты класса большинства; передискретизация увеличивает риск переобучения.
Существуют методы «информированной недостаточной выборки», которые уменьшают эти проблемы. Одним из них является EasyEnsemble , который независимо выбирает несколько подмножеств из класса большинства и создает несколько классификаторов, комбинируя каждое подмножество со всеми данными класса меньшинства.
SMOTE (Техника избыточной выборки синтетического меньшинства) или SMOTEBoost (комбинируя SMOTE с бустингом) создают синтетические экземпляры класса меньшинства путем создания ближайших соседей в пространстве признаков. SMOTE реализован в R в пакете DMwR (который сопровождает книгу Луиса Торго «Интеллектуальный анализ данных с использованием R, обучение с использованием конкретных примеров», CRC Press 2016 ).
Подходы к модели
Примените специфичные для класса веса в вашей функции потерь (большие веса для случаев меньшинства).
Для подходов, основанных на деревьях, вы можете использовать расстояние Хеллингера в качестве примесной функции узла, как рекомендовано в Cieslak et al. «Деревья решений по расстоянию Хеллингера надежны и нечувствительны к перекосам» ( код Weka здесь .)
Используйте классификатор одного класса , изучая (в зависимости от модели) плотность вероятности или границу для одного класса и рассматривая другой класс как выбросы.
Конечно, не используйте точность как показатель для построения модели. Каппа Коэна - разумная альтернатива.
Модельные подходы к оценке
Если ваша модель возвращает прогнозируемые вероятности или другие оценки, выберите порог принятия решения, который обеспечивает соответствующий компромисс ошибок (используя набор данных, независимый от обучения и тестирования). В R пакет OptimalCutpoints реализует ряд алгоритмов, в том числе чувствительных к стоимости, для определения отсечки.