Помогает ли предварительная кластеризация построить лучшую прогностическую модель?

9

Для задачи моделирования оттока я рассматривал:

  1. Вычислить k кластеров для данных
  2. Постройте k моделей для каждого кластера индивидуально.

Основанием для этого является то, что нечего доказывать, что совокупность подписчиков однородна, поэтому разумно предположить, что процесс генерирования данных может быть различным для разных «групп».

У меня вопрос, это подходящий метод? Это что-то нарушает или по какой-то причине считается плохим? Если так, то почему?

Если нет, поделитесь ли вы лучшими практиками по этому вопросу? И, во-вторых, лучше или хуже делать предварительную кластеризацию, чем дерево моделей (Как определено в Witten, Frank - дерево классификации / регрессии с моделями на листьях. Интуитивно кажется, что стадия дерева решений - это просто еще одна форма кластеризации, но idk, если у него есть какие-либо преимущества перед «нормальной» кластеризацией.).

Зил
источник

Ответы:

3

Существует метод, называемый кластерной регрессией, который решает аналогичную проблему (сначала кластеризует данные, а затем строит прогностические модели). Смотрите, например, это.

Мирослав Сабо
источник
1
Я посмотрел его здесь: tandfonline.com/doi/abs/10.1080/00273170701836653 и обнаружил следующее в аннотации: «В некоторых случаях большая часть вариации переменной отклика объясняется кластеризацией объектов, с небольшим дополнительным преимуществом, обеспечиваемым внутрикластерные регрессионные модели. Соответственно, существует огромный потенциал для переоснащения кластерной регрессией ". Не кажется многообещающим.
Зиль
Хорошо, но они не говорят, что это всегда терпит неудачу. Я никогда не использовал этот метод, я только знаю, что это может быть комбинация контролируемого и неконтролируемого подхода, но есть небольшое количество статей, которые используют этот метод.
Мирослав Сабо
Кроме того, большинство приложений, которые я обнаружил, посвящено маркетингу и финансам, поэтому, возможно, оно подойдет особенно для такого рода данных.
Мирослав Сабо
1
Это кажется очень интуитивным для области маркетинга - отток, кросс / upsell.
Зиль
2

Два момента, которые слишком длинны, чтобы быть комментарием:

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

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

  • Другая возможность - ситуации, когда кластеры не являются чистыми, но комбинация методов кластера и классификации может быть успешной, подходит для деревьев. Дерево будет выполнять часть кластеризации (и чистые узлы не считаются проблемой). Вот искусственный пример, 2-кластерная версия XOR-проблемы:
    XOR кластер

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

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

  • Посмотрите на деревья на основе моделей, например , ответ mbq здесь, я думаю, что они реализуют концепцию, которая очень близка к тому, что вы ищете. Они также могут быть реализованы в виде леса: например, R package mobForest .

cbeleites недоволен SX
источник
1

Я имею дело с подобной проблемой в эти дни. У меня есть сотни возможностей для построения классификатора. Попробовав разные модели (например: случайные леса, повышение градиента и т. Д.), Я все равно получил низкую точность / отзыв. Поэтому я пытаюсь сделать несколько кластеров, а затем построить классификаторы в разных группах. Меня беспокоит, как говорит Anony-Mousse, как я могу получить больше информации от классификатора, если я использую всю информацию в кластеризации? Вот что я собираюсь делать дальше:

  1. Используйте некоторые функции (меньше, по предварительным данным) для кластеризации.
  2. Используйте другие функции (больше) для обучения классификаторов.

Я думаю, что это может также помочь уменьшить сложность, желаю, чтобы это помогло.

Гилберт Лиу
источник
1

КК

NN/КYя~N(μя,σя2)язнак равно1πязнак равно21-πμ1 μ2σ12σ22μяβяИксяβя

В качестве альтернативы, в дискриминационной настройке можно попытаться включить кластерные назначения (жесткие или мягкие) в качестве функции для обучения алгоритму классификации по выбору (например, NB, ANN, SVM, RF и т. Д.)

Самир
источник
0

Ну, если ваши кластеры действительно хороши, ваши классификаторы будут дерьмом. Потому что им не хватает отвлечения в их тренировочных данных.

Скажите, что ваши кластеры идеальны, то есть чисты. Вы даже не можете должным образом тренировать классификатор там больше. Классификаторам нужны положительные и отрицательные примеры!

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

Что может сработать, так это использовать кластеризацию, а затем обучать классификатор каждой паре кластеров, по крайней мере, если они достаточно не согласны (если класс разбит на два кластера, вы все равно не сможете обучить классификатор там!)

ВЫЙТИ - Anony-Mousse
источник
Цель кластеризации не в том, чтобы найти «чистые» кластеры, то есть те, которые отлично подходят для распознавания моей целевой переменной. Целью кластеризации является поиск групп, однородных в «другой» области. Чтобы привести пример: я думаю, что в оттоке есть «только качественные» клиенты и «оптимизирующие затраты» клиенты. Я не думаю, что должен предполагать, что соответствующие функции для классификации одинаковы в обеих группах, поэтому я хочу построить отдельную модель для каждой группы. Конечно, у меня нет явных групп «качество» и «стоимость», поэтому идея кластеризации для получения таких групп сначала из данных.
Зиль
Любой вид дополнительной несбалансированности и корреляции в данных может нанести вред. Видите ли, классификатор может хотеть различать «только качество» и «оптимизацию затрат». Если он получает только одну группу, он не может использовать это различие.
ВЫЙТИ - Anony-Mousse
1
Но только если вы делаете двухуровневый подход, сначала классифицируйте по кластерам, а затем оцените кластерный классификатор. В противном случае постоянный классификатор бесполезен. Тогда вы возлагаете всю нагрузку на кластеризацию.
ВЫЙТИ - Anony-Mousse
1
Ну вот как я понял ОП.
cbeleites недоволен SX
1
Вы, конечно, можете сделать это, но есть вероятность, что ваши кластеры не так хороши, и что вам лучше с подходящим ансамблем «перекрывающихся» классификаторов. Так же, как и RandomForests.
ВЫЙТИ - Anony-Mousse