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