Тип проблемы = сегментация

Техника = Кластеризация

Сегментация помогает расставить приоритеты и направить организационные ресурсы на клиентов с высокой ценностью. Другими целями сегментации могут быть:

  • какие продукты разрабатывать и создавать
  • Проанализируйте, какие продукты релевантны для каких типов клиентов.

Общим методом сегментации клиентов является RFM (Recency, Frequency, Monetary).

  • Давность — когда покупатель в последний раз покупал у продавца.
  • Частота — как часто клиенты покупают у продавца.
  • Денежные — какова их стоимость заказа в каждой покупке

Их также называют схемами сегментации на основе правил.

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

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

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

Ключевые методы

  1. Агломеративный (иерархическая кластеризация)
  2. Разделительный (иерархическая кластеризация)
  3. К означает

Терминология

  1. Расстояние

Если мы представляем клиента на основе значений данных, которые они отображают, скажем,

пользовательский1 : (x1,y1,z3)

пользовательский2 : (x2,y2,z3)

В таком случае Евклидово расстояние между cust1 и cust2 = sqrt( (x1-x2)² + (y1-y2)² + (z1-z2)²)

Если это точки в N-мерном пространстве, евклидово расстояние — это длина прямой линии между этими точками. Это расстояние не имеет единицы измерения.

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

2. Связь

Linkages изучает сходство между группами/сегментами.

Если есть 2 группы

  • Группа 1 имеет 10 наблюдений
  • Группа 2 имеет 5 наблюдений
  • Потенциально может быть 10 x 5 = 50 связей между различными наблюдениями.

а) Полная связь - это максимальное расстояние между наблюдениями двух групп.

б) Одиночная связь - это наименьшее расстояние между наблюдениями двух групп.

в) центроидная связь

  • Центроид группы 1 = (среднее-x, среднее-y, среднее-z) группы 1
  • Центроид группы 2 = (среднее значение x, среднее значение y, среднее значение z) группы 1

Центроидная связь - это расстояние между центроидами двух групп.

1. Агломерационная

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

  1. Вычислить расстояние каждой точки от любой другой
  2. Объедините наименее разделенные точки, чтобы сформировать кластер
  3. Вычислить центроид для нового кластера
  4. Относитесь к центроиду как к наблюдению и забудьте о наблюдениях, которые вы объединили
  5. Вернуться к шагу 1

Наконец, вы получите 1 кластер с этим алгоритмом. Но наше идеальное количество кластеров лежит между 1 и N.

Нам нужно выяснить, что является идеальным числом. Есть 2 варианта

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

После того, как вы создали X кластеров, мы вычисляем

  • Внутри кластерной дисперсии — сумма дисперсии каждого кластера с их собственным центроидом ( var(x), var(y), var(z)), где x y z — кластеры.
  • Межкластерная дисперсия — разница между глобальным средним значением всех наблюдений и центроидами различных кластеров.

PS: центроид = среднее значение в данном случае.

Разница внутри кластера должна быть минимизирована, а разница между кластерами должна быть максимальной

2. Разделение

Предполагается, что каждое наблюдение исходит из одного кластера

  1. Вычислить центроид для всех кластеров (в первой итерации это то же самое, что и наблюдение)
  2. Найдите расстояние для каждой точки от каждого центроида
  3. Переместите точку с наибольшим расстоянием как отдельный кластер
  4. Переместить точки в ближайший к ним кластер
  5. Вернуться к шагу 1

Наконец, у вас есть X кластеров

После того, как вы создали X кластеров, мы вычисляем

  • Внутри кластерной дисперсии — сумма дисперсии каждого кластера с их собственным центроидом ( var(x), var(y), var(z)), где x y z — кластеры.
  • Межкластерная дисперсия — разница между глобальным средним значением всех наблюдений и центроидами различных кластеров.

PS: центроид = среднее значение в данном случае.

Разница внутри кластера должна быть минимизирована, а разница между кластерами должна быть максимальной

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

Другие моменты, которые следует учитывать

Как работать с категориальными переменными? Евклидово расстояние в этом случае не работает. СДЕЛАТЬ

Как нормализовать единицу измерения каждой переменной, чтобы расстояния были сопоставимы?

СДЕЛАТЬ

Как присвоить разный вес некоторым переменным?

Умножьте расстояние на вес.

