Аналитика данных
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, где каждая точка представляет канал, а цвет точек соответствует кластеру. Также отображаются центры кластеров (в виде красных точек).