В этом посте, вслед за моим предыдущим постом, который можно найти здесь, я объясню свой подход к предварительной обработке очищенных данных и моделированию Lending Club. Полную записную книжку можно найти здесь. Я применил несколько моделей классификации к очищенной базе данных принятых кредитов от Lending Club. Вкратце, Lending Club раньше был крупнейшей платформой однорангового кредитования. При принятии решения по заявке на кредит Lending Club полагается на информацию заявителей, предоставленную во время подачи заявки. Такая информация включает доход, стаж работы и кредитную историю. В предыдущем посте я рассмотрел недостающие данные и исследовал их, чтобы лучше понять данные и влияние нескольких параметров.

В этом посте мы узнаем:

  1. Несбалансированные данные

2. Предварительная обработка данных

3. Выбирайте правильные метрики для оценки модели!

4. Модельное обучение

5. Окончательный выбор модели.

6. Предсказывает ли модель завышение/недооценку?

7. Важность функции

8. Резюме

9. Значение для бизнеса

  1. Несбалансированные данные. Набор данных называется несбалансированным, если класс меньшинства составляет небольшой процент набора данных. Если класс меньшинства (в нашем случае дефолтные кредиты) составляет от 20 до 40% набора данных, то это умеренный дисбаланс. если класс меньшинства составляет от 1 до 20%, то набор данных умеренно несбалансирован, а если класс меньшинства составляет менее 1% набора данных, данные крайне несбалансированы. Чтобы выяснить, несбалансирован ли наш набор данных или нет, я проверил, какой процент кредитных заявок в фрейме данных не выполнен по умолчанию. Как видно на рисунке, просроченные кредиты составляют 22% нашего набора данных. Таким образом, наши данные слегка несбалансированы, что может быть проблемой, а может и не быть. Предлагается смоделировать истинное распределение, а если оно неудовлетворительное, применить такие методы, как недостаточная выборка, чтобы справиться с дисбалансом. Я провел моделирование с истинным распределением; однако результат не был удовлетворительным. Поэтому я сделал субдискретизацию.

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

  1. Определите X и y
  2. Применение One Hot Encoder для преобразования категориальных данных в числовые данные
  3. Выполните недостаточную выборку данных с помощью RandomUnderSampler.
  4. Разделите данные на обучающие и тестовые наборы.

3. Выберите правильные показатели для оценки модели. Учитывая, что наши данные слегка несбалансированы, показатель точности не является подходящим показателем для оценки эффективности модели. Рекомендуется использовать такие оценочные показатели, как точность, отзыв, показатель f1 или сбалансированная точность. Мы используем сбалансированную точность в качестве показателей оценки для сравнения производительности модели. Подробнее о метриках можно прочитать здесь.

4. Обучение модели: на наборе данных были обучены следующие классификаторы и выбран самый мощный:

  1. Логистическая регрессия
  2. Древо решений
  3. Случайный лес
  4. XGBoost

Шаги, которые я выполнил для каждой модели, включают:

  1. Создайте конвейер, включающий в себя модель и этапы масштабирования, а затем используйте перекрестную проверку с 5 сгибами для обучения общей модели.
  2. Поиск по сетке для поиска гиперпараметров.
  3. Обучите модель с настроенными гиперпараметрами и изучите важность функций.

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

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

precision    recall  f1-score   support

     Default       0.66      0.68      0.67     78117
  Fully Paid       0.67      0.64      0.66     78184

    accuracy                           0.66    156301
   macro avg       0.66      0.66      0.66    156301
weighted avg       0.66      0.66      0.66    156301

6. Наша модель перепрогнозирует/недооценивает? Почти при каждом обучении модели важно проверять, как модель работает на невидимых данных, чтобы оценить, не перепрогнозирует/занижает она. Чтобы ответить на этот важный вопрос, нам нужно проверить значение выбранной нами метрики (в данном случае сбалансированная точность) для наборов обучающих и тестовых данных. Для тестовых данных точность составляет 0,66, как видно из таблицы, а в обучающих данных среднее значение (стандартное отклонение) составляло 0,6622 (0,0007). Обратите внимание: поскольку мы использовали перекрестную проверку в наших обучающих данных, у нас будет несколько значений, и нам нужно использовать среднее и стандартное отклонение. Как можно видеть, данные обучения и тестовые данные имеют очень схожую сбалансированную точность, что показывает, что наша модель не дает завышенных или заниженных прогнозов, что очень хорошо.

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

8. Резюме: В этом посте я объяснил свой подход к созданию модели прогнозирования дефолта по кредиту. Были выполнены следующие шаги:

  1. В данных было 22% дефолта. Поэтому, чтобы преодолеть несбалансированность данных, была применена недостаточная выборка.
  2. Чтобы создать оптимальную модель, данные были разделены на обучающие и тестовые наборы, и к обучающим данным были применены четыре классификатора.
  3. Для каждого обучения модели применялась перекрестная проверка с 5-кратным повторением, чтобы предотвратить переобучение.
  4. При каждом обучении модели создавался конвейер, включающий этапы масштабирования и моделирования, и с помощью GridSearchCV настраивались гиперпараметры.
  5. Был проведен анализ важности функций.
  6. Обученные модели использовались для прогнозирования результата набора тестовых данных.
  7. Была выбрана лучшая модель.

9. Бизнес-вывод:Наша модель показывает, что кредит процентная ставка и его срок, количество ипотечных кредитов, которые имеет претендент, и его/ ее фико-оценка является неблагоприятным фактором в судьбе кредита. Первые два срока определяются Кредитным клубом на основании информации заявителя. Последние два термина — рейтинг заявителя и количество ипотечных кредитов, которые он/она имеет — указывают на кредитную историю заявителя. Однако следует отметить, что Lending Club запрашивает несколько сведений о кредитной истории заявителя. Этими статьями являются длина кредита, количество сборов, количество налоговых залогов, количество банкротств, количество возобновляемых счетов, сумма возобновляемого баланса, количество открытых счетов, кредитный лимит и коэффициент использования, рейтинг fico и количество ипотечных кредитов. Наша модель показывает, что эффективными факторами являются только рейтинг Fico и количество ипотечных кредитов. Кроме того, другие факторы, такие как стаж работы, годовой доход и владение жильем, не имеют значения для судьбы кредита. Таким образом, Lending Club может сэкономить деньги, избегая сбора неэффективной информации.

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

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

#DataScience, #ML, #MachineLearning #GradientBoosting #FeatureImportance #lendingclub