Контекст

Банк стремится повысить свою оценку посредством кампании по реализации своей депозитной программы. Однако до сих пор метод, используемый для выявления потенциальных клиентов, заинтересованных в открытии депозитных счетов, по-прежнему основан на ручных процессах. Банк хочет определить клиентов, которые действительно имеют потенциал для участия в кампании депозитной программы. Идентифицируя этих потенциальных клиентов, банк может сэкономить на маркетинговых затратах и ​​повысить эффективность использования времени.

Стекхолдер

  • Менеджер по маркетингу банка
  • Отдел маркетинга банка.

Проблема

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

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

До сих пор банк продолжал вручную оценивать клиентов, которые, по прогнозам, будут заинтересованы или не заинтересованы в открытии депозитных счетов. Например, если у банка в общей сложности 100 000 клиентов, ручная оценка, как правило, вносит субъективность из-за ограниченного количества доступных человеческих ресурсов. Кроме того, ручные методы подвержены ошибкам прогнозирования. Продолжая использовать ручные методы, если в банке работает всего 20 специалистов по маркетингу и он может эффективно идентифицировать и связаться с 10 потенциальными клиентами в день, то для завершения оценки потребуется 500 дней. Следовательно, на основе этого анализа банк ставит задачу выявить категорию потенциальных клиентов-кандидатов, у которых прогнозируется интерес к открытию депозитных счетов.

Цели

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

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

Аналитический подход

Мы будем анализировать данные, чтобы обнаружить модели машинного обучения, способные различать категории клиентов, заинтересованных в открытии депозитов, и тех, кто этого не делает.

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

Оценка метрик

Цели анализа можно разделить на следующие категории:
0: Нет (не заинтересованы в открытии депозитного счета)
1: Да (заинтересованы в открытии депозитного счета)

  • Ошибка типа I | Ложное срабатывание
    В ситуациях, когда предполагается, что клиенты будут заинтересованы в открытии депозитного счета, но на самом деле они не собираются этого делать.
    последствие заключается в том, что маркетинговые усилия банка могут оказаться тщетными, поскольку они не будут охватывать нужную целевую аудиторию.
  • Ошибка типа II | Ложное отрицание
    В ситуациях, когда предполагается, что клиенты не будут заинтересованы в открытии депозитного счета, но на самом деле они хотят его открыть.
    следствие: банк упустит потенциальную прибыль от этих клиентов, которые действительно намерены открыть депозитные счета.

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

  • Количество физических лиц, не открывающих депозитные счета: 4081 человек (источник из базы данных)
  • Количество физических лиц, открывающих депозитные счета: 3732 человека (источник из базы данных)
  • Средняя стоимость маркетинга депозитов от банков составляет 1–3% от выручки источник.
  • Минимальный депозит для открытия депозитного счета на человека составляет примерно 1000 долларов США исходник
  • Средняя процентная ставка по депозиту: 5,77% источник
  • Средняя процентная ставка по кредиту: 10,42% источник
  • Доход: 3732 x 1000 долларов США = 3 732 000 долларов США.
  • Маркетинговые затраты составляют 1% от 3 732 000 долларов США, в результате чего получается 37 320 долларов США.

а. Вычислите ошибку типа I

Цена за тысячу показов (Cost Per Marketing) – это расчет маркетинговых затрат банка на одного клиента, рассчитанный по формуле:

Глядя на CPM, можно сказать, что банк потратит примерно 4,77 доллара на маркетинговые расходы на одного клиента. Таким образом, если прогнозируется, что клиент не откроет депозитный счет, банк фактически потеряет 4,77 доллара маркетинговых расходов на одного клиента.

б. Рассчитать ошибку типа II

Банк получает прибыль от предоставленной суммы кредита, причем на эту сумму частично влияет увеличение депозитов.

Следовательно, банк потенциально может потерять 46,5 долларов прибыли на каждого клиента, открывающего депозитный счет.

После рассмотрения вышеупомянутых факторов мы признаем, что ошибки как типа I, так и типа II одинаково важны для минимизации. Поэтому наш подход направлен на создание модели, минимизирующей обе ошибки. Таким образом, для анализа выбрана метрика f1-score.

Понимание данных

В наборе данных 17 столбцов и 7813 строк. Ни в одном из столбцов нет пропущенных значений. Описание столбцов следующее:

Числовые столбцы:

  • Непрерывный: возраст, баланс, продолжительность
  • Дискретно: кампания, дни, предыдущая, день

Категориальные столбцы:

  • Порядковый номер: месяц, образование
  • Номинальные: работа, жилье, кредит, контакт, результат, депозит, дефолт, брак

Обработка данных

а. Редкая ценность

Из графика выше видно, что для целевой переменной в этом анализе (депозита) наблюдается тенденция к балансу. Это связано с тем, что идентифицированные клиенты, открывающие депозитные счета, составляют 47,8%, а клиенты, идентифицированные как не открывающие депозитные счета, составляют 52,2%.

б. Обнаружение выбросов

Для обнаружения выбросов используется метод многомерного изолированного леса (iForest) с установленным порогом 0,05. Следовательно, установлено, что выбросы составляют 5% данных, что составляет 391 точку данных. Обработка этих выбросов будет выполняться в рамках настройки PyCaret.

в. Проблемные данные

В наборе данных есть несколько экземпляров проблемных данных. Например, в столбце Pdays есть значения -1. На самом деле значение -1 в столбце «дней» означает, что банк никогда не связывался с клиентом. Однако наличие значения -1 потенциально может снизить производительность модели. Следовательно, было принято решение справиться с этим, заменив -1 на 0.

Что касается других проблемных данных, такие столбцы, как "работа", "контакт", "результат" и "образование", имеют записи, помеченные как "неизвестно". Для job и poutcome мы обработаем «неизвестные» значения, сгруппировав их в существующие категории. Для столбцов "контакты" и "образование" значения "неизвестно" останутся без изменений, поскольку их нельзя однозначно классифицировать.

Разработка функций

Мы разделим набор данных на данные для обучения и тестирования, выделив 70% для данных для обучения и 30% для данных для тестирования. Затем вы планируете создать настраиваемый конвейер, который будет интегрирован в установку PyCaret. Содержимое этого пользовательского конвейера включает несколько шагов:

  1. Замена некоторых категориальных столбцов («дни», «работа», «месяц», «результат» и «образование»).
  2. Выполнение дискретизации столбца «возраст», разделив его на четыре категории: «молодой», «ранний-средний», «поздний-средний» и «старый». Это подразделение направлено на уменьшение переоснащения на основе предыдущих модельных экспериментов.
  3. Конвейер также будет включать кодирование и масштабирование.

Разрабатывая этот настраиваемый конвейер, вы настраиваете комплексный процесс для эффективной предварительной обработки данных перед их интеграцией в настройку PyCaret для экспериментов с моделями.

# Import library 
from pycaret.classification import *

clf = setup(
    # general setup
    data=df_train, 
    target='deposit',
    train_size=0.7,
    verbose=True,
    preprocess=False,
    
    # feature setup
    numeric_features= ['age', 'balance', 'month', 'campaign', 'pdays', 'day', 'duration', 'previous'],
    categorical_features = ['job','contact', 'poutcome', 'education', 'marital','housing', 'loan', 'default'],

    # experiment setup
    session_id=42,
    log_experiment='dagshub', #repository dagshub : fdkurnianto/Capstone_project3
    log_data=True,
    log_plots=True,

    # data wrangling
    outliers_method='iforest',
    outliers_threshold=0.05,
    custom_pipeline=customPipeline,
    custom_pipeline_position=0,
)

Модельный эксперимент

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

Принимая во внимание значения f1-score, мы выберем 3 лучшие модели с наивысшими баллами, а именно машину повышения градиента света (lightgbm), классификатор повышения градиента (gbc) и классификатор случайного леса (rf). Далее мы приступим к перекрестной проверке и настройке гиперпараметров для этих трех выбранных моделей.

а. Настройка машины повышения градиента света

Чтобы оптимизировать модель Light Gradient Boosting Machine, мы установим порог вероятности 0,39. Это значение получается из итераций, которые дали наилучшее значение метрики. Кроме того, поскольку переобучение все еще вызывает беспокойство, мы продолжим настройку гиперпараметров с учетом следующих факторов:

  • max_depth: это максимальная глубина каждого дерева в ансамбле.
  • learning_rate: это означает вес вклада каждой модели (дерева) в каждой итерации.
  • n_estimators: Этот параметр задает количество деревьев в ансамбле.
  • reg_alpha: это параметр регуляризации типа L1 (лассо). Регуляризация используется для предотвращения переобучения путем добавления штрафов к коэффициентам модели.
  • reg_lambda: Это параметр регуляризации типа L2 (Ridge).
  • reg_alpha : эта регуляризация направлена ​​на контроль сложности модели. Когда он выше, он усиливает регуляризацию L2 и снижает риск переобучения.
  • num_leaves: этот параметр определяет максимальное количество листьев в каждом дереве в ансамбле.

И вот результаты:

б. Настройка классификатора повышения градиента

Чтобы оптимизировать модель Light Gradient Boosting Machine, мы установим порог вероятности 0,33. Это значение получается из итераций, которые дали наилучшее значение метрики. Чтобы улучшить f1-score, мы попытаемся настроить гиперпараметры, принимая во внимание:

  • max_depth: представляет собой максимальную глубину каждого дерева в ансамбле.
  • learning_rate: это означает вес вклада каждой модели (дерева) в каждой итерации.
  • n_estimators: Этот параметр задает количество деревьев в ансамбле.
  • max_features: этот параметр управляет количеством признаков, учитываемых при поиске наилучшего разделения в каждом узле дерева решений.

И вот результаты:

в. Настройка классификатора случайного леса

Чтобы оптимизировать модель классификатора случайного леса, мы установим порог вероятности 0,43. Это значение получено из итераций, которые дали наилучший результат метрики. После рассмотрения порога вероятности мы приступим к настройке гиперпараметров, сосредоточив внимание на следующих категориях:

  • max_depth: Это означает максимальную глубину каждого дерева в ансамбле.
  • learning_rate: указывает вес вклада каждой модели (дерева) в каждой итерации.
  • n_estimators: Этот параметр определяет количество деревьев в ансамбле.
  • max_features: этот параметр управляет количеством признаков, учитываемых при поиске наилучшего разделения в каждом узле дерева решений.

И вот результаты:

д. Выбор модели

После процесса настройки гиперпараметров модель LightGbm показала более высокий f1-score по сравнению с другими моделями. Поэтому мы продолжим использовать эту модель для проведения анализа.

е. Модель оценки

Полученные сведения:

  • f1-score - это гармоническое среднее значение отзыва и точности.
  • f1-score для отрицательного класса составляет 0,853.
  • f1-score для положительного класса составляет 0,860.
  • Для положительного класса отзыв равен 0,925, а точность — 0,804. Это указывает на то, что из всех положительных наблюдений (783 клиента) примерно 92,5% клиентов будут правильно предсказаны как действительно открывающие депозитный счет (истинные положительные результаты), что составляет 724 клиента. Из всех клиентов, которые, по прогнозам, откроют депозитный счет (истинные срабатывания + ложные срабатывания, 900 клиентов), около 80,4% действительно откроют счет, или 724 клиента.
  • Для отрицательного класса отзыв равен 0,794, а точность — 0,920. Это говорит о том, что из всех негативных наблюдений (856 клиентов) около 79,4% клиентов будут правильно предсказаны как действительно не открывающие депозитный счет (истинно отрицательные), что равняется 679 клиентам. Из всех клиентов, которые прогнозировали, что не откроют депозитный счет (истинно отрицательные + ложноотрицательные, 739 клиентов), около 92% действительно не откроют счет, или 679 клиентов.

ф. Экспланаси Модель

Чтобы выполнить объяснение модели, мы используем метод SHAP (Shapley Additive Explanations). SHAP — это метод интерпретации в машинном обучении, используемый для объяснения отдельных прогнозов модели путем рассмотрения вклада каждой функции в этот прогноз. В контексте интерпретации прогностических моделей функция SHAP позволяет измерить вклад каждой функции в прогноз модели для конкретной точки данных.

Статистика:

  • Мы обнаружили, что наиболее важной особенностью построения этой модели машинного обучения является продолжительность.
  • Для функции продолжительности показано, что чем дольше банк связывается с клиентом, тем больше вероятность того, что клиент откроет депозитный счет.
  • Следующей наиболее важной характеристикой является месяц, указывающий на то, что клиенты, с которыми связались в более поздние и более ранние месяцы года, как правило, влияют на их прогнозирование открытия депозитного счета. Тем не менее, большинство клиентов, исходя из характеристики месяца, склонны считать, что они не открывают депозитный счет.
  • В функции контактов видно, что клиенты, с которыми не связывались (с «неизвестными» значениями), как правило, имеют большее влияние на предсказание открытия депозитного счета.
  • Функция poutcome предполагает, что клиенты, которые были успешно привлечены банком в ходе предыдущей кампании, с большей вероятностью откроют депозитный счет.
  • Что касается жилищной особенности, то люди, у которых нет жилищного кредита, с большей вероятностью откроют депозитный счет.

