УДК 004.85

Анализ возможностей применения технологий машинного обучения в рекомендательных системах на основе кластеризации

Чернаков Александр Дмитриевич – магистрант Московского авиационного института.

Научный руководитель Алексейчук Андрей Сергеевич – кандидат физико-математических наук, доцент Московского авиационного института.

Аннотация: В данной статье исследуются возможности применения машинного обучения к данным о клиентах компании для создания рекомендательной системы на основе кластерного анализа. Для кластеризации данных используются алгоритмы K-Prototypes, объединяющие K-Means и K-Modes. Оптимальное количество кластеров определяется с помощью метода Elbow.

Ключевые слова: машинное обучение, кластеризация, рекомендательная система, python, k-прототипы, метод локтя.

Введение

В мире информации и онлайн-торговли рекомендательные системы [2] играют ключевую роль для бизнеса и потребителей. Компании, такие как Amazon, Wildberries, Яндекс и другие, активно используют эти инновации.

Рекомендательные системы включают разнообразные алгоритмы и сервисы, которые предсказывают интересы пользователей, оптимизируя процесс продаж. Машинное обучение [3, 4] играет важную роль в улучшении эффективности этих систем, позволяя создавать более точные и персонализированные рекомендации.

Существуют множество технологий примения машинного обучения к построению рекомендательных систем [5]. В данной работе будет рассмотрен подход, основанный на обучении без учителя [1].

Рекомендательная система на основе обучения без учителя

Современная электронная коммерция требует эффективных рекомендательных систем, способных предоставлять персонализированные и релевантные рекомендации [2] пользователям. Процесс их создания включает следующие этапы: отбор и предобработка данных, извлечение признаков с использованием методов обучения без учителя, построение рекомендательной модели, формирование персонализированных рекомендаций на основе модели, и оценка и корректировка системы для достижения лучших результатов.

Использование методов кластеризации [3, 4] для построения модели обеспечивает эффективную адаптацию к потребностям пользователей и динамике рынка.

Анализ и подготовка данных

В основе исследования лежит база данных, содержащая восемь тысяч записей о клиентах автомобильной компании [9].

Для создания моделей и проведения анализа данных в исследовании применялся язык программирования Python [4], выбранный за его обширную и динамичную экосистему библиотек.

Исходные данные были извлечены из CSV-файла с помощью метода read_csv библиотеки pandas [3, 4]. Каждый запись о клиенте в файле включает в себя такие атрибуты, как уникальный идентификатор, пол, семейное положение, возраст, наличие высшего образования, профессия, опыт работы, оценка расходов клиента и количество членов семьи.

Рисунок 1. Данные о клиентах.

Произведем визуализацию исходных данных с помощью применения библиотеку matplotlib [4] для Python.

Рисунок 2. Распределение категориальных признаков.

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

Рисунок 3. Распределение других категориальных признаков.

Изучив графики на рисунке 3, можно сделать вывод, что основная часть клиентов представлена художниками с ограниченным опытом работы.

Рисунок 4. Распределение по возрасту.

Анализ возраста клиентов показывает, что возраст варьируется от 18 до 89 лет, а среднее значение составляет 41 год.

Обнаружено, что 17% клиентов имеют хотя бы одну нулевую характеристику. Решено отбрасывать клиентов с более чем 3 нулевыми характеристиками (0.2% от общего числа), чтобы обеспечить точность модели без существенных потерь данных.

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

Кластеризация

Кластеризация – это задача по автоматическому распределению набора объектов по различным группам [3, 4] таким образом, чтобы объекты из одной группы походили друг на друга больше, чем на объекты из другой группы. Т.е. модели для распознания и выявления в наборах данных отдельных групп (кластеров).

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

Сформулированная задача кластеризации включает в себя множество Y, представляющее номера кластеров, расстояние p(x, x’) между объектами и конечную обучающую выборку объектов Xm = {x1, …, xm}. Цель состоит в разделении выборки на непересекающиеся подмножества, называемые кластерами, таким образом, чтобы объекты внутри каждого кластера были близки по метрике p, а объекты разных кластеров существенно отличались друг от друга. Каждому объекту xi  Xm присваивается номер кластера yi.

