У меня есть куча профилей клиентов, хранящихся в elasticsearchкластер. Эти профили теперь используются для создания целевых групп для наших подписок на электронную почту.
Целевые группы в настоящее время формируются вручную с использованием возможностей поиска с использованием эластичного поиска (например, получить всех клиентов мужского пола в возрасте 23 лет с одним автомобилем и 3 детьми).
Как я могу автоматически искать интересные группы - используя науку о данных, машинное обучение, кластеризацию или что-то еще?
рЯзык программирования кажется хорошим инструментом для этой задачи, но я не могу сформировать методологию такого группового поиска. Одним из решений является как-то найти самые большие кластеры клиентов и использовать их в качестве целевых групп, поэтому вопрос заключается в следующем:
Как я могу автоматически выбирать крупнейшие кластеры схожих клиентов (похожие по параметрам, которые я не знаю в данный момент)?
Например: моя программа будет подключаться кasticsearch, выгружать данные о клиентах в CSV и с помощью сценария языка R обнаружит, что большая часть клиентов - мужчины без детей, а другая большая часть клиентов имеет автомобиль, а их цвет глаз - коричневый.
источник
Ответы:
Одним из алгоритмов, который можно использовать для этого, является алгоритм кластеризации k-средних .
В принципе:
«До сближения»:
Рекомендуется повторить этот алгоритм несколько раз, а затем выбрать результат, который минимизирует расстояния между точками каждого кластера i и центром m_i.
Конечно, вы должны знать k, чтобы начать здесь; Вы можете использовать перекрестную проверку для выбора этого параметра.
источник