Проект по кластеризации методом K-средних
Применение метода к реальному набору данных
«Проект по кластеризации методом K-средних» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 5. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 5 уроков всего.
Проект по кластеризации методом K-средних
Проект по кластеризации методом K-средних
В этом проекте мы применим кластеризацию методом K-средних к реальному набору данных: сегментации клиентов. Цель — сгруппировать клиентов на основе характера их расходов.

Обзор набора данных
Обзор набора данных
Набор данных содержит следующие столбцы:
- ID клиента: Уникальный идентификатор каждого клиента.
- Возраст: Возраст клиента.
- Годовой доход: Годовой доход в тысячах долларов.
- Оценка расходов: Оценка, присвоенная на основе поведения клиента и характера его расходов (1–100).
Шаг 1: импорт набора данных и библиотек
Шаг 1: импорт набора данных и библиотек
Начнём с импорта необходимых библиотек и загрузки набора данных:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# Load dataset
data = pd.read_csv('Mall_Customers.csv')
print(data.head())Шаг 2: предварительная обработка данных
Шаг 2: предварительная обработка данных
Мы выберем признаки, важные для кластеризации, и при необходимости нормализуем данные. В этом проекте мы будем использовать Годовой доход и Оценку расходов:
# Select relevant features
X = data[['Annual Income (k$)', 'Spending Score (1-100)']].values
print(X[:5])Шаг 3: определение оптимального количества кластеров
Шаг 3: определение оптимального количества кластеров
Мы используем метод локтя, чтобы найти оптимальное количество кластеров, построив график внутрикластерной суммы квадратов (WCSS) для разных значений K:
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, init='k-means++', random_state=42)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of Clusters')
plt.ylabel('WCSS')
plt.show()Шаг 4: применение кластеризации методом K-средних
Шаг 4: применение кластеризации методом K-средних
На основе метода локтя мы выбираем оптимальное количество кластеров (например, K=5) и выполняем fit модели K-средних:
kmeans = KMeans(n_clusters=5, init='k-means++', random_state=42)
kmeans.fit(X)
# Add cluster labels to the dataset
data['Cluster'] = kmeans.labels_
print(data.head())Шаг 5: визуализация кластеров
Шаг 5: визуализация кластеров
Мы можем построить график кластеров в двумерном пространстве, чтобы увидеть их разделение:
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, c='red', marker='X')
plt.title('Customer Segmentation')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.show()Шаг 6: интерпретация кластеров
Шаг 6: интерпретация кластеров
Каждый кластер представляет группу клиентов с похожим характером расходов. Например:
- Кластер 1: высокий доход, высокие расходы.
- Кластер 2: низкий доход, низкие расходы.
- Кластер 3: средний доход, высокие расходы.
Проблемы кластеризации реальных данных
Проблемы кластеризации реальных данных
Хотя кластеризация — мощный инструмент, при работе с реальными данными возникают такие проблемы, как:
- Наборы данных с большим количеством измерений.
- Зашумлённые или неполные данные.
- Содержательная интерпретация результатов кластеризации.
Итоги и следующие шаги
Итоги и следующие шаги
В этом проекте мы:
- Исследовали реальный набор данных.
- Применили кластеризацию методом K-средних и визуализировали результаты.
- Интерпретировали кластеры, чтобы понять поведение клиентов.
Далее мы изучим методы снижения размерности, такие как PCA и t-SNE.

Часто задаваемые вопросы
Урок «Проект по кластеризации методом K-средних» бесплатный?
Да — полный текст урока «Проект по кластеризации методом K-средних» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 5 уроков всего.
Чему я научусь в уроке «Проект по кластеризации методом K-средних»?
Применение метода к реальному набору данных Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 5.
Сколько времени занимает урок «Проект по кластеризации методом K-средних»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Знакомство с алгоритмами кластеризации
- Кластеризация методом K-средних
- Проект по кластеризации методом K-средних
- Основы снижения размерности
- Применение снижения размерности