Постановка задачи

Допустим мы хотим сформировать 8 профилей клиентов по их покупкам
при помощи пакета arules на датасете Groceries:

library(arules)
library("cluster")
data("Groceries")

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

Т.к. датасет достаточно большой, проведем кластеризацию в 2 этапа:

  1. Сначала определим центроиды на выборке
  2. Затем предскажем лэйблы для всего датасета

Этап 1: Кластеризация на выборке

set.seed(1234)
s <- sample(Groceries, 2000)
d <- dissimilarity(s, method = "Jaccard")
clustering <- pam(d, k = 8)

Этап 2: Определение лэйблов для всего датасета:

allLabels <- predict(s[clustering$medoids], Groceries, method = "Jaccard")
table(allLabels)
## allLabels
##    1    2    3    4    5    6    7    8 
##  984 1283 2262  904  672 1068 1890  772

Визуализация кластеров

Для начала, поделим весь датасет на 8 кластеров, согласно определенным лейблам:

cluster <- split(Groceries, allLabels)

Теперь мы можем приступить к визуализции отдельных кластеров:

Кластер 3

itemFrequencyPlot(cluster[[3]], population = s, support = 0.05)

plot of chunk unnamed-chunk-5

Кластер 8

itemFrequencyPlot(cluster[[8]], population = s, support = 0.05)

plot of chunk unnamed-chunk-6

Вертикальные бары – обозначают относительную частоту покупок в данном кластере,
непрерывные линии – частота покупок по всему датасету. Таким образом, анализируя
разницу между профилями клиентов в 3-ем и 8-ом кластере, мы можем сказать:

  • 3-ий кластер: широкий спектр покупок, более прибыльный клиент
  • 8-ой кластер: покупатель заходит за баночным пивом, кроме которого
    покупает сумку для покупок и газеты, примерно с частотой, присущей всем остальным покупателям.
Write a comment:

*

Your email address will not be published.

© 2014 In R we trust.
Top
Follow us: