Аналитика данных
October 9, 2023
Как определить наиболее эффективные каналы продвижения с помощью многомерного анализа данных?
Кластеризация - это процесс разделения множества объектов на группы (кластеры) таким образом, чтобы объекты в одном кластере были более похожи друг на друга, чем на объекты из других кластеров. Это помогает нам увидеть скрытые структуры в данных и лучше понять их характеристики.
Представим, что у нас есть данные о различных каналах продвижения (например, реклама в социальных сетях, электронная почта, поиск и т.д.) и их эффективности в привлечении клиентов.
В нашем примере мы будем использовать метод KMeans, который разбивает данные на заранее заданное количество кластеров. Это позволяет нам увидеть, какие каналы продвижения схожи в эффективности, а какие различны.
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# Представим, что у нас есть данные об эффективности каналов (в процентах)
# Каждая строка представляет канал, а каждый столбец - метрика эффективности
# Например: столбец 1 - конверсия, столбец 2 - ROI (возврат инвестиций), столбец 3 - CTR (кликабельность)
# Пример данных
data = np.array([
[10, 15, 3], # Реклама в социальных сетях
[5, 8, 1], # Электронная почта
[12, 10, 4], # Поиск
[8, 12, 2], # Реклама на сайтах
[6, 9, 2] # Баннерная реклама
])
# Кластеризация с помощью KMeans на 3 кластера (можно выбрать другое количество кластеров)
kmeans = KMeans(n_clusters=3, n_init=10, random_state=42).fit(data)
# Давайте посмотрим, как данные разделились по кластерам
print("Кластеры для каждого канала:")
for i, cluster_label in enumerate(kmeans.labels_):
print(f"Канал {i + 1} находится в кластере {cluster_label + 1}")
# Визуализация кластеров
plt.scatter(data[:, 0], data[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red')
plt.xlabel('Конверсия')
plt.ylabel('ROI')
plt.title('Кластеризация каналов продвижения')
plt.show()Кластеры для каждого канала: Канал 1 находится в кластере 3 Канал 2 находится в кластере 2 Канал 3 находится в кластере 1 Канал 4 находится в кластере 1 Канал 5 находится в кластере 2
import numpy as np: Импорт библиотеки numpy, которая позволяет работать с массивами данных.from sklearn.cluster import KMeans: Импорт метода кластеризации KMeans из библиотеки scikit-learn.import matplotlib.pyplot as plt: Импорт библиотеки для визуализации данных.- Определение примерных данных
data, где каждая строка представляет канал продвижения, а каждый столбец - метрика эффективности (конверсия, ROI, CTR). - Создание объекта
KMeansс указанием количества кластеров (n_clusters=3) и запуск кластеризации на данных. - Вывод информации о том, в какой кластер попал каждый канал.
- Визуализация данных с помощью scatter plot, где каждая точка представляет канал, а цвет точек соответствует кластеру. Также отображаются центры кластеров (в виде красных точек).