г. Ограничение модели

  • Ограничение столбца «Работа».
    Модель способна прогнозировать только клиентов с рабочими ролями, указанными как «администратор», «самозанятый», «услуги», «горничная», «техник», «управление», «студент», «синий». воротник, предприниматель, пенсионер, безработный, неизвестный. Должностные роли, отсутствующие в столбце, классифицируются как неизвестные. Однако представление таких данных как неизвестных может привести к систематической ошибке, поскольку эти роли изначально не были включены в столбец при создании модели машинного обучения.
  • Ограничение столбца «возраст»:
    В столбце «возраст» данные будут разделены на 4 категории: молодые (18–37 лет), ранние-средние (38–56 лет). лет), позднесредний (57–75 лет) и пожилой (75–95 лет). Эта категоризация позволяет модели оптимально работать при прогнозировании клиентов, возраст которых находится в диапазоне от 18 до 95 лет, для включения данных в тестовый набор.
  • Ограничение столбца «контакт»:
    В процессе создания модели доступны следующие варианты контактов: мобильный, телефон и неизвестный. Таким образом, при столкновении с данными, которые не могут быть определены, они могут быть отнесены к категории неизвестных, даже если это может привести к смещению данных.
  • Ограничение столбца «семейное»:
    В процессе создания модели можно определить следующие категории семейного положения: женат, не женат и разведен. Поэтому другие категории семейного положения в настоящее время не оптимизированы для эффективной работы в машинном обучении.
  • Ограничение столбца «образование»:
    Ограничение столбца образования во время создания модели заключается в том, что он может идентифицировать только уровни образования как среднее, высшее, начальное и неизвестное. Любые неуказанные уровни образования могут быть классифицированы как неизвестные, но существует высокая вероятность того, что модель не будет работать оптимально из-за систематической ошибки, вносимой такими данными.

Заключение

Основываясь на построенной модели LightGradient Boosting Machine (LightGBM), мы можем сделать вывод, что если бы мы использовали модель для фильтрации/выбора клиентов для депозитных предложений, модель могла бы правильно прогнозировать с точностью 85,63% со стандартным отклонением 2,3%, что указывает на диапазон производительности модели.

Если предположить, что затраты на маркетинг для одного клиента составляют около 4,77 доллара США, и если потеря одного депозитного клиента оценивается как потенциальная потеря в размере 46,5 долларов США (согласно оценочной метрике), у нас есть в общей сложности 2342 клиента, из которых 1223 не хотят открыть депозитный счет, и 1119 хотят открыть депозитный счет.

Без модели:

Тип I

  • Всего клиентов, не заинтересованных в открытии депозитного счета: 1223 (всего клиентов, не заинтересованных)
  • Общая стоимость маркетинга: 2342 x 4,77 доллара США = 11 171,34 доллара США (поскольку маркетинг проводится для всех клиентов).
  • Общие затраты на маркетинг впустую: 1223 x 4,77 долл. США = 5 833,71 долл. США.

Тип II

  • Общая потенциальная упущенная выгода от одного клиента: 1223 x 46,5 долл. США = 56 869,5 долл. США.

С моделью:

Тип I

  • Ложноположительные случаи: 242 клиента
  • Общие затраты на маркетинг впустую: 242 x 4,77 доллара = 1151,34 доллара.

Отличие от модели без модели: экономия 4 682,37 долл. США.

Тип II

  • Общая потенциальная упущенная выгода от одного клиента: (1223–242) x 46,5 долларов США = 45 616,5 долларов США.

Отличие от модели без модели: снижение на 11 253 долл. США.

На основании приведенных выше расчетов можно сделать вывод, что с помощью созданной модели банк может снизить затраты на маркетинг и возможные потери прибыли от клиента.

Рекомендация

Рекомендация для бизнеса

Вот несколько стратегий, позволяющих повысить вероятность того, что клиенты будут участвовать в депозитных предложениях:

  • Предлагайте клиентам более длительные кампании, о чем свидетельствует влияние более длительных кампаний на взаимодействие клиентов с депозитами.
  • Максимизируйте предложения депозитных кампаний в течение 1-го квартала (январь, февраль, март), 3-го квартала (июль, август, сентябрь) и 4-го квартала (октябрь, ноябрь, декабрь).
  • Оценивайте успех каждой кампании; анализ показывает, что клиенты, которые успешно участвовали в предыдущей депозитной кампании, с большей вероятностью будут участвовать в последующих кампаниях.
  • Сосредоточьте кампании по депозитам на клиентах, у которых нет рассрочки по ипотечному кредиту, поскольку анализ показывает, что клиенты без рассрочки по жилищному кредиту с большей вероятностью будут участвовать в предложениях по депозиту.

Рекомендация по модели

Вот несколько стратегий дальнейшего развития модели для повышения производительности:

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

Заключительное заявление

Автор выражает глубокую признательность всем сторонам, участвовавшим в анализе и разработке модели.
Предварительные данные можно найти в загрузке, и в связи с тем, что использование только основного набора данных привело к тому, что результаты моделирования имеют тенденцию к недообучению и, будучи менее чем оптимальным, автор включил несколько функций с соответствующих веб-сайтов, которые были согласованы с основным набором данных.
Полный процесс вместе с кодом можно увидеть на Github

Контактное лицо:
GitHub
Электронная почта