У меня проблема с классификацией примерно 1000 положительных и 10000 отрицательных образцов в тренировочном наборе. Так что этот набор данных довольно несбалансированный. Обычный случайный лес просто пытается пометить все тестовые образцы как мажоритарный класс.
Некоторые хорошие ответы о подвыборке и взвешенном случайном лесе приведены здесь: Каковы последствия для обучения ансамбля дерева с сильно смещенными наборами данных?
Какие методы классификации кроме RF могут решить проблему наилучшим образом?
Ответы:
источник
В таких ситуациях, как правило, нужно отбирать у большинства класс.
Если вы считаете, что у вас слишком мало экземпляров положительного класса, вы можете выполнить передискретизацию, например, выборки 5n экземпляров с заменой из набора данных размера n.
Предостережения:
источник
Повышение градиента также является хорошим выбором здесь. Например, вы можете использовать классификатор повышения градиента в Sci-Kit Learn. Повышение градиента - это принципиальный метод борьбы с дисбалансом классов путем построения последовательных тренировочных наборов на основе неправильно классифицированных примеров.
источник
В дополнение к ответам, опубликованным здесь, если количество положительных примеров слишком мало по сравнению с отрицательными примерами, то это становится проблемой обнаружения аномалий, где положительными примерами являются аномалии.
У вас есть целый ряд методов для обнаружения аномалий, начиная от использования многомерного распределения Гаусса для моделирования всех точек, а затем выбирая те, которые находятся на 2 или 3 стандартного расстояния от среднего значения.
Еще одна пища для размышлений - я видел довольно много людей, которые случайным образом отбирали отрицательные примеры с большим количеством примеров, чтобы оба класса были одинаковыми по количеству. Это полностью зависит от имеющейся проблемы, хотим ли мы, чтобы они были сбалансированы или нет.
источник