0Pricing
Python Academy · Урок

Проект по кластеризации методом K-средних

Применение метода к реальному набору данных

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

Проект по кластеризации методом K-средних

Проект по кластеризации методом K-средних

В этом проекте мы применим кластеризацию методом K-средних к реальному набору данных: сегментации клиентов. Цель — сгруппировать клиентов на основе характера их расходов.

Проект по кластеризации методом K-средних — иллюстрация 1

Обзор набора данных

Обзор набора данных

Набор данных содержит следующие столбцы:

  • 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-средних — иллюстрация 10

Часто задаваемые вопросы

Урок «Проект по кластеризации методом 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 — локальная установка не требуется.

Все уроки этого курса

  1. Знакомство с алгоритмами кластеризации
  2. Кластеризация методом K-средних
  3. Проект по кластеризации методом K-средних
  4. Основы снижения размерности
  5. Применение снижения размерности
← Назад к Python Academy