🧩 Как сделать кластерный анализ в Python: пошаговое руководство с примерами
Кластерный анализ в Python можно выполнить с использованием библиотеки scikit-learn. Вот пример кода:
from sklearn.cluster import KMeans
import numpy as np
# Создание массива данных
data = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
# Создание и обучение модели кластеризации
kmeans = KMeans(n_clusters=2)
kmeans.fit(data)
# Получение меток кластеров для каждой точки данных
labels = kmeans.labels_
# Вывод результатов
print("Метки кластеров:", labels)
Детальный ответ
Как сделать кластерный анализ в питоне
Кластерный анализ - это метод разделения объектов на группы, или кластеры, на основе их сходства. Он является мощным инструментом в анализе данных, который позволяет выявлять общие характеристики между объектами и обнаруживать скрытые паттерны.
1. Установка необходимых библиотек
Чтобы начать работу с кластерным анализом в Python, вам понадобятся несколько библиотек:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
2. Подготовка данных
Перед началом анализа необходимо подготовить данные. Обычно данные представляются в виде таблицы, где каждая строка соответствует отдельному объекту, а каждый столбец представляет различные характеристики объектов. Важно убедиться, что данные представлены в правильном формате и не содержат пропущенных значений.
# Пример загрузки данных из файла CSV
data = pd.read_csv('data.csv')
# Извлечение нужных столбцов
X = data[['feature1', 'feature2', 'feature3']]
3. Выбор числа кластеров
Один из ключевых шагов в кластерном анализе - выбор оптимального числа кластеров. Для этого можно использовать метод локтя или индекс силуэта. Метод локтя основан на анализе значения инерции, которое представляет собой сумму квадратов расстояний между каждым объектом и центроидом его кластера. Индекс силуэта также учитывает близость объектов к соседним кластерам, помогая определить, насколько хорошо объекты сгруппированы внутри своих кластеров.
# Метод локтя
inertia = []
for k in range(1, 10):
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
inertia.append(kmeans.inertia_)
plt.plot(range(1, 10), inertia)
plt.xlabel('Number of Clusters')
plt.ylabel('Inertia')
plt.show()
4. Обучение модели
После выбора оптимального числа кластеров, можно обучить модель. В данном примере используется метод K-средних, один из наиболее распространенных методов кластеризации. Модель присваивает каждому объекту метку кластера на основе их характеристик.
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
labels = kmeans.labels_
5. Визуализация результатов
Чтобы проиллюстрировать результаты кластерного анализа, можно визуализировать объекты и их принадлежность к кластерам. Это поможет вам лучше понять, как объекты распределены и какие группы образуют.
# Пример визуализации
plt.scatter(X.iloc[:, 0], X.iloc[:, 1], c=labels)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
Заключение
Кластерный анализ - это мощный метод анализа данных, который позволяет выявлять паттерны и группировать объекты на основе их сходства. В этой статье мы рассмотрели основные шаги для выполнения кластерного анализа в Python, включая установку необходимых библиотек, подготовку данных, выбор числа кластеров, обучение модели и визуализацию результатов.