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) » Кластеризация DBSCAN в машинном обучении

Кластеризация DBSCAN в машинном обучении

Алгоритм кластеризации DBSCAN в машинном обучении с использованием Python

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

 

Что такое кластеризация?

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

В машинном обучении самые популярные следующие алгоритмы кластеризации:

  1. К-средние
  2. DBSCAN
  3. Агломеративная кластеризация
  4. BIRCH
  5. Средний сдвиг
  6. Распространение аффинности
  7. Спектральная кластеризация.

 

В следующем разделе я сначала познакомлю вас с концепциями алгоритма кластеризации DBSCAN, а затем мы увидим, как реализовать его с помощью Python.

 

Кластеризация DBSCAN в машинном обучении

Алгоритм кластеризации DBSCAN основан на концепции образцов ядра, неосновных образцов и выбросов:

  1. Образцы ядра: образцы, представленные в области с высокой плотностью, имеют минимальное количество точек выборки с радиусом eps.
  2. Образцы не ядра: образцы близкие к образцам ядра, но не являющиеся образцами ядра, а находящиеся очень близко к образцам ядра. Образцы не ядра лежат в радиусе eps от образцов ядра, но у них нет минимальных точек отбора проб.
  3. Выбросы: образцы, которые не являются частью образцов ядра и образцов не ядра, и находящиеся далеко от всех образцов.

 

Алгоритм кластеризации DBSCAN работает хорошо, если все кластеры достаточно плотны и хорошо представлены областями с низкой плотностью.

 

Кластеризация DBSCAN с использованием Python

В этом разделе я расскажу, как реализовать алгоритм DBSCAN с помощью Python. Набор данных, который я здесь использую, представляет собой набор данных кредитной карты. Теперь давайте импортируем необходимые библиотеки Python и набор данных:

Набор данных

 

import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

data = pd.read_csv("general.csv")
data.head()

 

 

Набор данных содержит больше столбцов

Прежде чем двигаться дальше, давайте взглянем на нулевые значения в наборе данных:

 

data.isnull().sum()
CUST_ID                               0
BALANCE                               0
BALANCE_FREQUENCY                     0
PURCHASES                             0
ONEOFF_PURCHASES                      0
INSTALLMENTS_PURCHASES                0
CASH_ADVANCE                          0
PURCHASES_FREQUENCY                   0
ONEOFF_PURCHASES_FREQUENCY            0
PURCHASES_INSTALLMENTS_FREQUENCY      0
CASH_ADVANCE_FREQUENCY                0
CASH_ADVANCE_TRX                      0
PURCHASES_TRX                         0
CREDIT_LIMIT                          1
PAYMENTS                              0
MINIMUM_PAYMENTS                    313
PRC_FULL_PAYMENT                      0
TENURE                                0
dtype: int64

 

Итак, у нас есть несколько нулевых значений в столбце «Максимальные выплаты». Я заполню эти значения средними значениями, и здесь я также удалю столбец идентификатора клиента, поскольку он тут бесполезен:

 

 data = data.drop('CUST_ID', axis=1)
 data.fillna(data.mean(), inplace=True)

 

Теперь давайте промасштабируем и нормализуем набор данных:

 

     # scaling and normalizing the dataset
    scaler = StandardScaler()
    x_scaled = scaler.fit_transform(data)
    from sklearn.preprocessing import normalize
    x_normal = normalize(x_scaled)
    x_normal = pd.DataFrame(x_normal)

 

Теперь я реализую алгоритм анализа главных компонентов (PCA) в машинном обучении, чтобы уменьшить размерность данных для визуализации:

 

     # reduce the dimensionality of the dataset
    pca = PCA(n_components=2)
    x_principal = pca.fit_transform(x_normal)
    x_principal = pd.DataFrame(x_principal)
    x_principal.columns = ['V1', 'V2']
    print(x_principal.head())

 

      V1        V2

0 -0.489825 -0.679678

1 -0.518791  0.545012

2  0.330885  0.268978

3 -0.482374 -0.092110

4 -0.563289 -0.481915

 

А сейчас давайте реализуем алгоритм DBSCAN и посмотрим на данные и кластеры после его реализации:

 

 dbscan = DBSCAN(eps=0.036, min_samples=4).fit(x_principal)
 labels = dbscan.labels_
 data['cluster'] = dbscan.labels_
 print(data.tail())

 

 Результат:

 

BALANCE   

BALANCE_FREQUENCY

... 

TENURE 

cluster

8945

28.493517          

1.000000 

...      

6

0

8946

19.183215          

1.000000 

...      

6

0

8947

23.398673          

0.833333 

...      

6

0

8948

13.457564          

0.833333 

...      

6

0

8949

372.708075          

0.666667 

...      

6

0

[5 rows x 18 columns]

 

 

clusterColor = {0: u'yellow', 1: u'green', 2: 'blue', -1: u'red'}
colors = [clusterColor[label] for label in labels]
plt.figure(figsize=(12, 10))
plt.scatter(x_principal['V1'], x_principal['V2'], c=colors)
plt.title("Implementation of DBSCAN Clustering", fontname="Times New Roman",fontweight="bold")
plt.show()

 

 

Резюме

Алгоритм кластеризации DBSCAN – это очень простой и мощный алгоритм кластеризации в машинном обучении. Он может идентифицировать любой кластер любой формы. Он устойчив к выбросам и имеет только два гиперпараметра. Ему может быть трудно правильно захватить кластеры, если плотность кластеров значительно возрастет.

Надеюсь, вам понравилась эта статья об алгоритме кластеризации DBSCAN в машинном обучении и его реализации с использованием Python.

 

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

← Предыдущая статья
Руководство по применению Streamlit с помощью Python
Следующая статья →
Наивный байесовский алгоритм в машинном обучении

 

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

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

 

Решения

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

Клиенты
  • Группа компаний «Невский кондитер» основана в 1996 году в Санкт-Петербурге и на сегодняшний день является одним из крупнейших производителей кондитерских изделий в России.

     

  • С объединением компании Savencia Fromage & Dairy и молочного комбината в г.Белебей, одного из лидеров по производству твердых сычужных сыров в России, Savencia выходит на российский рынок не только как импортер, но и как производитель молочной продукции.

  • KERAMA MARAZZI — международный бренд, входящий в число лидеров глобального рынка керамики. Бизнес компании охватывает весь процесс создания керамических изделий, от глиняных карьеров до фирменной розницы во всех крупных городах РФ и за рубежом.

  • ГК «Акрон Холдинг», одно из крупнейших в России промышленно-металлургических предприятий, запустил проект по модернизации управления данными. В качестве целевого решения для анализа ключевых данных компания выбрала систему PIX BI. В компании уже более 100 пользователей PIX BI, и в этом году в планах увеличить их число в два раза.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.