Основной набор данных содержит демографическую информацию и сведения о том, какими финансовыми услугами пользуются примерно 33 600 человек в Восточной Африке. Эти данные были извлечены из различных опросов Finscope в период с 2016 по 2018 год.
Задача состоит в том, чтобы предсказать вероятность того, что у человека есть банковский счет или нет.

  1. Исследование данных

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

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

2. Машинное обучение

Я начну с отделения переменных и целевой переменной, которая является «bank_account», из набора данных поезда. Затем я преобразую значения из объектного типа данных в числовой тип данных.

Затем я написал функцию для предварительной обработки данных из моделей поездов. В частности, чтобы изменить числовые метки с целочисленных на плавающие, преобразовать категориальные функции в One Hot Encoding, удалить столбец unique_id и масштабировать наши данные.

3. Разделение нашего набора данных

4. Обучение

Теперь, чтобы оценить и получить частоту ошибок

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

Давайте проверим матрицу путаницы

Модель XGBoost хорошо работает при прогнозировании класса 0 и плохо при прогнозировании класса 1. Это может быть вызвано несбалансированностью предоставленных данных (целевая переменная имеет больше значений «Нет» значения, чем значения «Да»).

Итак, мы будем производить настройку параметров с помощью метода Grid Search.

После настройки мы получаем частоту ошибок 0,10922226944326396.

Ссылка на мой гитхаб