train data.csv — обучающий набор данных со 190 функциями и размером 16,4 ГБ. Финансовая отчетность для 458 тыс. клиентов.

Ссылка на конкурс — https://www.kaggle.com/competitions/amex-default-prediction

Ссылка на GitHub — https://github.com/SandaluKarunasena/American-Express---Default-Prediction

Аннотация. Кредитные карты используются для ежедневных покупок. Но важно знать, заплатит клиент в будущем или нет. Это одна из ключевых проблем управления кредитным риском для таких финансовых учреждений, как American Express. В этой статье я представил, как точно предсказать, не погасит ли клиент дефолт в будущем, используя методы машинного обучения. Набор данных, предоставленный American Express, включает в себя временные ряды поведенческих данных и анонимную информацию о профилях клиентов. Были проведены соответствующие преобразования и эксперименты, чтобы внедрить решение для машинного обучения, чтобы бросить вызов текущей модели в производстве. Точность модели оценивается с использованием метрики ammex, а также оценки конкурса Kaggle.

ВВЕДЕНИЕ

II. НАБОР ДАННЫХ

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

Набор данных содержит ежемесячные профили клиентов, включая информацию о просрочках, расходах, платежах, балансе и риске. Эти агрегированные характеристики профиля записываются для каждого клиента на каждую дату выписки. Функции анонимизированы и нормализованы и делятся на пять основных категорий. Это переменные баланса (B *), переменные риска (R *), переменные оплаты (P *), переменные просрочки (D *) и переменные расходов (S *). Таким образом, категориальные столбцы: B 30, B 38, D 114, D 116, D 117, D 120, D 126, D 63, D 64, D 66, D 68 Набор данных включает 11 признаков, которые разделены на разные категории, столбец с информацией о времени и дате, 177 столбцов с числовыми значениями, 189 числовых характеристик, один столбец с целочисленными значениями и один столбец с различными типами данных. Функция S 2 в наборе данных представляет дату выписки. Даты выписок в обучающем наборе находятся в пределах 13-месячного периода между мартом 2017 г. и мартом 2018 г., и пропущенных дат нет. Даты утверждений в тестовом наборе попадают в разные временные рамки, между апрелем 2018 г. и октябрем 2019 г., и между датами утверждений в обучающем наборе и датами утверждений в тестовом наборе нет перекрытия.

  • test data.csv — Тестовый набор данных со 189 функциями и размером 33,8 ГБ. Финансовый отчет для клиента 924k
  • train labels.csv — Обучающие метки
  • American Express — одна из крупнейших компаний-эмитентов кредитных карт в мире. Для такого финансового учреждения прогнозирование дефолта по кредиту имеет решающее значение для управления рисками, а также для принятия решений о кредитовании. Перед компанией стоит сложная проблема: узнать, окупят ли их клиенты понесенные ими расходы. Прогнозирование риска дефолта важно для American Express и других эмитентов кредитных карт, поскольку позволяет им принимать обоснованные решения о предоставлении кредита и установлении кредитных лимитов. Если клиент подвергается высокому риску дефолта, эмитент может отклонить заявку или предложить более низкий кредитный лимит. Это помогает смягчить потенциальные убытки, которые может понести эмитент, если клиент не выполнит свои платежи. Кроме того, выявляя клиентов, подверженных высокому риску дефолта, эмитенты могут принять меры для вмешательства и помочь этим клиентам более эффективно управлять своими финансами, что может помочь снизить риск дефолта. Целью этого конкурса является прогнозирование вероятности того, что клиент не выплатит сумму остатка по своей кредитной карте в будущем, на основе ежемесячной информации о клиенте. Чтобы предсказать, не погасит ли клиент дефолт в будущем, необходимо проанализировать различные факторы, такие как кредитная история, доход и история прошлых платежей. Модель машинного обучения может быть обучена на исторических данных, чтобы выявлять закономерности и делать прогнозы о будущем риске дефолта. Однако важно отметить, что ни одна модель не может предсказать будущее со 100% точностью. Конкурс предлагал набор данных о клиентах, включая различные характеристики, такие как просрочка платежа, расходы, платежи, баланс и факторы риска. Информация была обезличена и стандартизирована, а некоторые характеристики разбиты на группы. Цель этого исследования — оценить различные подходы к машинному обучению и особенности инженерных частей, которые я использовал, и выбрать лучшую модель/подход для прогнозирования дефолта по кредитной карте. Все они описаны в последующих частях этого отчета. Я надеюсь, что этот документ поможет финансовой индустрии управлять рисками и принимать меры для предотвращения дефолта. Этот документ будет способствовать выявлению и разработке более точных моделей и оценке показателей для прогнозирования невыполнения обязательств клиентами. В первом разделе этой статьи будет представлено введение в конкуренцию и проблему. Далее я расскажу о предоставленном наборе данных. После этого в части предварительной обработки данных я представлю разработку функций и различные методы, которые я использовал. Все модели, которые я использовал, описаны в разделе модели. Я представлю результаты наших экспериментов и оценю производительность различных алгоритмов с заключением.

III. ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ

Предварительная обработка данных включает в себя такие задачи, как обработка повторяющихся значений, устранение отсутствующих значений, выявление и удаление выбросов, а также очистка данных. Набор данных, представленный в конкурсе Kaggle «American Express — прогноз по умолчанию», включает в себя большой кусок исторических данных и функций клиентов. Некоторые из этих функций являются категоричными, в то время как другие были анонимизированы и нормализованы для защиты конфиденциальности потребителей. Подходы к обработке несбалансированных данных класса имеют решающее значение, поскольку отрицательный класс для этого набора данных подвергается субдискретизации на 5%, что может привести к систематической ошибке модели. Я выполнил несколько операций предварительной обработки набора данных, чтобы повысить производительность моделей машинного обучения. Одним из первых действий, которые я выполнил, была проверка набора данных на наличие отсутствующих или нулевых значений и принятие решения о том, как с ними поступить. Обычно это включает удаление строк, замену отсутствующих значений или замену значений по умолчанию. Еще одним важным этапом является очистка данных, во время которой я ищу любые расхождения или неточности в данных, включая повторяющиеся записи и неточные типы данных. Чтобы предотвратить переоснащение, я удалил повторяющиеся записи из набора данных. Используя точечную диаграмму, я обнаружил выбросы в наборе данных и заменил их средними значениями столбца, поскольку эти значения могут существенно повлиять на результаты. Я обработал дисбаланс классов, поскольку отрицательный класс был занижен. Чтобы устранить систематические ошибки в модели, крайне важно рассмотреть такие подходы, как избыточная выборка членов класса меньшинства или недостаточная выборка членов класса большинства. Еще одним важным шагом является разделение данных, когда я разделил набор данных на наборы для обучения, проверки и тестирования. Это очень важно, чтобы убедиться, что модели не переобучают данные. Последним шагом является уменьшение размерности, которое включает в себя объединение связанных функций или удаление менее важных функций для уменьшения количества функций. Это несколько методов предварительной обработки, которые я использовал в наборе данных American Express по умолчанию, чтобы помочь модели учиться на данных и делать более точные прогнозы с использованием моделей машинного обучения. Кроме того, за счет уменьшения размерности данных эти методы предварительной обработки могут ускорить время обучения и избежать переобучения, что может повысить производительность модели.

IV. РАЗРАБОТКА ОСОБЕННОСТЕЙ

Разработка признаков — один из важнейших шагов в процессе машинного обучения, поскольку он может сильно повлиять на производительность конечной модели. Цель разработки признаков — зафиксировать базовую структуру данных и создать набор признаков, которые могут точно ее представить. Разработка функций состоит из нескольких частей, таких как выбор функций, извлечение функций, преобразование функций и построение функций. Выбор функций — это процесс идентификации и выбора подмножества соответствующих функций из необработанных данных для использования в модели. Извлечение функций — это процесс создания новых функций из необработанных данных путем объединения или преобразования существующих функций. Преобразование признаков — это процесс изменения или масштабирования значений признаков для повышения производительности модели. Я использовал несколько подходов в разработке признаков. Во-первых, это удаление функций с более чем процентным порогом отсутствующих значений. Это один из наиболее часто используемых подходов в процессе машинного обучения. Если несколько значений в одном конкретном столбце окажутся нулевыми, этот столбец может стать фактором, вводящим в заблуждение для нашей модели. Поэтому я удалил это, установив порог и исключив функции. А также я использовал некоторые другие меры. Другой наиболее часто используемый метод проектирования признаков — удаление сильно коррелированных признаков. Если две функции сильно коррелируют друг с другом, это означает, что в нашем наборе данных есть избыточность. Поэтому я проверил корреляцию и удалил некоторые функции перед обучением нашей модели. Другой важный используемый метод проектирования признаков — это кодирование категориальных переменных в виде числовых значений. Статистические модели машинного обучения не могут понимать категориальные переменные. Мне пришлось передать их как числовые переменные алгоритму классификации. Поэтому мне пришлось преобразовать наши категориальные значения в числовые значения путем кодирования.

V. ПРОГНОЗ МОДЕЛИ

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

А. Логистическая регрессия

Логистическая регрессия[1] — это статистический метод, который используется для прогнозирования бинарных результатов. Это популярный алгоритм машинного обучения из-за его простоты и интерпретируемости. Модель обучена прогнозировать вероятность возникновения события и делает прогноз на основе того, превышает ли эта вероятность определенный порог. Логистическая регрессия подходит для ситуаций, когда связь между входными объектами и целевой переменной является линейной. В этом исследовании я обнаружил, что модель логистической регрессии дает средние результаты и имеет более низкую точность по сравнению с другими моделями, которые оценивались. Это может быть связано с тем, что связь между целевой переменной и функциями не была линейной, что является требованием для алгоритма логистической регрессии.

Б. КНН

K-ближайшие соседи (KNN)[2] — это простой, но мощный алгоритм для задач классификации и регрессии. Это непараметрический метод, основанный на идее, что аналогичные наблюдения имеют одинаковые метки классов. Алгоритм работает, сохраняя все доступные случаи и классифицируя новые случаи на основе меры сходства между сохраненными случаями и новым делом. Наиболее часто используемой мерой подобия является евклидово расстояние, но также могут использоваться другие меры расстояния, такие как расстояние Манхэттена, расстояние Минковского и расстояние Махаланобиса. Значение K, количество рассматриваемых ближайших соседей, является параметром, определяемым пользователем. Небольшое значение K может привести к переоснащению, в то время как большое значение K может привести к более общей модели, но также увеличить время вычислений. Настройку гиперпараметров можно использовать для поиска оптимального значения K для набора данных. KNN устойчив к зашумленным данным и может обрабатывать пропущенные значения. Однако для хранения всех обучающих данных требуется большой объем памяти. Я реализовал алгоритм KNN, используя класс KNeighborsClassifier из библиотеки scikit-learn. Я обнаружил, что значение k=11 дает самую высокую точность. Однако оценка набора тестовых данных, полученная с этим значением k, составляет 0,53564, что ниже по сравнению с другими опробованными моделями.

C. XGBoost

XGBoost[3] — это мощный и эффективный алгоритм повышения градиента на деревьях решений. Это библиотека с открытым исходным кодом, которая широко используется в соревнованиях по науке о данных благодаря своей способности обрабатывать большие наборы данных и высокой точности. Алгоритм использует метод повышения градиента, который представляет собой итеративный метод, который строит ансамбль слабых моделей для улучшения общей производительности модели. Он также использует метод, называемый регуляризацией, для предотвращения переобучения, что является распространенной проблемой в машинном обучении. Алгоритм также включает расширенные функции, такие как параллельная обработка, обработка пропущенных значений и работа с несбалансированными данными, что делает его предпочтительным выбором для многих практиков и исследователей в различных областях. В этом исследовании я создал экземпляр модели XGBClassifier с использованием библиотеки xgboost и обучил его настройкам по умолчанию. Оценка, полученная путем прогнозирования значения по умолчанию с использованием XGBoost, составила 0,77537. Затем я использую настройку гиперпараметров для повышения производительности. Лучший результат, полученный для XGBClassifier, составляет 0,79433, что меньше, чем результат, полученный при прогнозировании с использованием LGBoost.

D. SVM

Машины опорных векторов (SVM) [4] — это широко используемый алгоритм машинного обучения с учителем для задач классификации и регрессии. Он работает, находя границу, которая разделяет точки данных на разные классы. В этом исследовании я решил использовать SVM для этой задачи, потому что это мощный алгоритм для задач классификации, особенно когда данные линейно разделимы. Кроме того, было показано, что SVM хорошо работает с несбалансированными наборами данных, что является распространенной проблемой в задачах прогнозирования кредитного риска. Алгоритм пытается сбалансировать компромисс между максимизацией маржи и минимизацией уровня ошибочной классификации, вводя параметр C, который позволяет регулировать вес члена ошибочной классификации. SVM может находить наиболее важные функции и использовать их для прогнозирования, что может помочь уменьшить переоснащение и улучшить интерпретируемость модели. В этом исследовании я использовал LinearSVC из библиотеки scikit-learn, которая представляет собой линейную модель для задач классификации. Я также использовал GridSearchCV, чтобы найти лучшие гиперпараметры для нашей модели SVM, а также установил вес класса для балансировки, чтобы справиться с дисбалансом классов. Оценка точности, полученная для набора данных поезда прогнозирования по умолчанию, составила 0,8341, что указывает на то, что наша модель SVM смогла точно предсказать вероятность дефолта для данного клиента.

Д. CatBoost

CatBoost[5] — это библиотека повышения градиента, разработанная Яндексом, которая напрямую использует категориальные признаки без необходимости преобразовывать их в числовые признаки. Он также включает методы обработки пропущенных значений и переобучения, что делает его подходящим для работы с наборами данных с большим количеством категориальных признаков. Сначала был создан экземпляр класса CatBoostClassifier, и модель была обучена с использованием этой модели с количеством итераций 100 и скоростью обучения 0,1. Оценка, полученная путем прогнозирования значения по умолчанию, составила 0,56937, что меньше, чем оценки LightGBM и XGBClassifier. Для проверки использовалась оценка roc auc, точность проверки составила 0,8689. Несмотря на то, что это алгоритм повышения, точность значительно ниже, чем у LightGBM и XGBClassifier. Причина может заключаться в том, что эта модель в основном используется для наборов данных с большим количеством категориальных признаков.

F. LightGBM

Я использовал LightGBM[6], мощный фреймворк повышения градиента, для прогнозирования вероятности дефолта для клиентов. LightGBM известен своей высокой точностью, быстрой скоростью обучения и способностью обрабатывать большие наборы данных и многомерные данные. Алгоритм также имеет возможность обрабатывать пропущенные значения и категориальные признаки, что помогает повысить производительность при решении этой задачи. Во-первых, я создал экземпляр модели lightgbm и установил начальные гиперпараметры следующим образом: я обучил модель с помощью библиотеки LightGBM, с установленной бинарной целью, числом оценщиков, установленным на 1250, метрикой, установленной на двоичный логарифм, тип повышения как gbdt (Gradient Boost Decision Tree), количество листьев установлено на 90, срок регуляризации установлен на 50, colsample по дереву установлен на 0,19, скорость обучения установлена ​​на 0,03, минимальная дочерняя выборка установлена ​​​​на 2400, максимальное количество ячеек установлено на 511, начальное значение установлено на 42 и многословие установлено на -1. Оценка, полученная путем прогнозирования цели с этой начальной настройкой, составила 0,79401. Чтобы повысить производительность нашей модели, я использовал метод GridSearchCV для настройки гиперпараметров. Этот метод включает тестирование ряда различных параметров модели и оценку их эффективности для определения оптимального набора параметров. Модель, обученная с этими оптимальными параметрами, получила частную оценку 0,80303 и точность метрики Ammex 0,9625 в тестовом наборе данных, что было самым высоким показателем среди всех использованных моделей.

VI. ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ

Я упомянул результаты модели ниже.

Название модели — Частная оценка — Публичная оценка

Логистическая регрессия — 0,56559 — 0,56477

КНН — 0,53564 — 0,52457

XGBoost — 0,79433 — 0,78325

SVM — 0,56838 — 0,56718

CatBoost — 0,56937 — 0,57005

ЛайтГБМ — 0,80303 — 0,79419

В соответствии с этим 291 356 были правильно идентифицированы как не нарушающие дефолт, а 91 529 экземпляров были правильно идентифицированы как нарушающие дефолт. 14720 были ошибочно идентифицированы как недефолтные, а 15416 были ошибочно идентифицированы как недефолтные. Таким образом, точность составляет 85,5%.

