Главная страница
Навигация по странице:

  • ДИПЛОМНАЯ РАБОТА Специальность 5B070300 – Информационные системы МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ КАЗАХСТАН Казахский национальный исследовательский

  • Допущен к защите » Заведующий кафедрой КОиХИ ________________Н.А.Сеилова ДИПЛОМНАЯ РАБОТА

  • УТВЕРЖДАЮ Заведующий кафедрой КБОиХО канд. техн. наук, ассистент- профессор Н. А. Сейлова « » 20 г. ЗАДАНИЕ на выполнение дипломной работы

  • ГРАФИК подготовки дипломной работы (проекта) Наименование разделов, перечень разрабатываемых вопросов Сроки представления

  • Подписи консультантов и нормоконтролера на законченную дипломную работу (проект) с указанием относящихся к ним разделов работы (проекта) Наименование разделов

  • Консультанты, Ф.И.О. (уч.степень, звание) Дата подписания Подпись

  • Error! Bookmark not defined.

  • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  • диплом по кластерному анализу. Допущен к защите Заведующий кафедрой коихи н. А. Сеилова дипломная работа на тему Применение методов кластеризации для анализа данных Специальность 5В070300 Информационные системы


    Скачать 1.55 Mb.
    НазваниеДопущен к защите Заведующий кафедрой коихи н. А. Сеилова дипломная работа на тему Применение методов кластеризации для анализа данных Специальность 5В070300 Информационные системы
    Дата28.04.2023
    Размер1.55 Mb.
    Формат файлаpdf
    Имя файладиплом по кластерному анализу.pdf
    ТипКраткое содержание
    #1095498

    Алматы 2021
    МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ КАЗАХСТАН
    Satbayev University
    Институт кибернетики и информационных технологий
    Кафедра кибербезопасность, обработка и хранение информации
    Досман Әлижан Махамедқалиұлы
    Применение методов кластеризации для анализа данных
    ДИПЛОМНАЯ РАБОТА
    Специальность 5B070300 – Информационные системы

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ КАЗАХСТАН
    Казахский национальный исследовательский
    технический университет имени К.И. Сатпаева
    Институт кибернетики и информационных
    технологий
    Кафедра кибербезопасность, обработка и
    хранение информации
    «Допущен к защите»
    Заведующий кафедрой КОиХИ
    ________________Н.А.Сеилова
    ДИПЛОМНАЯ РАБОТА
    На тему: Применение методов кластеризации для анализа данных
    Специальность 5В070300 – Информационные системы
    Выполнил: Досман Ә. М.
    Научный руководитель к.т.н, доцент
    Сейлова Н. А.
    «
    »
    20 г.
    27 05 21

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ
    КАЗАХСТАН
    Satbayev University
    Институт кибернетики и информационных технологий
    Кафедра кибербезопасность, обработка и хранение информации
    5B070300 – Информационные системы
    УТВЕРЖДАЮ
    Заведующий кафедрой КБОиХО канд. техн. наук, ассистент- профессор
    Н. А. Сейлова
    «
    »
    20 г.
    ЗАДАНИЕ
    на выполнение дипломной работы
    Обучающемуся: Досман Әлижан Махамедқалиұлы
    Тема: Применение методов кластеризации для анализа данных
    Утверждена приказом Ректора Университета № 762-б от 24.11.2020г.
    Срок сдачи законченной работы 27.05.2021г.
    Исходные данные к дипломному проекту: результаты преддипломной практики, результат обзора современного состояния по данной теме, сбор теоретического материала.
    Краткое содержание дипломной работы: а) Обзор методов кластерного анализа; б) Описание методики кластерного анализа; в) Применение метода кластерного анализа при обработке данных;
    Рекомендуемая основная литература: из 16 наименований
    31 05 21

    ГРАФИК
    подготовки дипломной работы (проекта)
    Наименование разделов,
    перечень разрабатываемых
    вопросов
    Сроки представления
    научному руководителю
    Примечание
    Обзор методов кластерного анализа
    02.04.2021г.
    Описание методики кластерного анализа
    16.05.2021г.
    Применение метода кластерного анализа при обработке данных
    26.05.2021г.
    Подписи
    консультантов и нормоконтролера на законченную дипломную работу
    (проект) с указанием относящихся к ним разделов работы (проекта)
    Наименование
    разделов
    Консультанты, Ф.И.О.
    (уч.степень, звание)
    Дата подписания
    Подпись
    Применение методов кластеризации для анализа данных
    Сейлова Н. А., кандидат технических наук
    Нормоконтролер
    Кабдуллин М.А., ассистент
    Программная часть
    Научный руководитель:
    Сейлова Н. А.
    Задание принял к исполнению обучающийся:
    Досман Ә. М.
    Дата "24" ноября 2020 27.05.2021

    АННОТАЦИЯ
    Данная работа посвящена вопросам исследования методик кластерного анализа. В ходе выполнения работы был проведен обзор методов кластеризации; исследованы методы кластерного анализа для сегментации клиентов банка; проведена интерпертация результатов с использованием метода кластеризации.
    Анализ проведен на примере набора данных о клиентах банка, которые являются держателями кредитных карт. Проведена классификация групп клиентов, являющихся держателями кредитных карт. В ходе проведения работы были использованы методы многомерного статистического анализа и математической статистики.
    Для выполнения данной работы используется язык программирования
    Python с использованием библиотек pandas, numpy, matplotlib и sklearn.

    6
    АҢДАТПА
    Бұл жұмыс кластерлік талдау әдістемелерін зерттеу мәселелеріне арналған.
    Жұмысты орындау барысында кластерлеу әдістеріне шолу жүргізілді; банк клиенттерін сегменттеу үшін кластерлік талдау әдістері зерттелді; кластерлеу
    әдісін пайдалана отырып нәтижелерге интерпертация жүргізілді. Талдау несие карталарын ұстаушылар болып табылатын банк клиенттері туралы мәліметтер жиынтығы мысалында жүргізілді. Несие карталарын ұстаушылар болып табылатын клиенттер топтарының жіктелуі жүргізілді. Жұмыс барысында көп
    өлшемді статистикалық талдау және математикалық статистика әдістері
    қолданылды.
    Бұл жұмысты орындау үшін pandas, numpy, matplotlib және sklearn кітапханаларын қолдана отырып, Python бағдарламалау тілі қолданылады.

    THE SUMMARY
    This paper is devoted to the study of cluster analysis methods. In the course of the work, a review of clustering methods was carried out; cluster analysis methods for bank customers segmentation were investigated; results were interperted using the clustering method. The analysis is carried out on the example of a set of data on bank customers who are credit card holders. The classification of groups of customers who are credit card holders is carried out. In the course of the work, the methods of multivariate statistical analysis and mathematical statistics were used.
    To perform this work, the Python programming language is used using the pandas, numpy, matplotlib, and sklearn libraries.

    СОДЕРЖАНИЕ
    ВВЕДЕНИЕ .................................................................................................................. 9 1 Обзор методов кластерного анализа ................................................................. 11 1.1 Назначение кластерного анализа ...................................................................... 11 1.2 Обзор методов кластеризации ........................................................................... 11 1.3 Постановка задачи .............................................................................................. 13 2 Описание методики кластерного анализа ........................................................ 15 2.1 Используемые средства ...................................................................................... 15 2.2 Описание алгоритмов кластеризации ............................................................... 15 3 Применение метода кластерного анализа при обработке данных ................. 19 3.1 Входные данные .................................................................................................. 19 3.2 Исследовательский анализ данных ................................................................... 19 3.3 Подготовка данных ............................................................................................. 21 3.4 Определение оптимального числа кластеров .................................................. 22 3.5 Обучение модели ................................................................................................ 23 3.6 Построение графиков ......................................... Error! Bookmark not defined.
    ЗАКЛЮЧЕНИЕ ......................................................................................................... 32
    СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ................................................. 33
    ПРИЛОЖЕНИЕ ......................................................................................................... 34

    9
    ВВЕДЕНИЕ
    Кластерный анализ одни из статистических методов, используемый для группировки похожих объектов в соответствующие категории. Его также можно назвать анализом сегментации, анализом таксономии или кластеризацией.
    Цель кластерного анализа – сортировка различных объектов или точек данных в различные группы кластеров таким образом, чтобы степень связи между двумя объектами была высокой, если они принадлежат к одной группе, и низкой, если они принадлежат к разным группам.
    Кластерный анализ отличается от многих других статистических методов тем, что он в основном используется, когда исследователи не имеют предполагаемого принципа или факта, который они используют в качестве основы своих исследований.
    Этот метод анализа, как правило, выполняется во время экспериментальной фазы исследования, так как в отличие от таких методов, как факторный анализ, он не различает зависимые и независимые переменные.
    Вместо этого кластерный анализ применяется в основном для обнаружения структур в данных без объяснения или интерпретации.
    Проще говоря, кластерный анализ обнаруживает структуры в данных, не объясняя, почему эти структуры существуют.
    Например, когда кластерный анализ применяется в рамках исследования рынка, можно выделить определенные группы внутри клиентов. Анализ этих групп может затем определить, насколько вероятно, что кластер клиентов будет приобретать товары или услуги. Если эти группы четко определены, маркетинговая команда может затем ориентироваться на различные кластеры с помощью специально разработанной целевой коммуникации.
    Цель дипломной работы – использование методов кластерного анализа, их сравнение и примерное определение к какой группе клиентов относится тот или иной кластер данных и выдача рекомендации для каждого кластера клиентов с помощью визуализации результатов кластеризации на различных графиках.
    Набор данных для исследования содержит в себе данные о клиенте кредитной карточки, в котором содержатся информация о кредитном лимите клиента, и поведенческие переменные, описывающие способ их обращения в банк.
    Основные задачи для выполнения дипломной работы:
    - обработка данных;
    - обучение модели;
    - анализ данных;
    - интерпретация результатов.
    Задачи подробно разобраны в последующих главах
    В первой главе рассмотрены возможности кластерного анализа, его значение и суть в машинном обучении, далее идет разбор применяемых в этой работе методов кластеризации. Сформированы основные задачи, которые необходимо выполнить в этой работе.

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

    11
    1
    Обзор методов кластерного анализа
    1.1
    Назначение кластерного анализа
    Кластерный анализ может быть мощным инструментом сбора данных для различной организации, которые нуждаются в идентификации отдельных групп клиентов, сделки купли-продажи, или других типов поведении и вещей. Для примера можно взять страховую компанию, которая использует кластерный анализ чтобы определять требования мошенников, и банки, которые определяют кредитный рейтинг.
    Определение кластерного анализа.
    Кластерный анализ — это статистический метод анализа данных. Он выполняет работу путем организации элементов в группы или кластеры, на основе того, насколько они тесно связаны.
    Кластерный анализ, как и факторный тип анализа связан матрицами данных в которых переменные не были заранее разделены на подмножество критериев и предикторов. Цель кластерного анализа найти похожие группы субъектов, где «сходство» между каждой парой субъектов может означать некоторую глобальную меру по всему набору характеристик.
    Кластерный анализ — это алгоритм обучения без учителя, что означает что изначально неизвестно сколько кластеров существует в наборе данных до запуска модели. В отличии от многих статистических методов, кластерный анализ обычно используется, когда нет никаких предположений о вероятных отношениях в данных. Он предоставляет информацию о том где существуют ассоциации и закономерности в наборе данных, но не о том, что они могут означать, это уже работа аналитика.
    Как используется кластерный анализ?
    Во многом кластерный анализ применяется для классификации. Субъекты разделены на группы, так что каждый субъект больше похож на другие субъекты в своей группе, чем на субъекты вне группы.
    В маркетинге кластерный анализ может использоваться для сегментации аудитории, так что различные группы клиентов могут быть нацелены на наиболее релевантные сообщения.
    Каким бы ни было приложение, очистка данных – важный подготовительный шаг для успешного кластерного анализа. Кластеризация работает на уровне набора данных, где каждая точка оценивается относительно других, поэтому данные должны быть как можно более полными.
    1.2
    Обзор методов кластеризации
    Кластеризация k-средних. На рисунке 1.1 можно увидеть визуализацию алгоритма кластеризации k-средних:

    12
    Рисунок 1.1 – Визуализация алгоритма кластеризации k-средних
    Алгоритм k-средних присваивает каждую точку ближайшим к нему кластеру, центр которого также называется центроидом. Центр – это среднее значение всех точек в кластере, то есть его координаты являются средним арифметическим для каждого измерения отдельно по всем точкам в кластере.
    Иерархическая кластеризация. На рисунке 1.2 приведен визуализация иерархической кластеризации:
    Рисунок 1.2 – Визуализация алгоритма иерархической кластеризации
    Иерархическая кластеризация делится на два типа:
    - agglomerative (агломеративный);
    - divisive (разделительный).
    Для обработки данных я использовал метод агломеративной иерархической кластеризации. В этом методе изначально все точки данных рассматриваются как отдельные кластеры. На каждой итерации аналогичные кластеры объединяются с другими кластерами, пока не будет сформирован один единственный кластер или K кластеров.
    Кластеризацию так же можно разделить на две подгруппы:
    - жесткая кластеризация;
    - мягкая кластеризация.

    13
    До этого мы рассматривали кластеризации соответствующие к жесткому типу кластеризации, как k-средних и иерархическая.
    В жесткой кластеризации каждая точка данных кластеризуются или группируются в любой один кластер. Каждая точка данных может либо полностью принадлежать кластеру, либо нет.
    В мягкой кластеризации, вместо размещения каждой точки в отдельный кластер, назначается вероятность того, что эта точка будет находится в этом кластере. В мягкой кластеризации, так же называемой в нечеткой кластеризации, точка данных может принадлежать сразу нескольким кластерам со своей оценкой вероятности принадлежности.
    Нечеткая кластеризация с-средних. На рисунке 1.3 приведен визуализация нечеткой кластеризации:
    Рисунок 1.3 – Визуализация работы нечеткой кластеризации
    Нечеткая кластеризация с-средних – это метод мягкой кластеризации, который каждой точке данных присваивает оценку вероятности принадлежности к тому или иному кластеру.
    1.3
    Постановка задачи
    Цель дипломной работы – исследование методов кластеризации на примере набора данных клиентов банка, которые являются держателями кредитных карт.
    Поставленная цель требует решения следующих задач:
    - обзор методов кластеризации;
    - выбор средств разработки;
    - разведочный анализ данных;
    - выбор модели;
    - проведение кластерного анализа;
    - интерпретация результатов.
    В процессе выполнения анализа проводится стандартизация данных, определяется оптимальное количество кластеров с использованием выбранного

    14 средства, проводится обучение модели, строятся диаграммы и проводится интерпретация результатов.
    Работа выполняется с использованием языка программирования Phyton.

    15
    2
    Описание методики кластерного анализа
    2.1
    Используемые средства
    Для выполнения кластерного анализа я выбрал язык программирования
    Python 3, так как он является хорошим инструментом для машинного обучения и визуализации данных. Python – высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ[4].
    Среду для проведения работы я выбрал Jupyter Notebook. Jupyter Notebook является крайне удобным инструментом для аналитических отчетов, так как он позволяет хранить в себе код, графики а так же формулы, комментарии и изображения с помощью языка разметки Markdown.
    При выполнении дипломной работы так же были необходимы такие библиотеки как pandas, NumPy, matplotlib, seaborn, scikit-learn, SciPy.
    Библиотека NumPy используется для работы с многомерными массивами данных.
    Pandas является библиотекой, которая дает возможность обрабатывать и анализировать данные, и строится она поверх библиотеки NumPy.
    Библиотеки matplotlib и seaborn предназначены для визуализации данных.
    Они позволяют строить графики на заданных данных, что облегчает делать какие-либо выводы на их основе.
    Scikit-learn библиотека для машинного обучения, она содержит в себе различные алгоритмы регрессии, кластеризации и классификации, взаимодействует с численным Python и научными библиотеками NumPy и SkiPy.
    SciPy библиотека, используемая для научного и технического вычисления
    2.2
    Описание алгоритмов кластеризации
    Алгоритмическая последовательность работы кластеризации k-средних выглядит следующим образом:
    - указать количество кластеров k;
    - инициализировать центроиды, сперва перемешивая набор данных, затем случайно выбирая k точек данных для центроидов без замены;
    - повторять, пока центроиды не останутся без изменений. То есть назначение точек данных кластерам не изменяется;
    - вычислить сумму квадрата промежутка между точками данных и всеми центроидами;
    - определить каждую точку данных к ближайшему кластеру (центроиду);
    - вычислить центроиды для каждого кластера, взяв среднее значение всех точек данных, принадлежащих каждому кластеру.
    Блок-схема алгоритма k-средних приведен на рисунке 2.1:

    16
    Рисунок 2.1 – Блок-схема кластеризации k-средних
    Алгоритм агломеративной иерархической кластеризации довольно прост:
    - рассчитать матрицу близости;
    - пусть каждая точка данных будет кластером;
    - повторить: соединить два самых ближайших кластера и рассчитать новую матрицу близости;
    - пока не останется больше одного кластера.
    Блок-схема иерархической кластеризации на рисунке 2.2:

    17
    Рисунок 2.2 – Блок-схема иерархической кластеризации
    Алгоритм нечеткой кластеризации с-средних:
    - выполнить случайную инициализацию входных значении;
    - вычислить центры масс каждого кластера используя:
    ,
    (1) где p – количество точек данных; u
    ij
    – принадлежность i-х данных к j-му центру кластера; j – центр кластера; c
    i
    – представляет j-й центр кластера;
    - вычислить значение функции погрешности используя:
    ,
    (2)

    18 где ||c i
    – x j
    || – Евклидово расстояние между i-м данными и j-м центром кластера;
    - возвращаться к предыдущему шагу, пока значение погрешности не будет ниже установленного предела или уменьшение погрешности относительно прошлой итерации не будет пренебрежимо мало используя:
    ,
    (3) где k – шаг итерации; d
    ij
    – представляет собой евклидово расстояние между i-м данными и j- м центром кластера.

    19
    3
    Применение метода кластерного анализа при обработке данных
    3.1
    Входные данные
    Для выполнения дипломной работы был использован набор данных клиентов кредитных карт.
    Названия столбцов данных:
    - Sl_No (номер клиента);
    - Customer Key (ключ клиента);
    - Avg_Credit_Limit (средний кредитный лимит);
    - Total_Credit_Cards (всего кредитных карт);
    - Total_visits_bank (всего посещений банка);
    - Total_visits_online (всего онлайн посещений);
    - Total_calls_made (всего сделанных звонков).
    Загружаем данные во фрейм данных. Прописываем путь к файлу, так как файл находится в директории, достаточно написать имя файла. Пример кода загрузки данных на рисунке 3.1:
    Рисунок 3.1 – Чтение и загрузка набора данных
    3.2
    Исследовательский анализ данных
    Проводим разведочный анализ данных для выведения основных закономерностей и аномалии данных.
    Вывод первых 5 элементов на рисунке 3.2:
    Рисунок 3.2 – Первые 5 элементов набора данных
    Вывод общей информации данных на рисунке 3.3:

    20
    Рисунок 3.3 – Общая информация по набору данных
    Первые 2 столбца содержат в себе номер клиента и ключ клиента, в связи с чем они не имеют значимости для кластеризации данных, поэтому создаем копию набора данных без этих столбцов для дальнейшей работы с ним. Пример кода с функцией удаления столбцов на рисунке 3.4:
    Рисунок 3.4 – Создание нового набора данных без двух столбцов
    Строим парные диаграммы с участием каждого столбца, которые приведены на рисунке 3.5:
    Рисунок 3.5 – Парные диаграммы всех столбцов

    21
    Наглядно можно увидеть некоторые зависимости между столбцами.
    Далее строим «тепловую диаграмму» по корреляции столбцов, которая изображена на рисунке 3.6:
    Рисунок 3.6 – Тепловая диаграмма корреляции столбцов
    Можно заметить высокую корреляцию между столбцами среднего кредитного лимита и количества кредитных карточек, количества кредитных карточек и количества визитов в банк, среднего кредитного лимита и количества визитов онлайн. Так же можно заметить отрицательные корреляции.
    3.3
    Подготовка данных
    Поскольку алгоритмы кластеризации, используют измерения на основе расстояния для выявления сходства между точками данных, рекомендуется выполнить стандартизацию данных, чтобы среднее значение равнялось нулю, а стандартное отклонение равнялось единице.
    Создаем копию данных, чтобы оригинальные данные не подвергались изменению. Пример кода на рисунке 3.7:
    Рисунок 3.7 – Создание копия набора данных
    Проводим стандартизацию и преобразование файла. Пример кода на рисунке 3.8:
    Рисунок 3.8 – Стандартизация и преобразование набора данных

    22
    3.4
    Определение оптимального числа кластеров
    Чтобы выбрать оптимальное число кластеров в методе кластеризации k- средних можно использовать «Метод локтя».
    Метод локтя – один из самых популярных способов найти оптимальное число кластеров. В этом методе используется концепция значения WCSS. WCSS означает «Сумма квадратов внутри кластера», который определяет общие вариации внутри кластера. Формула для расчета значения WCSS (для 3 кластеров) приведена ниже:
    (4)
    В приведенной выше формуле WCSS, ∑
    Pi in Cluster1
    distance(P
    i
    C
    1
    )
    2
    – сумма квадратов промежутков между каждой точкой данных и ее центроидом в кластере 1 и того же значения для двух других членов.
    Чтобы найти оптимальное значение кластеров, метод локтя включает следующие шаги:
    - выполнить кластеризацию k-средних для данного набора данных для разных значений k (диапазоны от 1 до 10);
    - для каждого значения K вычисляется значение WCSS;
    - строит кривую между рассчитанными значениями WCSS и количеством кластеров k;
    - острая точка изгиба или точка графика выглядит как рука, тогда эта точка считается лучшим значением k.
    Рисунок 3.9 – График метода локтя
    График на рисунке 3.9 показывает, что k = 3 – хороший выбор. Временами может быть сложно определить подходящее количество кластеров, так как кривая может монотонно убывать и не показывать резких изгибов или как в этом примере кривая может иметь очевидную точку, в которой она начинает сглаживаться.

    23
    Теперь рассмотрим вариант определения количества кластеров путем построения дендрограммы для иерархической кластеризации, которая изображена на рисунке 3.10:
    Рисунок 3.10 – Дендограмма иерархической кластеризации
    На дендрограмме, которая изображена на рисунке 3.10 мы можем увидеть, что опстимальное число кластеров так же равняется 3.
    Алгоритм начинается с поиска двух близлежащего друг к другу точек данных на основе евклидова расстояния.
    После формирования одного большого кластера выбирается самое высокое вертикальное расстояние без проходящей через него горизонтальной линии, и по нему чертится одна горизонтальная линия. Количество вертикальных линий, которые проходят через проведенную горизонтальную линию, равно количеству кластеров.
    3.5
    Обучение модели
    После того как выяснили, что оптимальное число кластеров 3 начинаем обучение модели.
    Обучение модели k-средних. Пример кода показан на рисунке 3.11:
    Рисунок 3.11 – Обучение модели методом кластеризации k-средних
    В pred_km сохраняем значения кластеров.
    Далее создаем новый набор данных с дополнительным столбцом со значениями кластеров. Пример кода на рисунке 3.12:

    24
    Рисунок 3.12 – Новый набор данных с данными о кластеризации k- средних
    По той же схеме обучаем модель и создаем новый набор данных с кластерами по алгоритму иерархической кластеризации. Пример кода на рисунке
    3.13:
    Рисунок 3.13 – Обучение модели и создание нового набора данных с данными о иерархической кластеризации
    3.6
    Построение графиков
    Построим диаграмму pairplot с результатами кластеризации. Диаграмма pairplot кластеризация k-средних приведена на рисунке 3.14:

    25
    Рисунок 3.14 – Парные диаграммы всех столбцов с цветовой пометкой кластеров кластеризации k-средних
    Диаграмма pairplot для иерархической кластеризации приведена на рисунке 3.15:

    26
    Рисунок 3.15 – Парные диаграммы всех столбцов с цветовой пометкой кластеров иерархической кластеризации
    По графикам можно заметить, что оба метода кластеризации справились с задачей одинаково. На них можно заметить четкие разделения по кластерам.
    Для еще одного примера визуализации данных используем метод анализа главных компонент (PCA - Principal Component Analysis).
    Анализ главных компонентов (PCA) - это метод, используемый для подчеркивания вариативности и выявления сильных закономерностей в наборе данных. Его часто используют для упрощения изучения и визуализации данных.
    Зная зависимости и их силу, мы можем выразить несколько признаков через один, слить воедино, так сказать, и работать уже с более простой моделью.
    Конечно, избежать потерь информации, скорее всего не удастся, но минимизировать ее нам поможет как раз метод PCA[16].
    Визуализация кластеризации k-средних применением метода главных компонент на рисунке 3.16:

    27
    Рисунок 3.16 – Вид кластеризации k-средних применением метода главных компонент на наборе данных
    Визуализация иерархической кластеризации применением метода главных компонент на рисунке 3.16:
    Рисунок 3.17 – Вид иерархической кластеризации применением метода главных компонент на наборе данных
    Можно заметить совсем не большое различие между двумя графиками.
    Построим диаграммы размахов (boxplot) по кластерам и по каждому параметру.
    Диаграмма размахов по среднему кредитному лимиту на рисунке 3.18:

    28
    Рисунок 3.18 – Диаграмма размахов кредитного лимита по кластерам
    Как видно из рисунка, распределение кредитного лимита в разных кластерах разные и они отличаются не только по значениям медиан, но и по разбросам значений.
    Диаграмма размахов кластеров по количеству кредитных карт на рисунке
    3.19:
    Рисунок 3.19 – Диаграмма размахов количества кредитных карт по кластерам
    Диаграмма размахов кластеров по количеству визитов в банк на рисунке
    3.20:

    29
    Рисунок 3.20 – Диаграмма размахов количества визитов в банк по кластерам
    Диаграмма размахов кластеров по количеству визитов онлайн на рисунке
    3.21:
    Рисунок 3.21 – Диаграмма размахов количества визитов онлайн по кластерам
    Диаграмма размахов кластеров по количеству совершенных звонков на рисунке 3.22:
    Рисунок 3.22 – Диаграмма размахов количества совершенных звонков по кластерам

    30
    Как видно из представленных рисунков в кластер 0 входят клиенты со средним кредитным лимитом, также клиенты этой категории часто ходят в отделения банка, редко пользуются онлайн услугами, количество звонков в среднем 1-3 раза.
    Могут быть нацелены на перекрестные продажи через рекламные объявления в банке и через менеджеров банка
    Кластер 1 имеет следующие характеристики:
    - клиенты с высоким кредитным лимитом;
    - часто пользуются онлайн услугами.
    Предположительно современные клиенты с доходом выше среднего, которые хорошо разбираются в онлайн услугах. Могут быть привлечены посредством бонусов за покупки через интернет, предложениями на электронную почту. Предположительно наиболее являются наиболее прибыльными клиентами
    Кластер 2 имеет следующие характеристки:
    - клиенты с низким кредитным лимитом;
    - редко посещают отделения банка;
    - временами посещают банк онлайн;
    - частые звонки.
    Это могут быть клиенты с низкой заработанной платой, которые могут часто иметь проблемы с доходом, связи с чем часто обращаются к кредитным услугам банка. Возможно частые звонки связаны с тем, что у них могут быть проблемы с выплатой кредитов. Их можно использовать для перекрестных продаж посредством телефонных звонков.
    После визуального исследования распределений применим формальный критерий Краскела-Уоллиса. Формальный критерий выполним на примере параметров количества кредитных карт (Total_Credit_Cards) и количества совершенных звонков (Total_calls_made). Так как значение p-value близко к нулю, то на уровне значимости 5% нулевая гипотеза отклоняется. Это означает, что распределения количества кредитных карт и количества совершенных звонков отличаются по кластерам. Таким образом, медианы показателей количество кредитных карт и количества совершенных звонков по разным кластерам не равны. Пример кода с выводом на рисунке 3.23:

    31
    Рисунок 3.23 – Критерий Краскела-Уоллиса

    32
    ЗАКЛЮЧЕНИЕ
    В данной работе рассмотрены вопросы изучения методов кластерного анализа для процессов в социально-экономических системах. Кластерный анализ выполнен на примере набора данных о клиентах банка – держателей кредитных карт. По поставленным в работе целям решены следующие задачи:
    - проведен обзор существующих алгоритмов кластеризации;
    - исследованы алгоритмы метода кластерного анализа;
    - выбраны инструментальные средства для проведения кластерного анализа;
    - проведено сравнение методов кластеризации;
    - метод кластерного анализа применялся при классификации данных о клиентах банка;
    - была проведена интерпретация полученных результатов.
    Были использованы следующие методы:
    - методы многомерного статистического анализа;
    - алгоритмы кластерного анализа.
    Полученные результаты работы могут быть использованы при сегментации клиентов банка – держателей кредитных карточек.

    33
    СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
    1 Современные тенденции в кластерном анализе. Бериков В. С., Лбов Г. С.,
    2013 г.
    2 K-means and K-medoids applet. Mirkes E.M., University of Leicester, 2011.
    3 Лекции по алгоритмам кластеризации и многомерного шкалирования.
    Воронцов К. В., 2010 г.
    4 Python и машинное обучение. Рашка С.,
    2015 г.
    5 Python и анализ данных. Маккинни У., 2015 г.
    6 Изучаем pandas. Хейдт М., 2018 г.
    7 Beginning Python Visualization: Crafting Visual Transformation Scripts. Shai
    Vaingast, 2009 г.
    8 Прикладная математическая статистика. Кобзарь А. И., 2006 г.
    9 Основные таблицы математической статистики. Ликеш И., Ляга Й., 1985 г.
    10 Use of ranks in one-criterion variance analysis. Kruskal W. H., Wallis W. A.,
    1952 г.
    11 Pattern Recognition with Fuzzy Objective Function Algoritms. Bezdek J. C.,
    1982 г.
    12 Кластерный анализ. Мандель И. Д., 1988 г.
    13 Применение кластерного анализа в государственном управлении.
    Хайдуков Д. С. 2009 г
    14 Иерархический кластер-анализ и соответствия. Жамбю М., 1988 г.
    15 Hierarchical grouping to optimize an objective function. Ward J.H., 1963 г.
    16 A Tutorial on Principal Component Analysis. Jonathon Shlens, 2014 г.

    34
    ПРИЛОЖЕНИЕ
    import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns
    %matplotlib inline df = pd.read_csv('Credit Card Customer Data.csv') df.head(5) df.tail(5) df.info() data = df.drop(['Sl_No','Customer Key'],axis=1).copy() data.describe().T sns.pairplot(data) sns.heatmap(data.corr(), cmap = "BrBG", annot = True) from sklearn.preprocessing import StandardScaler, MinMaxScaler #
    Стандартизация from sklearn.cluster import KMeans # Метод k-средних from sklearn.decomposition import PCA # Метод главных компонентов from sklearn.metrics.pairwise import cosine_similarity
    X = data.copy() scaler = StandardScaler()
    X = scaler.fit_transform(X)
    X.shape clusters = 11 cost = [] for i in range(1,clusters): kmeans = KMeans(n_clusters = i, random_state = 42) kmeans.fit(X) cost.append(kmeans.inertia_) plt.plot(range(1, 11), cost, "b+-")

    35 plt.show() k_means = KMeans(n_clusters = 3, random_state = 42) k_means.fit(X) pred_km = k_means.labels_ data_km = pd.concat([data, pd.DataFrame({"cluster":pred_km})], axis=1) data_km.head() pca = PCA() principal_components = pca.fit_transform(X) x, y = principal_components[:,0], principal_components[:,1] print(principal_components.shape) colors = {0:"red",1:"blue",2:"green"} final_df = pd.DataFrame({'x': x, 'y':y, 'label':pred_km}) groups = final_df.groupby(pred_km) fig, ax = plt.subplots(figsize=(15, 10)) for name, group in groups: ax.plot(group.x, group.y, marker='o', line, ms=6, color=colors[name], mec='none') ax.set_aspect('auto') ax.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off') ax.tick_params(axis= 'y',which='both',left='off',top='off',labelleft='off') ax.set_title("Сегментация держателей кредитных карт") plt.show() sns.pairplot(data_km, hue='cluster', palette = ["red","blue","green"]) import scipy.cluster.hierarchy as sch plt.figure(figsize=(12,8)) dendrogram = sch.dendrogram(sch.linkage(X, method = 'ward')) plt.title('Дендрограмма') plt.xlabel('Клиенты')

    36 plt.ylabel('Евклидовы расстояния') plt.show() from sklearn.cluster import AgglomerativeClustering
    #Euclidean distance, and ward linkage (Евклидово расстояние и связь
    Уорда) hc = AgglomerativeClustering(n_clusters = 3, affinity = 'euclidean', linkage =
    'ward') hc.fit(X) pred_hc = hc.labels_ data_hc = pd.concat([data,pd.DataFrame({"cluster":pred_hc})], axis=1) data_hc.head() pca = PCA() principal_components = pca.fit_transform(X) x, y = principal_components[:,0], principal_components[:,1] print(principal_components.shape) colors = {0:"red",1:"blue",2:"green"} final_df = pd.DataFrame({'x': x, 'y':y, 'label':pred_hc}) groups = final_df.groupby(pred_hc) fig, ax = plt.subplots(figsize=(15, 10)) for name, group in groups: ax.plot(group.x, group.y, marker='o', line, ms=6, color=colors[name], mec='none') ax.set_aspect('auto') ax.tick_params(axis='x',which='both',bottom='off',top='off',labelbottom='off') ax.tick_params(axis= 'y',which='both',left='off',top='off',labelleft='off') ax.set_title("Сегментация держателей кредитных карт") plt.show() sns.pairplot(data_hc, hue='cluster', palette = ["red","blue","green"]) plt.subplots(figsize=(10,5)) sns.boxplot(x = 'cluster', y = 'Avg_Credit_Limit', data = data_km)

    37 plt.show() plt.subplots(figsize=(10,5)) sns.boxplot(x = 'cluster', y = 'Total_Credit_Cards', data = data_km) plt.show() plt.subplots(figsize=(10,5)) sns.boxplot(x = 'cluster', y = 'Total_visits_bank', data = data_km) plt.show() plt.subplots(figsize=(10,5)) sns.boxplot(x = 'cluster', y = 'Total_visits_online', data = data_km) plt.show() plt.subplots(figsize=(10,5)) sns.boxplot(x = 'cluster', y = 'Total_calls_made', data = data_km) plt.show()

    38

    39 31.05.2021

    40


    написать администратору сайта