Каковы последствия для обучения ансамбля дерева с сильно смещенными наборами данных?

14

У меня есть сильно смещенный набор двоичных данных - у меня в 1000 раз больше примеров отрицательного класса, чем положительного. Я хотел бы обучить ансамбль дерева (например, дополнительные случайные деревья или случайный лес) на этих данных, но сложно создать обучающие наборы данных, которые содержат достаточно примеров положительного класса.

Каковы будут последствия применения стратифицированного подхода к выборке для нормализации числа положительных и отрицательных примеров? Другими словами, является ли плохой идеей, например, искусственно раздувать (путем повторной выборки) количество положительных примеров в учебном наборе?

галламин
источник

Ответы:

10

Да, это проблематично. Если вы переизбираете меньшинство, вы рискуете переобучить. Если вы отбираете образец большинства, вы рискуете пропустить аспекты класса большинства. Кстати, стратифицированная выборка эквивалентна распределению неравномерных затрат на неправильную классификацию.

Альтернативы:

(1) Независимая выборка нескольких подмножеств из класса большинства и создание нескольких классификаторов путем объединения каждого подмножества со всеми данными класса меньшинства, как предложено в ответе @Debasis и описано в этой статье EasyEnsemble ,

(2) SMOTE (Техника избыточной выборки синтетического меньшинства) или SMOTEBoost (объединение SMOTE с усилением) для создания синтетических экземпляров класса меньшинства путем создания ближайших соседей в пространстве признаков. SMOTE реализован в R в пакете DMwR .

MattBagg
источник
11

Я бы порекомендовал тренироваться на более сбалансированных подмножествах ваших данных. Обучение случайного леса на множествах случайно выбранных положительных примеров с аналогичным количеством отрицательных выборок. В частности, если отличительные признаки демонстрируют большую дисперсию, это будет довольно эффективно и позволит избежать чрезмерного соответствия. Однако при стратификации важно найти баланс, поскольку переоснащение может стать проблемой независимо. Я бы посоветовал посмотреть, как модель работает со всем набором данных, затем постепенно увеличивать соотношение положительных и отрицательных выборок, приближаясь к четному соотношению, и выбирать тот, который максимизирует вашу метрику производительности на некоторых репрезентативных данных.

Этот документ кажется довольно актуальным http://statistics.berkeley.edu/sites/default/files/tech-reports/666.pdf, в нем говорится о том, weighted Random Forestчто более сурово наказывает неправильную классификацию класса меньшинства.

Indico
источник
4

Быстрый, легкий и часто эффективный способ приблизиться к этому дисбалансу состоит в том, чтобы случайным образом отобрать больший класс (который в вашем случае является отрицательным классом), выполнить классификацию N раз с членами из двух классов (один полный и другой субдискретизации) и выведите средние значения метрик, причем среднее значение рассчитывается по N (скажем, 1000) итераций.

Более методичным подходом было бы выполнить алгоритм Mapping Convergence (MC), который включает в себя идентификацию подмножества сильных отрицательных выборок с помощью одноклассного классификатора, такого как OSVM или SVDD, и затем итеративно выполнять двоичную классификацию на множестве сильных отрицательных и положительных образцов. Более подробную информацию об алгоритме MC можно найти в этой статье .

Debasis
источник
0

Как упомянуто выше, лучший способ состоит в том, чтобы повторно выбирать основной класс N раз (выборка без замены), и каждый раз размер отрицательного класса должен быть равен размеру положительного класса. Теперь можно обучить N различных классификаторов, и для их оценки можно использовать среднее значение.

Другой способ - использовать технику начальной загрузки. Это может привести к переоснащению, но стоит попробовать, а затем при необходимости можно упорядочить модель, чтобы избежать переоснащения.

ОЗУ
источник