Пакетирование с передискретизацией для моделей с редкими событиями

13

Кто-нибудь знает, было ли описано следующее (и так или иначе), если это звучит как правдоподобный метод изучения прогностической модели с очень несбалансированной целевой переменной?

Часто в CRM-приложениях интеллектуального анализа данных мы будем искать модель, в которой положительное событие (успех) очень редко по сравнению с большинством (отрицательный класс). Например, у меня может быть 500 000 случаев, когда только 0,1% относятся к положительному классу интересов (например, клиент купил). Таким образом, для создания прогнозирующей модели один из методов - это выборка данных, при которой вы сохраняете все экземпляры положительного класса и только выборку экземпляров отрицательного класса, чтобы отношение положительного к отрицательному классу было ближе к 1 (возможно, 25% до 75% от положительного до отрицательного). Чрезмерная выборка, недостаточная выборка, SMOTE и т. Д. - все это методы в литературе.

Что меня интересует, так это объединение базовой стратегии выборки, описанной выше, но с упаковкой отрицательного класса. Что-то вроде этого:

  • Сохраните все положительные экземпляры класса (например, 1000)
  • Сэмплируйте отрицательные экземпляры Клэсса, чтобы создать сбалансированный сэмпл (например, 1000).
  • Подходит модель
  • Повторение

Кто-нибудь слышал об этом раньше? Проблема без упаковки заключается в том, что выборка только из 1000 экземпляров отрицательного класса при наличии 500 000 состоит в том, что пространство предикторов будет редким, и у вас может не быть представления возможных значений / моделей предикторов. Мешки, кажется, помогают этому.

Я посмотрел на rpart, и ничто не «ломается», когда один из образцов не имеет всех значений для предиктора (не прерывается при прогнозировании экземпляров с этими значениями предиктора:

library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))

Есть предположения?

ОБНОВЛЕНИЕ: Я взял реальный набор данных (маркетинговые данные ответов по прямой почтовой рассылке) и случайно разделил его на обучение и проверку. Есть 618 предикторов и 1 двоичная цель (очень редко).

Training:
Total Cases: 167,923
Cases with Y=1: 521

Validation:
Total Cases: 141,755
Cases with Y=1: 410

Я взял все положительные примеры (521) из обучающей выборки и случайную выборку отрицательных примеров того же размера для сбалансированной выборки. Я подгоняю дерево rpart:

models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")

Я повторил этот процесс 100 раз. Затем прогнозировали вероятность Y = 1 в случаях проверочной выборки для каждой из этих 100 моделей. Я просто усреднил 100 вероятностей для окончательной оценки. Я расшифровал вероятности на наборе валидации и в каждом дециле вычислял процент случаев, где Y = 1 (традиционный метод оценки ранжирующей способности модели).

Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10)) 

Вот производительность: введите описание изображения здесь

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

Предполагая эффективность процедуры упаковки в пакеты при редких случаях и больших значениях n и p.

введите описание изображения здесь

B_Miner
источник

Ответы:

7

За исключением включения одних и тех же положительных примеров классов в каждую сумку, это S ^ 3Bagging, как описано в S ^ 3Bagging: Быстрый метод индукции классификатора с подвыборкой и сумкой . (Я не рассматривал эту статью подробно, просто просмотрел ее.)

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

Это может не совсем ответить на ваш вопрос, но отличная статья о различных способах работы с несбалансированными данными - « Изучение несбалансированных данных» . Это похоже на то, что обучение с учетом затрат может быть более уместным в вашем случае. Поскольку вы используете Леса решений, раздел 3.2.3 Чувствительные к затратам деревья решений, вероятно, будут полезны. Здесь утверждается,

Что касается деревьев решений, то чувствительная к затратам подгонка может принимать три формы: во-первых, чувствительные к стоимости корректировки могут быть применены к порогу принятия решения; во-вторых, чувствительные к затратам соображения могут быть даны критериям разделения на каждом узле; и, наконец, чувствительные к затратам схемы обрезки могут быть применены к дереву

Чувствительная к затратам корректировка порога принятия решения в основном означает выбор порога принятия решения на основе производительности ROC или Precision-Recall Curve. В частности, производительность КНР устойчива к несбалансированным данным.

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

В [63] было показано, что три специфические примесные функции, Gini, Entropy и DKM, имеют улучшенную нечувствительность к затратам по сравнению с базовой линией точности / частоты ошибок. Кроме того, эти эмпирические эксперименты также показали, что использование функции DKM обычно дает меньшие необработанные деревья решений, которые в худшем случае обеспечивают точность, сопоставимую с Джини и Энтропией. Подробная теоретическая основа, объясняющая выводы из этих эмпирических результатов, была позже установлена ​​в [49], которая обобщает эффекты роста дерева решений для любого выбора критериев косы.

Что касается обрезки,

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

[23] Н. Джапкович и С. Стивен, «Проблема дисбаланса классов: систематическое исследование», Intelligent Data Analysis, vol. 6, нет 5, стр. 429-449, 2002.

[49] C. Elkan, «Основы обучения с учетом затрат», Proc. Международный совместный конф. Искусственный интеллект, стр. 973-978, 2001.

[63] C. Drummond и RC Holte, «Использование чувствительности к стоимости (In) критериев расщепления дерева решений», Proc. Международный Конф. Машинное обучение, с. 239-246, 2000.

oscully
источник
0

Это очень интересно. Недавно у меня был проект, в котором была похожая ситуация, когда проверка редких событий работает хорошо, в то время как проверка не-событий в самом низком прогнозируемом диапазоне (например, 0,0 - 0,1) выполнялась нестабильно месяц за месяцем. Причины, о которых вы упомянули, из-за большой совокупности не-событий, лучше включать больше образцов в обучающие наборы, чтобы их было достаточно для охвата различных комбинаций переменных.

Маленькое солнышко
источник