VII. КРАТКОЕ СОДЕРЖАНИЕ

Сначала я проверил типы объектов и обнаружил, что существуют типы данных float16, category, datetime64 и int. Я преобразовал столбцы типа float16 в float64, потому что на типичном процессоре нет аппаратной поддержки float16. Затем строится несколько графиков для проверки поведения функций. Поскольку есть один столбец типа даты и времени, и я обнаружил, что он имеет некоторую связь с целью, я разделил его на год, месяц, неделю и день, новые функции. Затем я проверил столбцы с нулевыми значениями и удалил столбцы с очень нулевыми значениями (более 80%). А оставшиеся нулевые значения, содержащие столбцы, вменяются. Я использовал вменение режима для категориальных столбцов и медиану для числовых столбцов. И я применил тот же подход к отбрасыванию столбцов и вменению данных для тестового набора данных. Затем категориальные признаки кодируются с использованием метода порядкового кодирования.

Поскольку эти функции уже нормализованы, я напрямую рассчитал корреляцию между остальными функциями и удалил столбцы с высокой корреляцией. И после завершения части разработки функций я обучил и проверил модель, используя вышеупомянутые алгоритмы (логистическая регрессия, классификатор CatBoost, KNN, SVM, LightGBM и классификатор XGBoost). Сначала я проверяю метод логистической регрессии, не занимаясь разработкой каких-либо функций, а после части разработки функций я снова попробовал логистическую регрессию, и точность увеличилась. Затем я попробовал другие пять алгоритмов и обнаружил, что LightGBM Classifier дает самую высокую точность. Настройка параметров осуществляется с помощью GridSearchCV. Итак, остальные улучшения были сделаны с помощью алгоритма LightGBM Classifier. Для повышения эффективности соответствующие столбцы выше 0,99 исключены.

VIII. ЗАКЛЮЧЕНИЕ

Исследование было направлено на повышение точности прогнозирования дефолта по кредиту с использованием предоставленного набора данных. Как и ожидалось, в исследовании решалась одна и та же проблема с разными моделями с несколькими методами предварительной обработки. Предлагаемый метод сделал данные таким образом, чтобы их можно было передать в соответствующую модель. Производительность моделей оценивалась с использованием различных показателей, таких как точность Ammex Metric, точность, MSE и Kaggle Score. Результаты показали, что модель LightGBM оказалась наиболее эффективной среди протестированных моделей с самым высоким показателем точности. В качестве одиночной модели LGBMClassifier показывает высокие результаты, а самые высокие баллы получаются при суммировании LGBMClassifier. XGBoost также показал хорошие результаты, заняв второе место по точности. Однако KNN работал плохо и имел самый низкий показатель точности. Из результатов я могу сделать вывод, что XGBoost и LightGBM являются мощными и эффективными алгоритмами для прогнозирования кредитных дефолтов и могут быть полезны для управления рисками в потребительском кредитовании.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

[1] Э. Коста-э-Сильва, И. К. Лопес, А. Коррейя и С. Фариа, «Модель логистической регрессии для риска дефолта потребителя», J. Appl. Стат., вып. 47, нет. 13–15, стр. 2879–2894, 2020, doi: 10.1080/02664763.2020.1759030.

[2] Петерсон, Лейф Э. «К-ближайший сосед». Scholarpedia 4.2 (2009): 1883.

[3] Чен, Тяньци и др. «Xgboost: экстремальное повышение градиента». Версия пакета R 0.4–2 1.4 (2015): 1–4.

[4] Сутхаран, Шан и Шан Сутахаран. "Машина опорных векторов." Модели и алгоритмы машинного обучения для классификации больших данных: мышление с примерами для эффективного обучения (2016): 207–235.

[5] «Catboostclassifier», CatBoost. [В сети]. Доступно: «https://catboost.ai/en/docs/concepts/python-reference» catboostclassifier. [Проверено: 22 января 2023 г.].

[6] Ахамед, Б. Шамрин и Сумит Арья. Метод, основанный на классификаторе LGBM, для прогнозирования диабета 2 типа. Европейский журнал молекулярной клинической медицины 8.3 (2021): 454–467.

American Express — Прогноз дефолта