Библиотеки языка программирования Python для анализа оттока клиентов банка
УДК 004
Е. Е. Белова, О. В. Толстель
ИСПОЛЬЗОВАНИЕ БИБЛИОТЕК
ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON
ДЛЯ АНАЛИЗА ОТТОКА КЛИЕНТОВ БАНКА
21
В настоящее время борьба за клиентов среди банков обостряется.
Показатель оттока клиентов очень важен для анализа деятельности
банка и планировании дальнейшей работы. В статье использованы пять
алгоритмов для расчета оттока клиентов банка. Коды программ написаны на Python.
At the present time, competition for customers among banks is escalating. The indicator of customer churn is very important for the analysis and
planning bank work. Five algorithms for calculating the outflow of bank customers are used in this article. Program codes are written in Python.
Ключевые слова: клиенты банка, анализ данных, прогнозирование, логистическая регрессия, наивный Байес, деревья решений, алгоритм ближайшего
соседа, случайный лес, Python.
Keywords: bank customers, data analysis, forecasting, logistic regression, Guassian naive Bayes, decision trees, KNN, random forest, Python.
Отток клиентов (англ. churn) — это потеря клиентов, выраженная в
отсутствии покупок или платежей в течение определенного периода
времени.
Показатель оттока крайне важен для компаний с подписной и транзакционной моделями бизнеса, подразумевающими регулярные платежи в сторону компании [1].
Данный показатель зависит от выбранной методики расчета. Существенным параметром является величина периода времени неактивности клиента, чтобы считать данного клиента потерянным для банка.
Если данный параметр выбрать неверно, то это приведет к искажениям
в оценке и трактовке оттока.
Базовая формула для расчета оттока имеет следующий вид:
lk
,
sk
где — коэффициент оттока клиентов; lk — количество потерянных
клиентов за интервал времени; s k — общее количество клиентов на
начало периода измерения.
Интервал времени, на котором измеряется отток, должен выбираться с учетом специфики бизнеса (сезонность, стадия жизненного цикла
продукта, является ли данный товар или услуга новыми и т. д.).
© Белова Е. Е., Толстель О. В., 2019
Вестник Балтийского федерального университета им. И. Канта.
Сер.: Физико-математические и технические науки. 2019. № 4. С. 21—30.
21
Е. Е. Белова, О. В. Толстель
Для полноты картины сам по себе коэффициент оттока является
малоинформативным показателем. Важно понимать структуру оттока:
1) какие сегменты клиентов в первую очередь подвержены оттоку и
почему;
2) какие факторы чаще всего служат причиной потери клиентов;
3) какова динамика оттока и тенденции по его структуре.
Для полного анализа необходимо дать оценку оттока в денежном
выражении. Эта оценка возможна при моделировании денежных потоков, которые получила бы компания, если бы клиент продолжал пользоваться ее услугами. Формула оценки ущерба компании от оттока
клиентов имеет вид
22
22
lk p ,
где — ущерб от оттока; lk — количество потерянных клиентов; p —
средний чек (размер платежа); — частота совершения покупок (количество платежей) за интервал времени.
Рассмотрим модель расчета оттока клиентов банка с использованием Python. Задача состоит в том, чтобы найти параметры, максимально
влияющие на отток клиентов банка, и создать гипотезу, которая предсказывала бы отток клиентов банка.
В выборку данных для этой модели войдут возраст, пол и количество денежных средств на счету клиента.
Будем использовать следующие инструменты:
— NumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц;
— Pandas — программная библиотека на языке Python для обработки и анализа данных (строится поверх NumPy);
— Sklearn (Scikit-learn) — бесплатная библиотека машинного обучения для языка Python;
— Matplotlib — библиотека для визуализации данных.
Перечень входных данных [2] приведен в таблице 1.
Таблица 1
Входные данные
Название
RowNumber
CustomerId
Surname
CreditScore
Geography
Gender
Age
Tenure
Balance
NumOfProducts
HasCrCard
IsActiveMember
EstimatedSalary
Exited
Расшифровка
Номер строки
Id пользователя
Фамилия клиента
Кредитный рейтинг
Откуда клиент
Пол клиента
Возраст клиента
Срок пребывания клиента в компании
Баланс клиента
Количество продуктов, используемых клиентом
Имеющаяся кредитная карта
Является ли клиент активным пользователем
Оценка заработной платы
Клиент покинул банк
Библиотеки языка программирования Python для анализа оттока клиентов банка
Импорт библиотек
Перед началом анализа данных необходимо импортировать все
нужные библиотеки:
23
23
Импорт данных
Считаем входные данные. Выведем первые 10 строк данных:
dataset = pd.read_csv('Churn_Modelling.csv')
dataset.head(10)
Можно посмотреть информацию по этим данным, используя команду info(). Полученный список содержит все столбцы, их типы данных и количество ненулевых значений:
Е. Е. Белова, О. В. Толстель
24
Следует отметить, что нулевых значений нет, что свидетельствует о
полноте данных.
Выведем описательную статистику. С помощью команды describe()
можно посмотреть минимальные / максимальные и средние значения
для столбцов, а также другую информацию:
Анализ данных
Проанализируем данные. Например, выведем информацию о возрасте:
24
Библиотеки языка программирования Python для анализа оттока клиентов банка
Также выведем количество людей, разделенных по географическому признаку:
25
Посмотрим, в каком соотношении находятся мужчины и женщины:
Для правильной работы классификатора необходимо преобразование категориального признака в числовой. Нам нужно изменить
2 столбца: Gender и Geography. Преобразование выглядит следующим
образом:
Создадим корреляционную матрицу, то есть таблицу, в строках и
столбцах которой записан коэффициент корреляции между соответствующими параметрами. Данная квадратная матрица симметрична
относительно главной диагонали.
correlation = dataset.corr()
plt.figure(figsize = (15, 15))
sns.heatmap(correlation, vmax = 1, square = True, annot = True, cmap =
'cubehelix')
plt.title('Корреляционная матрица')
plt.show()
Корреляционная матрица показывает, какие параметры будут влиять на результат. Сразу можно выделить 4 положительные корреляции:
Balance, Age, Geography и EstimatedSalary.
25
Е. Е. Белова, О. В. Толстель
26
26
Предварительная обработка данных
Разобьем набор данных на две части (x — независимые переменные,
y — зависимые переменные):
Разделим наш набор данных. Это поможет избежать проблем с переобучением:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
Библиотеки языка программирования Python для анализа оттока клиентов банка
Моделирование
Данную модель будем реализовывать с помощью 5 алгоритмов.
1. Логистическая регрессия (Logistic Regression) — метод построения
линейного классификатора, который позволяет оценивать апостериорные вероятности принадлежности объектов классам.
27
27
2. Наивный Байес (Guassian Naive Bayes) — алгоритм классификации,
который основан на теореме Байеса с допущением о независимости
признаков. Будем использовать нормальное распределение.
Е. Е. Белова, О. В. Толстель
3. Деревья решений (Decision Trees).
28
28
4. Алгоритм ближайшего соседа (KNN) выделяет из всех наблюдений
k известные объекты ( k -ближайших соседей), похожие на новый неизвестный ранее объект. На основе классов ближайших соседей выносится решение касательно нового объекта.
Библиотеки языка программирования Python для анализа оттока клиентов банка
5. Случайный лес (Random Forest) — множество решающих деревьев.
29
29
Выводы и сравнения алгоритмов
В таблице 2 представлены результаты точности предсказаний.
Таблица 2
Результаты точности предсказаний
Алгоритм
Логистическая регрессия
Наивный Байес
Деревья решений
Алгоритм ближайшего соседа
Случайный лес
Результат предсказания
0,7865
0,785
0,8605
0,7965
0,871
Е. Е. Белова, О. В. Толстель
Реальная статистика: из 10 000 клиентов ушло 2037 человек.
Вывод. Из пяти представленных алгоритмов наилучший результат
показал случайный лес. Точность предсказания составляет 87,1%.
Список литературы
30
1. Что такое отток клиентов и как с ним бороться // NGM. URL: https://
ngmsys.com/blog/churn-management (дата обращения: 01.12.2019).
2. Bank-Customer-Churn-Modeling // Kaggle: Your Machine Learning and Data
Science Community. URL: https://www.kaggle.com/barelydedicated/bank-customerchurn-modeling (дата обращения: 23.11.2019).
Об авторах
Елизавета Евгеньевна Белова — магистрант, Балтийский федеральный университет им. И. Канта, Россия.
E-mail: el_liza_belova@mail.ru
Олег Владимирович Толстель — канд. техн. наук, доц., Балтийский федеральный университет им. И. Канта, Россия.
E-mail: oleg77764@mail.ru
The authors
Elizaveta E. Belova, Master’s Student, I. Kant Baltic Federal University, Russia.
E-mail: el_liza_belova@mail.ru
Dr Oleg V. Tolstel’, Associate Professor, I. Kant Baltic Federal University, Russia.
E-mail: oleg77764@mail.ru
30
Отзывы:
Авторизуйтесь, чтобы оставить отзыви хорошего настроения
удачи
успехов в конкурсе
Наверное было затрачено много времени и труда на работу
Продолжай свое исследование
Админам респект
Как на счет взаимных комментариев под работами?)
Красиво написанная работа
Так держать
Молодец
Интересная работа!