Это моя первая статья на Medium, и я надеюсь, что она будет полезна сообществу. Прошу прощения за свой уровень английского.
Работая 5 лет в Банке, мне было интересно провести этот анализ и изучить различные этапы анализа и моделирования проекта.
Стоит уточнить, что я полностью открыт для предложений или запросов, потому что считаю это основной целью Medium и Toward Data Science.
Хотя проект завершен, потому что в нем есть исследовательский анализ, очистка данных, моделирование, проверка , метрическое измерение и т. д. Я считаю, что самая богатая часть публикации находится в исследовательском анализе и полученных и осуществленных выводах или гипотезах. Крайне важно иметь критический взгляд при просмотре данных, и, на мой взгляд, лучший способ увидеть их — это графика (как говорится: «Изображение стоит тысячи слов»).

АНАЛИЗ ДАННЫХ

Данные собираются с этой страницы https://archive.ics.uci.edu/ml/datasets/Bank+Marketing

Об этом файле

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

Информация об атрибутах:

Данные о клиенте банка:
Возраст (числовой)
Должность: тип работы (категория: «администратор», «рабочий», «предприниматель», «домработница», «менеджер», «пенсионер» , 'самозанятый', 'услуги', 'студент', 'техник', 'безработный', 'неизвестно')
Семейное положение: семейное положение (категория: 'разведен', 'женат', 'холост', «неизвестно»; примечание: «разведен» означает разведенный или овдовевший)
Образование (категориальное: «базовое.4 года», «базовое.6 лет», «базовое.9 лет», «средняя школа», «неграмотный», 'professional.course', 'university.level', 'unknown')
По умолчанию: есть кредит по умолчанию? (категория: «нет», «да», «неизвестно»)
Жилье: есть жилищный кредит? (категория: «нет», «да», «неизвестно»)
Кредит: есть личный кредит? (категоричные: «нет», «да», «неизвестно»)

Связано с последним контактом в текущей кампании:
Контакт: тип связи контакта (категория:
«сотовый», «телефон»)
Месяц: месяц последнего контакта в году (категория: ' январь, 'февраль', 'март',
…, 'ноябрь', 'декабрь')
День недели: последний контактный день недели (категория: 'пн', 'вт', «ср», «чт», «пт»)

Продолжительность: продолжительность последнего контакта в секундах (числовое). Важное
примечание: этот атрибут сильно влияет на цель вывода (например, если
продолжительность=0, то y='нет'). Тем не менее, продолжительность до выполнения вызова
неизвестна. Кроме того, после окончания вызова известно y.
Таким образом, эти входные данные следует включать только для целей сравнительного анализа и
их следует отбрасывать, если намерение состоит в том, чтобы иметь реалистичную
прогностическую модель.

Другие атрибуты:
Кампания: количество контактов, выполненных во время этой кампании и для
этого клиента (числовое, включая последний контакт)
P-days: количество дней, прошедших после того, как клиент был последний
контакт из предыдущей кампании (числовое число; 999 означает, что с клиентом не было
контакта ранее)
Предыдущее: количество контактов, выполненных до этой кампании и для
этого клиента (числовое)< br /> Результат: результат предыдущей маркетинговой кампании (категория:
«провал», «несуществующий», «успех»).

Атрибуты социально-экономического контекста:
Emp.var.rate: коэффициент изменения занятости — квартальный показатель
(числовой)
Cons.price.idx: индекс потребительских цен — месячный показатель (числовой)
Cons.conf.idx: индекс доверия потребителей — месячный показатель
(числовой)
Euribor3m: 3-месячная ставка Euribor — дневной показатель (числовой)
Nr.employed: количество сотрудников — ежеквартально индикатор (числовой)
Выходная переменная (желаемая цель):
y — подписался ли клиент на срочный вклад? (двоичный: «да», «нет»)

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

Давайте посмотрим на его размер и немного проанализируем основные показатели, касающиеся его метки «y»:

У нас есть 41188 строк и 21 столбец. Следующее изображение также показывает нам, что значения переменных различны для клиентов, которые принимали депозиты, и тех, кто этого не делал (0 или 1). Давайте проанализируем, есть ли нулевые значения

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

Существуют важные корреляции в нескольких характеристиках относительно переменной «Y», а также между ними.

