2016-09-29 11 views
0

Я пытаюсь создать классификационную модель, основанную на работе качественных данных обследования. Было исследовано около 10 тыс. Наших клиентов, и в результате была построена модель сегментации, и впоследствии каждый клиент был отнесен к 1 из 8 сегментов клиентов. Задача состоит в том, чтобы теперь классифицировать базу данных TOTAL в эти сегменты. Как только некоторые клиенты отреагировали, исследователь использовал общую демографию для применения весов после стратификации (или частотных весов).Построение модели классификации GBM с весами после стратификации заказчика

Моя задача - теперь использовать данные наших клиентов в качестве объясняющих переменных на этом 10K, чтобы создать классификационную модель для всей базы.

Для обработки весов клиента я просто дублировал каждую запись клиента по каждому соответствующему частоте, а набор данных взорвался примерно до 72K. Затем я разделил эти данные на поезд и тест и использовал пакет R caret для обучения GBM, и с использованием окончательной выбранной модели классифицировал мой тест-тест.

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

Я знаю, что функция модели GLM позволяет использовать параметр веса для обозначения вектора весов, но мой вопрос заключается в том, как использовать другие алгоритмы машинного обучения, такие как GBM или Random Forests, в R?

Благодаря

ответ

0

Вы можете использовать вес наблюдений с gbm и train. В общем, список моделей в caret, который может использовать вес корпуса, равен here.

+0

Спасибо, я не могу поверить, что пропустил это! Я большой поклонник CARET и книги Applied Predictive Modeling (она занимает первое место на моей книжной полке). Фактически на работе я бы сказал, что я упоминаю пакет и книгу по крайней мере 3 раза в день своим коллегам! – pman1971