Классификация клиентов на основе 2 функций и временных рядов событий


12

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

Из-за NDA я не могу раскрыть многое, но постараюсь быть обобщенным и понятным.

В основном, после нескольких шагов в алгоритмах, у меня есть это:

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

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

Финальный стол выглядит так

|*Identifier*|  *firstCat* | *feature1* | *feature2*  |   {      *(TIME SERIES)*   }

CustomerID  |  ClusterID |  DaysOver30 | DaysOverTotal | Events9AM Events10AM ... 

 xx | 1 | 0,69 |  0,72 |  0,2   0,13   ...

 xx | 2 | 0,11 |  0,28 |  0,1   0,45   ...

 xy | 1 | 0,23 |  0,88 |  0,00  0,60   ...

 xy | 2 | 0,11 |  0,08 |  1,00  0,00   ...

 xy | 3 | 0,10 |  0,04 |  0,40  0,60   ...

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

Теперь мне нужно идентифицировать эти категории (помните, что они могут быть от 1 до x, являясь x любым числом от 1 до 25), в 3 тега: тег A, тег B и None of Them. Глядя на эти переменные, я могу вручную определить, к какому тегу они принадлежат, и идея состоит в том, чтобы идентифицировать как можно больше вручную и использовать любой алгоритм классификатора, чтобы извлечь из этого уроки и идентифицировать их все.

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

Другое беспокойство, которое у меня есть, заключается в том, что этот подход берет каждую строку независимо от других, и теоретически для каждого клиента должно быть только 0 или 1 тег A, 0 или 1 тег B, а остальные из них должны быть None (другой Подсказка заключается в том, что обычно теги A и B находятся между первыми категориями, поскольку они сильно зависят от нормализующих функций (если общее количество дней равно High, существует высокая вероятность того, что строка будет A или B, в зависимости от шаблона временных рядов) ,

Редактировать: это больше не проблема, я просто выполню две разные логистические регрессии, одну для тега A или другого и другую для тега B или другого, с вероятностями результата я могу выбрать только лучшее из каждого.

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


Просто предложение :) ... Я не уверен, что вы получите правильный ответ, пока вопрос такой длинный. Например, ваши теги являются именно моим направлением исследований, но у меня действительно нет времени и сил, чтобы прочитать все это! Если вы сможете обновить более короткую версию, это будет лучше для вас, а также для вас самих, так как в научных отчетах вы должны кратко обговорить.
Касра Маншаи

Я постараюсь уменьшить вопрос. Просто обычно, если я не объясняю себя, люди путают то, что я хотел. В любом случае, как только я найду время на работе, я постараюсь уменьшить размер вопроса, спасибо за рекомендацию
JusefPol

Какой у вас точный вопрос? Я просто вычислял бы функции временного ряда, а затем добавил бы эти функции к функциям клиентов. Тогда у вас будет просто базовая кластеризация. Для выбора характеристик временного ряда требуется знание предметной области.
Николас Рибл

Ответы:


2

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

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

Среди них - распределения Дирихле, обобщенного Дирихле и Бета-Лиувилля, которые идеально подходят для работы с пропорциональными данными.

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

Вот справочные документы для этих моделей, которые представляют их более глубоко и предоставляют все уравнения, необходимые для реализации:

  • Динамическая модель смеси Дирихле, исследовательский отчет IDIAP, Л. Чен, Д. Барбер, Ж.-М. Одобез, апрель 2007
  • Моделирование пропорциональных данных с использованием скрытых моделей Маркова на основе обобщенных смесей Дирихле и Бета-Лиувилля, применяемых для обнаружения аномалий в общественных местах, Э. Эпайар, Н. Бугила, Распознавание образов 55, стр. 125-136, 2016

Для дополнительных двух особенностей, упомянутых в этом вопросе, HMM для смешанных данных также были разработаны в следующей исследовательской работе: Гибридная скрытая модель Маркова для смешанного непрерывного / непрерывного и дискретного / непрерывного моделирования данных, Э. Эпайяр, Н. Бугила, MMSP, С. 1-6, 2015.

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

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