K означает кластеризацию

  1. Найдите K случайных точек в p-мерном пространстве (где p — количество переменных, которые у нас есть)
  2. Рассматривайте эти K случайных точек как центроиды кластера (K задается бизнесом)
  3. Рассчитать расстояние каждой точки от центроидов кластера
  4. отнести каждое наблюдение к кластеру, к которому оно ближе всего.
  5. Забудьте о предыдущих центроидах и пересчитайте центроиды для каждого кластера.
  6. Перейти к шагу 3

Этот процесс останавливается, когда центроиды перестают изменяться.

Алгоритм в конечном итоге обеспечивает ≤ K кластеров

Стандартизация оценки

Кластеризация K-средних лучше всего работает с числовыми переменными.

Однако каждая переменная имеет свой диапазон крайних положительных и отрицательных значений. Нам нужно привести все значения к общему диапазону, преобразовав их от -1 до +1.

Можно использовать бинарные переменные. Категориальные переменные должны быть удалены.

Почему?

  • Категориальная переменная требует более 1 переменной. Теперь информация разбросана по переменным. Ну и что? СДЕЛАТЬ

Удаление переменных

В задачах обучения с учителем у нас был Y. Основываясь на предсказательной силе X(i), мы должны были оставить или исключить X(i).

Как удалить переменные в случае проблем с сегментацией?

  • Если в переменных много пропущенных значений, мы можем их отбросить.
  • Создайте ВИФ. Для расчета VIF нам нужно Y. В этом случае мы строим линейную регрессию с Y = ID каждой строки (это может быть просто индекс). VIF генерируется как побочный продукт. Если переменные предоставляют дополнительную информацию, мы сохраняем их, иначе удаляем.

Уменьшение размерности

Метод главных компонентов

Предположим, что точки на оси Y графика рассеяния проецируются на ось X (во многом как тень). В таком случае точки теряют размерность Y. Точно так же точки могут быть спроецированы на ось Y. В таком случае точки теряют размерность по оси X.

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

E.g.

  • Есть много точек (x1,y1), (x2,y2) и т.д.
  • Линия представляет эти точки так, что все точки лежат на этой прямой.

Если эта линия представлена

z = aX + bY + c

Этот результирующий z теперь имеет только 1 измерение. Мы уменьшили размерность с 2 измерений до 1 измерения.

Как мы проводим PCA?

Нам нужно рассчитать следующее

  • Собственный вектор
  • Собственное значение

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

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

Мы пытаемся захватить карманы в этом N-мерном пространстве, где дисперсия высока.

  • Собственные векторы – это новые измерения/направления/оси, вдоль которых изменчивость максимальна.
  • Собственные значения представляют дисперсию, полученную вдоль этих новых осей.
Eigen Vector | Eigen Value
(x1,y1,z1) | k1
(x2,y2,z2) | k2
(x3,y3,z3) | k3

Общая изменчивость = k1 + k2 + k3

K1 будет намного выше, чем K2, K2 будет иметь гораздо более высокую изменчивость, чем K3.
Таким образом, вместо того, чтобы сохранять переменные X, Y и Z, мы можем просто сохранить
hybrid_variable_1 = (x1,y1,z1) и hybrid_variable_2 = (x2,y2,z2), так как они могут содержать 95% изменчивости.

Значение hybrid_variable_1 = x1 * Var1 + y1 * Var2 + z1 * Var3

Как определить оптимальное количество кластеров?

Вклад бизнеса

Бизнес обычно указывает диапазон размеров кластера. Это можно использовать как отправную точку

Метод локтя

Для каждого размера кластера рассчитайте ошибку кластера = сумму дисперсии всех кластеров.

  • Для размера кластера = 1 дисперсия максимальна.
  • Для размера кластера = наблюдения это число равно нулю

Нанесите эту информацию на линейный график

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

Силуэтный метод

Рассчитать

  • A = среднее расстояние наблюдения от всех точек в его кластере
  • B = среднее расстояние наблюдений от всех точек в ближайшем кластере

Силуэт Коэффициент наблюдения SC= (B — A) / max(A,B)

Глобальная оценка = средняя оценка для всех показателей SC всех наблюдений.

Используйте вариант с наименьшим общим баллом.

Получение информации из кластеров

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

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

E.g.

  • Городской, Молодой, Богатый
  • Городской, Старый, Богатый

ЗАДАЧА

Ротация факторов — это еще один шаг, который делается перед PCA — TODO

контролируемая сегментация