Смещенные данные в машинном обучении


18

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

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

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

  • Теперь единственные (помеченные) данные, которые у вас есть, от клиентов, которые были приняты набором правил, потому что только после принятия вы увидите, платит ли кто-то или нет (очевидно). Вы не знаете, насколько хорош набор правил и насколько они повлияют на распределение платных и неоплачиваемых. Кроме того, у вас есть немаркированные данные от клиентов, которые были отклонены, опять же из-за набора правил. Таким образом, вы не знаете, что случилось бы с этими клиентами, если бы они были приняты.

Например, одним из правил может быть: «Если возраст клиента <18 лет, то не принимайте»

Классификатор не может научиться работать с клиентами, отфильтрованными по этим правилам. Как классификатор должен изучать образец здесь?

Игнорирование этой проблемы приведет к тому, что модель подвергнется воздействию данных, с которыми она никогда раньше не сталкивалась. По сути, я хочу оценить значение f (x), когда x находится вне [a, b] здесь.


8
Обычно это делается при оценке кредитного риска, если не отфильтровать определенную долю заявителей по правилам. Небольшое количество кандидатов поступают случайным образом и помечаются как таковые.
Мэтью Друри,

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

1
Когда я объясняю эту проблему неспециалистам, я рисую облако (реальность) и многоугольник, приближающий облако (модель). Я показываю ложноположительные ошибки и ложноотрицательные ошибки. Наглядно видно, что мне нужны обе ошибки для улучшения модели, чтобы лучше приблизить облако.
MSalters

Готовлю свою презентацию прямо сейчас. Эта аналогия действительно пригодится, спасибо!
Лаксан Натан

Это называется дилеммой разведки и эксплуатации.
seanv507

Ответы:


12

Вы правы, что вас беспокоит - даже самые лучшие модели могут потерпеть неудачу, если распределение данных вне выборки значительно отличается от распределения данных, на которых модель была обучена / протестирована.

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

Например, предположим, ваша модель обнаруживает, что в помеченном вами наборе данных чем моложе клиент, тем выше вероятность того, что он окажется по умолчанию. Тогда может быть разумным предположить, что ваша модель будет работать хорошо, если вы удалили предыдущий фильтр «Если возраст клиента <18 лет, то не принимайте».


4

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

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


Я согласен, нет «решения» для моей проблемы. Но, может быть, есть несколько практических советов о том, как работать с такими проблемами.
Лаксан Натан

2

Ваши правила могут дать вам возможность увеличить объем данных . Скопируйте положительный образец, измените возраст до 17, а затем пометьте его как отрицательный образец.

Эта процедура не обязательно будет тривиальной или полезной для всех наборов данных. Я работаю с данными НЛП, и в этой области сложно добиться успеха. Например, если у вас есть другие функции, связанные с возрастом, вы можете получить нереальные образцы. Тем не менее, это дает возможность представить систему как образцы, которые не попали в набор данных.


Добавление шума к данным наверняка является способом решения этой проблемы. Но только в немногих случаях, когда данные клиента могут быть легко классифицированы. Я бы не стал делать это в такой степени, чтобы это снова привело к «смещенному» субъективному восприятию знаний в предметной области, что привело к ретроспективному столкновению предполагаемых знаний.
Лаксан Натан

2

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


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

2

С практической точки зрения трудно / неразумно просить модель предсказать что-то на случаи, которые невозможны в текущей системе (без бесплатного обеда).

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

Как только вам удалось убедить людей, ответственных за систему, сделать это, вы можете использовать методы оценки вне политики, такие как выборка важности, чтобы задавать вопросы «что, если». Например, каков будет ожидаемый кредитный риск, если мы позволим людям, которые в настоящее время подпадают под действие правил, взять кредит. Можно даже смоделировать влияние вашей (предвзятой) модели прогнозирования на эту популяцию. Хорошим справочником по таким методам является статья Ботту о неэффективном обучении и рассуждениях.


Хорошая ссылка, спасибо. Я найду время, чтобы пройти через это.
Лаксан Натан

1

Классический статистический ответ состоит в том, что если процесс выбора находится в данных и описывается моделью, или выбор происходит случайным образом, то параметрическая модель рассматривает его правильно. См. Статью Дональда Рубина «Вывод и недостающие данные» (1976). Вам необходимо включить механизм выбора данных в вашу модель. Это область, в которой параметрический вывод должен работать лучше, чем чисто машинное обучение.


1

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

Я хочу устранить неоднозначность между проблемой пропущенных значений и проблемой «предвзятых данных». Нет такой вещи, как смещенные данные, есть такая вещь, как «смещенная модель», объясняющая упомянутые данные, но сами данные не смещены, а просто отсутствуют. Если отсутствующие данные значимо коррелируют с наблюдаемыми данными, то вполне возможно обучить беспристрастную модель и достичь хороших прогностических результатов.

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

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

Существует несколько алгоритмов интеллектуального анализа данных, которые пытаются решить эту проблему. Вы можете попробовать «методы Ensemble», такие как Bagging-n-Boosting, или алгоритмы «частого анализа паттернов», такие как Apriori и FP-growth. Вы также можете изучить методы в робастной статистике.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.