Что касается возраста, то мы наблюдаем, что возраст не является элементом, который имеет большую разницу между клиентами, которые принимали депозиты, и теми, кто этого не делал, их средний возраст составляет примерно 40 лет. На графике 2 синяя часть (0) представляет количество клиентов, которые не получили доступ к срочному депозиту, а оранжевая область (1) – тех, кто это сделал.

Образование представляет собой разницу между различными уровнями. Например, у некоторых типов клиентов эффективность составляет 13,72% (университет), а у клиентов с базовым уровнем образования — 9%. Мы могли бы подтвердить, что должны предлагать этот продукт клиентам с университетским, профессиональным или средним уровнем образования.

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

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

Это хороший показатель! Обратите внимание, что количество контактов и их эффективность сильно варьируются от месяца к месяцу. Например, в марте мы получили эффективность 50% при очень небольшом количестве контактов (всего 500!!), а в мае было выполнено 14 тысяч контактов с эффективностью всего 6,4%…. Позже мы оценим другие характеристики, чтобы выяснить, почему произошло это резкое изменение, и выдвинем несколько гипотез.

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

Здесь я объединил 2 диаграммы, чтобы проанализировать резкое изменение от месяца к месяцу, которое мы наблюдали на временной шкале, чтобы выяснить, связано ли это с количеством поставщиков, которые были в каждом периоде (это была моя первая гипотеза). — Мы отбросили эту гипотезу, так как, как мы наблюдали на графике ниже, среднее количество сотрудников по месяцам практически не отличалось… Итак… Почему продавцы не предлагали больше в те месяцы, когда они получали 50% результата (например, март, сентябрь, октябрь и декабрь)? Продолжим анализ…

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

Скорость изменения занятости, кажется, дает нам хорошее указание и корреляцию… Чем более отрицателен средний уровень безработицы за месяц, тем выше эффективность наших продавцов, но почему это произойдет?

Здесь мы отображаем индекс ставки для срочных депозитов Euribor3M на левой оси. Мы отмечаем, что по мере увеличения ставки было привлечено больше депозитов, но с меньшей эффективностью. Например, в марте со скоростью в 4 раза ниже, чем в июле, мы получили 276 вкладов всего с 546 контактами, а в июле - 649 депозитов с более чем 7100 контактами. Это случайно? Свяжем это с уровнем безработицы:

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

Контакт по мобильному телефону на втором графике был более эффективным. Я не вижу в кредите и дефолте чего-то важного для заключения…

Здесь мы говорим о количестве дней, прошедших с момента последнего контакта с клиентом после предыдущей кампании (числовое; 999 означает, что с клиентом ранее не связывались), и они были успешными. Тот, кто получил лучший номер, был тем, с кем ранее не связывались в рамках предыдущей кампании (999) … и те, кто был установлен после 3–6 дней после последнего контакта, продолжают с лучшими результатами. Моя гипотеза, которую я объясню, основана на моем опыте работы в банке. Для меня клиенту (и со мной тоже бывает) нравится, когда звонишь ему в первый раз с предложением, но потом не хочется, чтобы ему каждый день звонили с новыми предложениями… это утомительно. Именно поэтому, исходя из данных, звонить вам через 3 или 6 дней продуктивнее, чем на следующий день.

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

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

Как только это будет сделано, я стандартизирую свою модель с помощью инструмента sklearn StandardScaler. Я выбрал этот метод, поскольку выбросы — лучший инструмент, чем мин-макс-скейлер.

Мы видим в последней ячейке, что наша метка несбалансирована. Я реализовал SMOTE для регуляризации.

Листо!!! ahora seleccionemos лас переменных más Importantes пункт Nuestro algoritmo у descartemos лас Que нет influyen en el mismo. Использовать feature_selection:

Посмотрим, какие столбцы у нас остались, и снова отбросим те, у которых большое «P-значение» согласно отчету.

Теперь с выбранными столбцами мы применяем наш алгоритм логистической регрессии.

Мы получили точность 88% и довольно приемлемую матрицу путаницы!!
Надеюсь, вам понравилась моя публикация, и повторяю, я принимаю предложения или вопросы.
Спасибо!!!
Мое имя это Маурисио Дуркак, вы можете найти меня на Linkedin !!
Ура!!!
Ссылки: