Аналитика данных
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-средних и увидеть, в какой кластер попал каждый клиент на основе потраченных сумм и количества покупок.