Метод Локтя

Для построения модели планируется использовать алгоритм K-Prototypes [7, 8], который требует предварительную настройку параметра – количество кластеров для разбиения. Для определения оптимального значения этого параметра мы прибегаем к использованию алгоритма, известного как Метод Локтя.

Метод Локтя анализирует изменение разброса внутрикластерной суммы квадратов (WSCC) с увеличением числа кластеров k.

Суть метода заключается в том, что при увеличении числа кластеров WSCC сначала снижается, но на каком-то этапе это снижение замедляется, образуя на графике характерный "локоть". Точка на графике, соответствующая этому локтю, является оптимальным значением количества кластеров.

Рисунок 5. Метод Локтя.

После анализа графика на рисунке 5 приходим к выводу, что оптимальное количество кластеров – 4, основываясь на визуальной интерпретации тренда при увеличении числа кластеров. Для подтверждения выбора мы планируем использовать метод KneeLocator [4], который численно определит точку изменения тренда.

K-Prototypes

Алгоритм K-Prototypes [7, 8] представляет собой комбинацию алгоритмов K-Means [3, 4, 6] (числовые значения) и K-Modes (категориальные значения), предназначенную для кластеризации смешанных данных, содержащих как числовые, так и категориальные признаки.

Алгоритм определяет кластер каждой точки данных, используя сходство с прототипом кластера – комбинацией среднего значения числовых переменных и моды категориальных [8]. Эта способность выявлять кластеры в наборах данных с разными типами данных делает его мощным инструментом для исследовательского анализа данных.

Математическое обоснование алгоритма K-Prototypes [8] основывается на минимизации суммарного расстояния между точками данных и их центроидами в пространстве признаков. Предполагается, что дано множество данных X = {x1, x2, … , xn}, каждый объект xi представлен как кортеж (xi1, xi2, … , xin) где p – общее количество признаков.

Пусть C = {c1, c2, …, ck} – множество кластеров, и μk – центроид кластера ck. Тогда целевая функция для минимизации будет представлена следующим образом:

где d(xi,μj) – расстояние между объектом xi и центроидом μj. Для числовых признаков часто используется евклидово расстояние:

Для категориальных признаков используется метрика Хемминга, которая считает число несовпадающих категорий:

Общее расстояние для смешанных данных выражается как взвешенная сумма расстояний по каждому признаку:

где ωl – вес признака l.

Теперь, с учетом расстояний, алгоритм K-Prototypes работает поочередно на шагах присвоения кластеров и обновления центроидов, минимизируя целевую функцию J(X,C).

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

В Python алгоритм K-Prototypes реализован в библиотеки kmodes [4].

Интерпретация получившихся результатов

Рассмотрим полученные результаты кластеризации:

Рисунок 6. Анализ кластеров (профессия).

Рисунок 7. Анализ кластеров (оценка расходов).

Проанализировав графики, отображающие разбиение клиентов на четыре кластера, мы можем обобщить информацию о каждом из них.

Кластер 1 – преимущественно художники, артисты и работники развлекательной сферы, состоящие в браке (88%), с разнообразием в расходах: средние (44%), низкие (38%), высокие (18%). Средний возраст – 54 года, размер семей – ограничен до 2-4 человек.

Кластер 2 – главным образом, это клиенты из здравоохранения и искусства, не состоящие в браке (82%) и с низкими затратами (88%). Средний возраст – 26 лет, размер семей – 2-4 человека.

Кластер 3 – трудящиеся в сферах искусства, развлечений и техники, состоящие в браке (66%) и с сочетанием низких (55%) и средних (34%) затрат. Средний возраст – 40 лет, размер семей – ограничен до 2-3 человек.

