Файл: Допущен к защите Заведующий кафедрой коихи н. А. Сеилова дипломная работа на тему Применение методов кластеризации для анализа данных Специальность 5В070300 Информационные системы.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 91
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
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: