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

Для этого анализа я буду использовать набор данных: [Набор данных оптовых клиентов] (Абреу, Н. (2011).

Он содержит следующие атрибуты:

— FRESH: годовые расходы (ед. ед.) на свежие продукты (Continuous);
— МОЛОКО: годовые расходы (м.е.) на молочные продукты (непрерывно);
— ПРОДОВОЛЬСТВЕННЫЕ: ежегодные расходы (м.е.) на бакалейные товары (Continuous);
— FROZEN: годовые расходы (mu) на замороженные продукты (Continuous)
— DETERGENTS_PAPER: годовые расходы (mu) на моющие средства и бумажные изделия (Continuous)
— DELICATESSEN: годовые расходы (mu) на продукты и деликатесы (непрерывный);
— КАНАЛ: клиентский канал — Horeca (гостиница/ресторан/кафе??) или розничный канал (номинал)
— РЕГИОН: клиентский регион Лиссабон, Порту или другой (номинальный)

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

Шаг 1. я строю корреляционный график.

Существует высокая корреляция между Бакалея и Моющие средства_Бумага (0,92), а также между Молоко и Бакалея (0,73). Знак -ve указывает на отрицательную корреляцию.

Шаг 2.Статистика Хопкинса. Нам необходимо статистически оценить тенденцию к кластеризации.

$H
[1] 0.07466603

Статистика Хопкинса близка к нулю, поэтому набор данных показывает полезные тенденции кластеризации.

Шаг 3. PCA

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

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

*Примечание*: Поскольку PCA является линейным, он в основном работает с линейно разделимыми данными. Следовательно, если вы хотите выполнить классификацию нелинейных данных, линейный АКП, вероятно, приведет к потере большого количества информации.
Существует еще один метод, называемый АГК ядра, который может работать с нелинейно разделяемыми данными.

Применение PCA ко всему набору данных:

Standard deviations (1, .., p=6):
[1] 1.6263375 1.3048310 0.8602702 0.7508197 0.5344870 0.2509405

Rotation (n x k) = (6 x 6):
                         PC1         PC2         PC3         PC4         PC5         PC6
Fresh            -0.04288396 -0.52793212 -0.81225657 -0.23668559  0.04868278  0.03602539
Milk             -0.54511832 -0.08316765  0.06038798 -0.08718991 -0.82657929  0.03804019
Grocery          -0.57925635  0.14608818 -0.10838401  0.10598745  0.31499943 -0.72174458
Frozen           -0.05118859 -0.61127764  0.17838615  0.76868266  0.02793224  0.01563715
Detergents_Paper -0.54864020  0.25523316 -0.13619225  0.17174406  0.33964012  0.68589373
Delicassen       -0.24868198 -0.50420705  0.52390412 -0.55206472  0.31470051  0.07513412

Каждый главный компонент является проекцией исходных данных, мы можем думать о них как о новых функциях. Каждый ПК может быть типом клиента.

Importance of components:
                          PC1    PC2    PC3     PC4     PC5    PC6
Standard deviation     1.6263 1.3048 0.8603 0.75082 0.53449 0.2509
Proportion of Variance 0.4408 0.2838 0.1233 0.09396 0.04761 0.0105
Cumulative Proportion  0.4408 0.7246 0.8479 0.94189 0.98950 1.0000

Мы наблюдаем, что на ПК1 и ПК2 приходится более 70% общей дисперсии в наборе данных.

Построение исходных объектов с ПК позволяет увидеть, как отличается корреляция

Наблюдения: В первом компоненте моющие средства_бумага, молоко и бакалея наиболее сильно коррелируют с исходными характеристиками. Во втором компоненте Fresh и Frozen имеют самые сильные корреляции.

Шаг 4. Кластерный анализ методом K-средних

Но сначала нам нужно проверить оптимальное количество кластеров.

*[Вариант 1]** Метод локтя. Расположение изгиба (колена) на графике обычно рассматривается как индикатор соответствующего количества кластеров.

Из приведенного выше графика 3 кластера кажутся идеальными. Хотя это очень субъективно, и некоторые утверждают, что 5 или 6 кажутся идеальным количеством кластеров. Перед отправкой окончательного конечного результата следует попробовать несколько кластеров.

*[Вариант 2]** Метод среднего силуэта. Вкратце, он измеряет качество кластеризации. То есть он определяет, насколько хорошо каждый объект лежит в своем кластере. Высокая средняя ширина силуэта указывает на хорошую кластеризацию. Расположение максимума рассматривается как соответствующее количество кластеров.

Предлагаются 2 кластера.

Я продолжу работу со 2 и 3 кластерами для этого поста.

K-средних:
подходит ‹- kmeans(df, 2)

Что содержит фит?

List of 9
 $ cluster     : int [1:440] 2 2 2 2 2 2 2 2 2 1 ...
 $ centers     : num [1:2, 1:6] -0.0223 0.0028 1.9066 -0.2389 2.0673 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:2] "1" "2"
  .. ..$ : chr [1:6] "Fresh" "Milk" "Grocery" "Frozen" ...
 $ totss       : num 2634
 $ withinss    : num [1:2] 1044 906
 $ tot.withinss: num 1950
 $ betweenss   : num 684
 $ size        : int [1:2] 49 391
 $ iter        : int 1
 $ ifault      : int 0
 - attr(*, "class")= chr "kmeans"

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

Наблюдения: Люди из группы 1, покупающие продукты, моющие средства, бумагу и молоко в больших количествах, указывают на кафе или рестораны.
Группа 2 с низкими расходами, вероятно, указывает на розничных покупателей.

Далее мы рассмотрим 3 кластера.

Группа 1 — люди со средними расходами, которые много покупают вместе свежей и замороженной продукции, что указывает на розничную торговлю.
Группа 2 — люди с высокими расходами, покупающие продукты, стиральную бумагу, молоко в больших количествах. Это могут быть рестораны или кафе.
Группа 3 — низкие расходы.

Итак, это пример реального использования сегментации клиентов с использованием алгоритмов кластеризации.

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

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

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