Кластер 4 в основном клиенты из юридической и творческой сфер, с высокой частотой вступления в брак (95%) и разнообразием в уровне расходов (41% – низкие, 46% – высокие). Средний возраст – 74 года, размер семей – от 1 до 3 человек.

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

Рекомендательная система

Для построения эффективной рекомендательной системы необходимо изучить покупательское поведение клиентов и сформировать списки частотности товаров для каждого кластера. Список частотности Rc – упорядоченное множество продуктов, отсортированных по частотности их приобретения в пределах конкретного кластера c.

Формализованный алгоритм построения рекомендательной системы:

  1. Сбор данных – для каждого кластера формируется множество Pc, содержащее товары, приобретаемые представителями кластера c.
  2. Вычисление частотности – для каждого товара p внутри каждого кластера c подсчитывается его частотность. Используется функция f(p,c), которая возвращает долю пользователей кластера c, купивших товар p.
  3. Ранжирование товаров – товары в каждом кластере ранжируются по убыванию их частотности, тем самым формируем список частотности. Обозначим упорядоченное множество товаров как Rc={p1, p2, … , pk} где f(pi,c) ≥ f(pi+1,c).
  4. Формирование персонализированных рекомендаций – для каждого пользователя u в определенном кластере c рекомендуются товары из верхней части ранжированного списка частотности, которые пользователь еще не приобретал. Формально, рекомендация для пользователя u из кластераc предсталяет собой множество товаров Rec(u,c) = {Pi Rc | pi Pu}, где Pu – множество товаров, купленных пользователем u.

Заключение

В данном исследовании применен алгоритм K-Prototypes для разделения клиентов компании на четыре кластера, оптимальное количество которых было определено с помощью Elbow Method. Проведен анализ кластеров, на основе которого предложен метод построения рекомендательной системы с использованием списка частотности.

Автоматизация анализа покупок и списков частотности позволяет системе предоставлять индивидуализированные рекомендации клиентам, учитывая их принадлежность к кластеру.

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

Список литературы

  1. Баранов А.М., Юдина Т.А. Алгоритм сегментации научных статей, сочетающий принципы обучения с учителем и без учителя // Новые информационные технологии в автоматизированных системах. 2019. № 22.
  2. Burke, R., Felfernig, A., & Göker, M. H. (2011). Recommender Systems: An Overview. AI Magazine, 32(3), 13-18. https://doi.org/10.1609/aimag.v32i3.2361.
  3. Data Science. Наука о данных с нуля: учеб. пособие/под ред Джоэла Граса.–Спб.: БХВ-Петербург,2019.–336 с.
  4. Python для сложных задач: наука о данных и машинное обучение: учеб. пособие/под ред Дж. Вандера Пласа. –Спб.: Питер, 2018.–576 с.
  5. Черняков А.Н., and Дибиров М.Ш.. О некоторых способах построения рекомендательных систем онлайн-маркетинга на основе алгоритмов машинного обучения // Инновации и инвестиции, no. 6, 2023, pp. 351-356.
  6. Андриянов Н. А., Атаходжаева М. Р., Бородин Е. И. Математическое моделирование рекомендательной системы и обработка данных телекоммуникационной компании с помощью моделей машинного обучения // Вестник Южно-Уральского государственного университета. Серия: Компьютерные технологии, управление, радиоэлектроника, vol. 22, no. 2, 2022, pp. 17-28.
  7. Jia, Ziqi & Song, Ling. (2020). Weighted k-Prototypes Clustering Algorithm Based on the Hybrid Dissimilarity Coefficient. Mathematical Problems in Engineering. 2020. 1-13. 10.1155/2020/5143797.
  8. Huang, Z. Extensions to the k-Means Algorithm for Clustering Large Data Sets with Categorical Values. Data Mining and Knowledge Discovery 2, 283–304 (1998). https://doi.org/10.1023/A:1009769707641.
  9. Kaggle. Customer Segmentation – URL: https://www.kaggle.com/datasets/vetrirah/customer.

Интересная статья? Поделись ей с другими: