EDA, визуализация, построение и оценка моделей

Введение:

Данные связаны с кампаниями прямого маркетинга португальского банковского учреждения. Набор данных можно загрузить из репозитория машинного обучения UCI или с kaggle.com.

Маркетинговые кампании были основаны на телефонных звонках. Часто требовалось более одного контакта с одним и тем же клиентом, чтобы узнать, будет ли продукт (срочный банковский депозит) подписан («да») или нет («нет»).

Набор данных состоит из 45211 записей и имеет 19 различных атрибутов.

Данные включают атрибуты, связанные с клиентами, кампаниями и т. д., такие как:

# Данные клиента:

возраст (числовой) : это возраст клиента.

Работа (категория): дает информацию о том, какой тип работы выполняет клиент? («администратор», «рабочий», «предприниматель», «домработница», «руководство», «пенсионер», «самозанятый», «услуги», «студент», «техник», «безработный», 'неизвестный')

семейное (категориальное): семейное положение клиента («разведен», «женат», «холост», «неизвестно»; примечание: «разведен» означает разведенный или вдовец).

образование (категориальное): образовательная квалификация клиента.

[начальное: ('базовый.4г','базовый.6г','базовый.9л','старшая.школа','неграмотный'), Среднее: ('профессиональный.курс'), Высшее: ('университетская.степень ','неизвестный')]

по умолчанию (категория): есть ли у клиента кредит в случае невыполнения обязательств? («нет», «да», «неизвестно»)

жилье (категория) : есть ли у клиента жилищный кредит? («нет», «да», «неизвестно»)

кредит (категория) : если у клиента есть личный кредит? («нет», «да», «неизвестно»)

зарплата (числовая) : какова зарплата клиента (непрерывно).

баланс (числовой): сумма остатка на счете клиента.

# Относится к последнему контакту в текущей кампании:

Контакт (категория): по какому типу связи с клиентом связывались («сотовый», «телефон»).

месяц (категория): месяц года, когда в последний раз обращались («январь», «февраль», «март», …, «ноябрь», «декабрь»).

day_of_week (категория) : день недели, когда последний раз связывались (1,2,3,4,5….)

duration (numeric.) : продолжительность звонка при последнем контакте в секундах. Важное примечание: этот атрибут сильно влияет на цель вывода (например, если продолжительность = 0, тогда ответ = «нет»). Тем не менее, продолжительность не известна до выполнения вызова.

# Другие атрибуты:

кампания (числовое значение): количество контактов во время этой кампании и для этого клиента (включая последний контакт).

pdays (число.): количество дней, прошедших с момента последнего контакта с клиентом из предыдущей кампании (999 означает, что с клиентом ранее не связывались).

предыдущий (числовой): количество контактов, выполненных до этой кампании и для этого клиента.

результат (категориальный) : результат предыдущей маркетинговой кампании для этого клиента («неудача», «несуществующий», «успех»).

targeted (categorical): был ли клиент ранее нацелен на какую-либо кампанию («да», «нет»).

Выходная переменная (желаемая цель):

ответ (двоичный) : Подписался ли клиент на срочный депозит? ( 'да нет')

Постановка задачи

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

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

Импорт и подготовка данных

Исследовательский анализ данных

Проверить нулевые значения

Поскольку нулевых значений нет, мы можем продолжить.

Если мы проверим описание, у нас будет столбец pdays с его 25-м, 50-м, 75-м процентилем как -1.

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

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

Визуализация данных

Мы разделили категориальные и числовые столбцы отдельно для наглядности.

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

  • Люди без дефолта, жилищные кредиты и потребительские кредиты имеют больший процент положительных ответов.
  • Клиенты с положительным ответом на предыдущую кампанию имеют более высокий процент положительных ответов.

Нанесли числовые переменные на ответ, чтобы получить представление о том, как различные атрибуты влияют на ответ. Ниже приведены некоторые наблюдения:

  • Люди с более высокой зарплатой в промежутке (от 50 000 до 100 000), как правило, положительно реагируют на кампанию.
  • Хотя время, в течение которого вы разговариваете с клиентами, действительно помогает, чем дольше вы разговариваете с клиентами, тем больше шансов на положительный отклик на кампанию.

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

Предварительная обработка данных для построения модели

  1. Используйте одно горячее кодирование, чтобы преобразовать категориальные данные в форматы, подходящие для машинного обучения.
  2. Создайте переменные x и y для независимых и зависимых атрибутов соответственно.
  3. Разделите данные на X_train, X_test, y_train, y_test с помощью метода train_test_split.
  4. Масштабируйте данные с помощью MinMaxScalar или StandardScalar, чтобы вывести их на поле уровня, поскольку обычные данные могут иметь другие единицы измерения.

Построение модели

  1. Построение модели логистической регрессии

Постройте модель с настройкой гиперпараметров, чтобы получить максимальную точность.

2. Построение модели случайного леса

Подобно модели логистической регрессии, создайте модель случайного леса с настройкой гиперпараметров.

Оцените обе модели с помощью Accuracy_score и матрицы классификации, чтобы проверить точность, давление и отзыв моделей.

3. Сравнение обеих моделей

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

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

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

Выбор лучших функций

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

Заключительные мысли

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

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