BI Consult
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
    • Построение хранилища данных
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • Process Mining
    • Сквозная аналитика
  • Платформы
    • ATK BiView-1C
    • Airflow
    • Alpha BI
    • Analytic Workspace
    • ChatGPT
    • FineBI
    • FlyBI
    • Loginom
    • Luxms BI
    • Modus BI
    • Visiology
    • Yandex.DataLens
    • Триафлай
    • Форсайт. Аналитическая Платформа
    • Arenadata
    • ClickHouse
    • Postgres Professional
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • ATK BiView-1C Коннектор
  • Airflow
  • Alpha BI
  • Analytic Workspace
  • ChatGPT
  • FineBI
  • FlyBI
  • Loginom
  • Luxms BI
  • Modus BI
  • Visiology
  • Yandex.DataLens
  • Триафлай
  • Форсайт. Аналитическая Платформа

СУБД

  • Arenadata
  • ClickHouse
  • Postgres Professional

Другое

  • Data Engeneering
    • Создание Data Lake
    • Создание Data Warehouse
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы » Учебный курс по Data Science (ML, AI)

Кластеризация 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.

 

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

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

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

Клиенты
  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • ПАО «Транснефть» – крупнейшая российская нефтепроводная компания. «Транснефть» обеспечивает транспортировку более 85% добываемых в России нефти и нефтепродуктов.

  • ПАО «Банк Уралсиб» (Публичное акционерное общество «Банк Уралсиб») — российский коммерческий банк. В 2020 году входил в топ-20 банков РФ по размеру активов (рэнкинг рейтингового агентства Эксперт РА), в 2021 году — в топ-25 крупнейших банков страны по расчётам агрегатора Банки.ру

  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Банки
    • Страхование
    • Фармацевтика
    • Лизинг
    • Логистика
    • Медицина
    • Нефтегазовый сектор
    • Сеть ресторанов
  • Услуги
    • Консалтинг
    • Пилотный проект
    • Поддержка
    • План обучения и сертификации
    • Бесплатное обучение
    • Учебные курсы
    • Аудит приложений
    • Выделенная команда
  • Платформы
    • ATK BiView-1C Коннектор
    • Alpha BI
    • Luxms BI
    • Modus BI
    • Visiology
    • Analytic Workspace
    • FineBI
    • Yandex.DataLens
    • Триафлай
    • Форсайт. Аналитическая Платформа
    • Arenadata
    • ClickHouse
    • Postgre Professional
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow
    • Учебный курс по Open-source BI
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по DataLens
    • Учебный курс по Visiology
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
  • Функциональные решения
    • Продажи
    • Финансы
    • Склад
    • HR
    • S&OP и прогнозная аналитика
    • Внутренний аудит
    • Геоаналитика
    • Категорийный менеджмент
    • Построение хранилища данных
    • Система управления KPI и BSC
    • Управление цепочками поставок
    • Маркетинг
    • Цифровая трансформация
    • Сквозная аналитика
    • Process Mining
LinkedInYouTubeVkontakteFacebook
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru