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

Наиболее распространенный алгоритм кластеризации - это алгоритм k-средних, но метод k-средних возможен только с числовыми значениями. Однако часто в реальных данных содержатся смешанные типы данных, как числовые, так и категориальные, поэтому k-средние не могут использоваться в этом сценарии. Более того, здесь нельзя использовать алгоритм кластеризации K-режимов, так как он работает только с категориальными значениями.

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

Алгоритм

Алгоритм K-прототипа представляет собой совокупность алгоритмов кластеризации K-средних и K-режимов. Он использует разные метрики расстояния для числовых данных и разные метрики расстояния для категориальных типов данных. Расстояние Евклида и Манхэттена используется для числовых данных, а Match_distance - для категориальных данных.

Kprototypes.euclidean_distance (a, b)

Это сумма квадратов разницы для каждой будущей пары, также известная как норма L2.

dist ((x, y), (a, b)) = √ (x -a) ² + (y-b) ²

kprototypes.manhattan_distance (a, b)

Это сумма абсолютной разницы для каждой будущей пары, также известная как норма L1.

dist ((x, y), (a, b)) = | x-a | + | y ​​-b |

kprototypes.matching_distance (a, b)

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

Данные

Используемые здесь данные - это данные исследования коронавируса, проведенного в Соединенном Королевстве в апреле 2020 года, чтобы получить представление о том, что люди думают о пандемии и как они приспосабливаются к этим внезапным изменениям в своей жизни.

После импорта всех необходимых библиотек и импорта данных мы посмотрим на данные.

Импорт библиотек

Предварительная обработка данных

Названия столбцов - это вопросы, которые были заданы в опросе, поскольку в первых нескольких столбцах есть ответы: пол, возраст, гражданство и род занятий.

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

Вышеупомянутую документацию можно найти здесь: https://kprototypes.readthedocs.io/en/latest/api.html#main-interface

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

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

Теперь мы выберем столбцы категориальных характеристик и столбцы числовых характеристик.

Можно заметить, что есть 410 объектов с категориальным типом данных и 12 столбцов с числовым типом данных.

Мы получим индекс столбца категориальных типов данных с пониманием списка.

Теперь мы изменим весь набор данных на массив numpy, а затем мы будем использовать этот массив в качестве параметра для метода прогнозирования соответствия.

Моделирование и поиск оптимальных кластеров

Здесь можно увидеть, что длина кластеров с максимальным количеством кластеризованных данных 1, который является вторым кластером, можно увидеть, что количество кластеров определяется здесь. Теперь найдем оптимальное количество кластеров в K-Prototype, используя метод локтя.

Диапазон от 1 до 10 выбран, чтобы найти оптимальное количество кластеров с помощью функции стоимости Kproto.

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

Теперь мы снова сгруппируем данные с оптимальным кластером, равным 4.

Теперь посмотрим, как данные делятся на четыре кластера.

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

Ссылка :

1] Документация по K-прототипу: https://kprototypes.readthedocs.io/en/latest/