Это вопрос в целом, не относящийся к какому-либо методу или набору данных. Как мы решаем проблему дисбаланса классов в обучении с использованием контролируемой машины, где число 0 составляет около 90%, а число 1 составляет около 10% в вашем наборе данных. Как оптимально обучить классификатор.
Одним из способов, которым я следую, является выборка, чтобы сбалансировать набор данных, а затем обучить классификатор и повторить это для нескольких выборок.
Я чувствую, что это случайно, есть ли рамки для решения подобных проблем.
Это сильно зависит от метода обучения. Большинство подходов общего назначения имеют один (или несколько) способов справиться с этим. Распространенным решением является назначить более высокий штраф за неправильную классификацию для класса меньшинства, заставляя классификатор распознавать их (SVM, логистическая регрессия, нейронные сети, ...).
Изменение выборки также возможно, как вы упомянули. В этом случае избыточная выборка для класса меньшинства обычно является лучшим решением, чем недостаточная выборка для класса большинства.
Некоторые методы, такие как случайные леса, не нуждаются в каких-либо модификациях.
источник
Часто проблема заключается не в частоте, а в абсолютном количестве случаев в классе меньшинства. Если у вас нет достаточного отклонения в цели по сравнению с изменением характеристик, это может означать, что алгоритм не может классифицировать вещи очень точно.
Одна вещь состоит в том, что штраф за неправильную классификацию может использоваться на этапе классификации, а не на этапе оценки параметра, если таковой имеется. Некоторые методы не имеют понятия параметра, они просто создают прямые метки классов или вероятности классов.
Когда у вас есть вероятностный оценщик, вы можете принять решение о классификации на основе теоретико-информационного обоснования или комбинации стоимости бизнеса.
источник
Добавьте два трюка: 1. используйте CDF, посчитайте частоту в ваших данных обучения или используйте очень большую проверку (если ваш набор тестов не изменится, но набор проверки должен иметь то же распределение с набором обучения), затем сортируйте свой прогноз и получите первые X% (вы считаете частоту ранее) для одного класса, а другие - это / 2. взвешенная выборка, модель будет стремиться к взвешенной выборке, вы можете использовать выборочную дисперсию v. например. весит = 1/2 (1- (vmax - vi) / vmax)
источник