BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по MLOps и Data Science (ML, AI) » Кластеризация K-средних в машинном обучении

Кластеризация K-средних в машинном обучении

Кластеризация K-средних, или K-means, — это алгоритм машинного обучения без учителя, который разбивает объекты на K групп по сходству признаков. Алгоритм выбирает центроиды кластеров, назначает объекты ближайшему центроиду, затем пересчитывает центры и повторяет процесс до сходимости.

K-means используют для сегментации клиентов, анализа данных, поиска групп похожих объектов, уменьшения размерности, обнаружения аномалий и сегментации изображений. В статье разберем, как работает алгоритм K-средних, что такое центроид, почему нужно заранее выбрать число кластеров K, какие есть ограничения и как реализовать K-means на Python.

Что внутри:

  • что такое кластеризация K-средних;
  • как K-means работает без меток;
  • что такое центроиды;
  • как объекты назначаются кластерам;
  • почему алгоритм пересчитывает центры кластеров;
  • где применяется K-means;
  • сегментация клиентов и анализ данных;
  • вычислительная сложность алгоритма;
  • ограничения K-средних;
  • пример реализации K-means на Python.

 

Кластеризация K-средних - это алгоритм кластеризации, способный быстро и эффективно кластеризовать немаркированный набор данных всего за несколько итераций. В этой статье я расскажу вам о кластеризации K-средних в машинном обучении с использованием Python.

 

Кластеризация K-средних в машинном обучении

Кластеризация означает выявление похожих экземпляров и их назначение кластерам или группам аналогичных экземпляров. Она используется в самых разных приложениях, таких как:

  1. Сегментация клиентов
  2. Анализ данных
  3. Уменьшение размерности
  4. Обнаружение аномалий
  5. Полу-контролируемое обучение
  6. Поиск изображений
  7. Сегментация изображений

 

K-средние – это алгоритм кластеризации в машинном обучении, который может очень быстро и эффективно сгруппировать немаркированный набор данных всего в несколько итераций. Он работает, маркируя все экземпляры в кластере ближайшим центроидом. Когда экземпляры сосредоточены вокруг определенной точки, эта точка называется центроидом.

Если вы получаете метки экземпляров, вы можете легко найти все элементы, усреднив все экземпляры для каждого кластера. Но здесь нам не дается метка или центроиды, поэтому мы должны начать с размещения центроидов случайным образом, выбрав k случайных экземпляров и используя их положения в качестве центроидов.

Затем мы маркируем экземпляры, обновляем центроиды, повторно маркируем экземпляры, снова обновляем центроиды и так далее. Алгоритм кластеризации K-средних гарантированно сойдется за несколько итераций, он не будет повторяться бесконечно.

 

Кластеризация K-средних с использованием Python

Вычислительная сложность алгоритма кластеризации K-средних обычно линейна относительно:

  1. количества экземпляров m,
  2. количества кластеров k,
  3. и количества размеров n.

 

Это верно только тогда, когда набор данных имеет структуру кластеризации, если набор данных не имеет структуры кластеризации, временная сложность алгоритма в наихудшем случае может возрастать экспоненциально с увеличением количества экземпляров. В задачах в реальном времени этого никогда не происходит, и кластеризация K-средних считается одним из самых быстрых алгоритмов кластеризации.

Теперь давайте посмотрим, как реализовать кластеризацию K-средних с помощью Python. Чтобы реализовать ее с помощью Python, я буду использовать набор данных о строительстве жилья в Калифорнии для создания экономических сегментов в различных районах Калифорнии. Начнем с импорта необходимого набора данных и библиотек Python:

 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from sklearn.cluster import KMeans

 

data = pd.read_csv("https://biconsult.ru/img/datascience-ml-ai/Mini-batch-K-means-Clustering-in-Machine-Learning/housing.csv")
print(data.columns)
data = data.loc[:, ["median_income", "latitude", "longitude"]]
print(data.head())

 

Рез​ультат:

Index(['longitude', 'latitude', 'housing_median_age', 'total_rooms',
       'total_bedrooms', 'population', 'households', 'median_income',
       'median_house_value', 'ocean_proximity'],
      dtype='object')
   median_income  latitude  longitude
