Аналитика данных
October 5, 2023

Как проводить кластеризацию данных для выявления групп схожих объектов?

Что такое кластеризация данных?

Кластеризация данных - это метод анализа данных, при котором объекты группируются на основе их схожести. Схожие объекты попадают в одну группу, которая называется кластером.

Пример: Представь, что у нас есть много данных о клиентах интернет-магазина. Мы хотим выделить группы клиентов с похожими покупательскими привычками.

Пример алгоритма кластеризации - k-средних (k-means)

k-средних - один из популярных методов кластеризации. Он разбивает данные на k кластеров, где k - заранее заданное число.

Пример кода на Python для кластеризации клиентов интернет-магазина методом k-средних:

from sklearn.cluster import KMeans
import pandas as pd
# Загружаем данные о клиентах (предположим, у нас есть данные в файле clients.csv)
data = pd.read_csv('clients.csv')
# Выбираем признаки для кластеризации (например, сумму потраченных денег и количество покупок)
features = data[['total_spend', 'purchase_count']]
# Задаем количество кластеров (k)
k = 3
# Создаем модель k-средних
model = KMeans(n_clusters=k)
# Обучаем модель на выбранных признаках
model.fit(features)
# Печатаем, в какой кластер попал каждый клиент
print(model.labels_)

Объяснение кода:

  • from sklearn.cluster import KMeans - это строка, которая импортирует метод кластеризации k-средних из библиотеки sklearn. Мы используем KMeans для проведения кластеризации.
  • import pandas as pd - эта строка импортирует библиотеку pandas, которая помогает работать с данными в виде таблицы. Мы используем pandas для загрузки данных и работы с ними.
  • data = pd.read_csv('clients.csv') - здесь мы загружаем данные из файла clients.csv в переменную data. Файл clients.csv должен содержать информацию о клиентах интернет-магазина.
  • features = data[['total_spend', 'purchase_count']] - мы выбираем из данных два признака: total_spend (сумма потраченных денег) и purchase_count (количество покупок) и сохраняем их в переменной features.
  • k = 3 - мы устанавливаем количество кластеров, которые хотим получить, равное 3. Это число будет определять, на сколько кластеров мы разбиваем наши данные.
  • model = KMeans(n_clusters=k) - здесь мы создаем модель k-средних с указанным количеством кластеров (k). model становится объектом, с которым мы будем работать.
  • model.fit(features) - мы обучаем нашу модель на выбранных признаках (features). Это значит, что модель анализирует данные и выявляет кластеры на основе этих признаков.
  • print(model.labels_) - здесь мы выводим информацию о том, в какой кластер попал каждый клиент. model.labels_ содержит эти данные.

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