0         8.3252     37.88    -122.23
1         8.3014     37.86    -122.22
2         7.2574     37.85    -122.24
3         5.6431     37.85    -122.25
4         3.8462     37.85    -122.25

 

Теперь давайте посмотрим, как реализовать алгоритм кластеризации K-средних с помощью Python. Поскольку он чувствителен к масштабированию, будет хорошей идеей изменить размер или нормализовать данные с экстремальными значениями:

 

kmeans = KMeans(n_clusters=6)
data["Cluster"] = kmeans.fit_predict(data)
data["Cluster"] = data["Cluster"].astype("int")
print(data.head())

 

Результат:

   median_income  latitude  longitude  Cluster
0         8.3252     37.88    -122.23        2
1         8.3014     37.86    -122.22        2
2         7.2574     37.85    -122.24        2
3         5.6431     37.85    -122.25        2
4         3.8462     37.85    -122.25        0

 

Теперь давайте посмотрим на кластеры, идентифицированные алгоритмом с помощью диаграммы рассеяния:

 

plt.style.use("seaborn")
plt.rc("figure", autolayout=True)
plt.rc("axes", labelweight='bold', labelsize='large', titleweight='bold', titlesize=14, titlepad=10)
sns.relplot(x="longitude", y="latitude", hue="Cluster", data=data, height=6)
plt.show()

 

 

График разброса выше показывает географическое распределение кластеров. Похоже, что алгоритм создал отдельные сегменты для области с высоким доходом.

 

Резюме

Вот как мы можем реализовать алгоритм кластеризации K-средних с помощью Python. Важно масштабировать входные функции перед запуском K-средних, иначе кластеры могут сильно растянуться, и, следовательно, алгоритм будет работать плохо. Однако масштабирование функций не гарантирует, что кластеры станут красивыми и сферическими, но обычно оно значительно их улучшает.

 

FAQ

Вопрос: Что такое K-means?

Ответ: K-means, или алгоритм K-средних, — это метод кластеризации, который делит данные на K групп. Каждый объект относится к ближайшему центроиду, а центроиды пересчитываются на каждой итерации.

 

Вопрос: Что такое центроид?

Ответ: Центроид — это центр кластера. В K-means он обычно рассчитывается как среднее значение признаков объектов, которые относятся к этому кластеру.

 

Вопрос: Нужно ли заранее задавать число кластеров?

Ответ: Да, в классическом K-means нужно заранее указать K — количество кластеров. Для выбора K часто используют метод локтя, силуэтный коэффициент или сравнение нескольких вариантов.

 

Вопрос: Где применяют кластеризацию K-средних?

Ответ: K-means применяют для сегментации клиентов, анализа поведения пользователей, группировки товаров, сжатия изображений, поиска похожих объектов и предварительного анализа данных.

 

Вопрос: Какие ограничения есть у K-means?

Ответ: K-means чувствителен к выбору числа кластеров, масштабу признаков, выбросам и начальной инициализации центроидов. Он лучше работает, когда кластеры примерно компактные и похожи на сферы.

 

  • Алгоритмы кластеризации в машинном обучении
  • Метрики оценки Machine Learning моделей
  • Градиентный спуск в машинном обучении
  • Многослойный персептрон в машинном обучении
  • TF-IDF в машинном обучении

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Линейная регрессия с Python
Следующая статья →
Уменьшение размерности в машинном обучении

 

Внедряем AI в бизнес-процессы крупных компаний
От стратегии и инфраструктуры до AI-агентов, интеграций и промышленной эксплуатации.

Подробнее об AI-решениях

 

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • АО «Новосибирскэнергосбыт» является единственным гарантирующим поставщиком электроэнергии на территории г. Новосибирска и Новосибирской области. Предприятие отвечает за электроснабжение клиентов, закупая электроэнергию на оптовом рынке, регулируя поставку электроэнергии через договорные отношения с сетевыми организациями.

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • "Уральский банк реконструкции и развития" входит в топ-25 крупнейших банков России и список значимых кредитных организаций на рынке платежных услуг по версии ЦБ РФ.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.