Дипломная работа: Оценка надёжности заёмщика банка в условиях неполноты информации

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Алгоритм поиска разбиения

До начала поиска разбиения для всего набора данных задаются ограничения: минимальное число элементов в бакете.

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

После задания ограничений начинается процесс поиска разбиений для данных, протекающий следующим образом. Для каждой объясняющей переменной выделяется поднабор данных, состоящий из объясняемой и текущей объясняющей переменной. Для созданного поднабора данных строятся однофакторные решающие деревья, глубиной не более заданной максимальной. Каждое следующее разбиение сравнивается с предыдущим лучшим по критерию информативности. Если новое разбиение превосходит лучшее и соответствует установленным ограничениям, то оно становится лучшим. Процесс построения деревьев повторяется, пока не будут перебраны все гипер-параметры. На рисунке ниже (Рисунок 5) приведена схема процесса поиска разбиений.

Рисунок 5 - Схема алгоритма поиска разбиения

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

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

Таблица 3. Общий вид правил разбиения

Значение исходной переменной

Значение WoE

Где - пороговые значения, границы бинов, строгость неравенств зависит от реализации. - соответствующие значения WoE-фактора.

Алгоритм применения разбиения

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

Применение разбиения выполняется следующим образом. Для каждой переменной исходные значения заменяются на WoE в соответствии с найденными правила разделения на бины.

Например, в процессе промышленной эксплуатации поступает выборка из 5 человек разных возрастов:

Таблица 4. Пример применения разбиения. Исходная выборка

ID наблюдения

Возраст

1

27

2

54

3

39

4

32

5

63

После применения правил разбиения, приведённых в пункте 2.3 данные трансформируются следующим образом:

Таблица 5. Пример применения разбиения. Преобразованная выборка

ID наблюдения

WoE_Возраст

1

-0,7621

2

-1,0135

3

-0,7621

4

0,7621

5

0,4665

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

Инструментальные и программные средства

Реализация предложенного подхода возможна с использованием различным математических и программных средств.

Сглаживание Лапласа

При разбиении объясняющей переменной на бакеты возможно возникновении ситуации, когда в одном из них окажутся только «хорошие» или только «плохие» наблюдения. Тогда вычисление WoE станет невозможным из-за обращения знаменателя в ноль. Такая ситуация является очень редкой и её возникновение может быть вызвано ошибкой при проведении разбиения, например, когда не соблюдается требование минимального размера бакета. Однако, появление бакета, содержащего представителей только одного из двух классов может быть вызвано высокой разделяющей способностью рассматриваемой объясняющей переменной. В таком случае WoE вычислять необходимо, чтобы не потерять независимую переменную, обладающую хорошей разделяющей способностью.

Для предотвращения случаев невозможности вычисления WoE для бакетов, содержащих представителей исключительно одного класса может быть использовано аддитивное сглаживание (Chen, 1996). Тогда формула (2.3_4) для вычисления WoE принимает следующий вид:

(2.5_1)

Реализация на Python

Описанные во второй главе алгоритмы и формулы были реализованы в формате библиотеке на языке Python с использованием общедоступных библиотек: NumPy, Pandas, ScikitLearn (Сайт библиотеки Numpy, Сайт проекта Pandas, Сайт библиотеки scikit-learn [Электронные ресурсы]). Реализованная в рамках работы библиотека была опубликована под именем riskpy. Исходный код библиотеки размещён в репозитории GitHub (Git репозиторий проекта riskpy [Электронный ресурс]).

Глава 3. Моделирование надёжности заёмщика банка

3.1 Методика сравнительного анализа

Для проведения сравнения результатов построения и применения моделей была использована следующая методика.

Общее описание алгоритма

Для проведения сравнения подходов используется следующий алгоритм:

1. Набор данных разделяется на обучение и тест в отношении 7 к 3 (30% - тест) с сохранением среднего уровня целевой переменной в каждой из подвыборок.

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

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

4. Результаты применения различных подходов сравниваются по выбранным метрикам качества работы классификатора

Метрики качества

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

Матрица несоответствий

Матрица несоответствий - табличное представление результатов работы алгоритма классификации. Каждый столбец матрицы - число экземпляров в прогнозируемом классе, строка - число экземпляров в действительном классе. Часто в задаче бинарной классификации объекты одного из классов называют "Хорошими" (англ. positive), а второго - "Плохими" (англ. negative), и на основании этих обозначений вводят следующие понятия: верно отнесённый к "хорошим" (True Positive, TP), ошибочно отнесённый к "хорошим" (False Positive, FP) - ошибка первого рода, верно отнесённый к "плохим" (True Negative, TN) и ошибочно отнесённый к плохим (False Positive, FP) - ошибка второго рода. (Stehman, 1997)

Ниже представлен пример матрицы несоответствий (Таблица 6).

Таблица 6. Матрица несоответствий и показатели

Предсказано

"Плохой"

"Хороший"

На самом деле

"Плохой"

TN

FP

"Хороший"

FN

TP

Precision

Точность (англ. precision) или прогностическая ценность предсказания в задачах классификации вычисляется как отношение числа верно отнесённых к классу "хороших" элементов к числу всех элементов, отнесённых моделью к этому классу. Точность показывает, насколько можно доверять классификатору в случае срабатывания, и вычисляется для каждого класса. Точность может быть вычислена как (3.1_1) (Powers, 2011)

(3.1_1)

Recall

Полнота (англ. Recall) - метрика, показывающая долю действительно относящихся к «хорошим» среди тех, кого к «хорошим» отнесла модель. Полнота показывает, на какой доле «хороших» объектов модель срабатывает. Аналогично точности полнота может быть вычислена для каждого класса. (Powers, 2011)

(3.1_2)

PR-кривая и AUC-PR

Как правило, precision и recall обратно связаны между собой, то есть когда растёт precision, падает recall, и наоборот. Для достижения оптимального баланса этих двух показателей используется Precision-Recall кривая, иллюстрирующая возможные пары значений precision-recall при различных порогах отсечения.

Для унифицированной оценки качества классификатора на основании PR-кривых используется метрика AUC-ROC, равная по своей величине среднему значению precision (sanchom, AVERAGE PRECISION [Электронный ресурс]).

ROC-кривая и AUC-ROC

ROC-кривая -- график, отображающий отношение доли объектов от общего количества объектов класса, верно классифицированных как представители класса, (англ. true positive rate, TPR) к доле объектов от общего количества объектов, не относящихся к классу, ошибочно отнесённых к классу (англ. false positive rate, FPR) при изменении порога отсечения. Кривая выходит из точки (0; 0) и приходит в точку (1; 1) (Рисунок 6).

Рисунок 6. Пример ROC-кривой

При этом, если существует идеальный классификатор, кривая должна пройти через точку (0; 1). Чем ближе кривая к этой точке, тем лучше будут оценки, а площадь под кривой будет характеризовать качество оценок принадлежности к первому классу. Такая метрика называется AUC-ROC, или площадь под ROC-кривой. (Powers, 2011)

Как было написано выше, ROC-кривая строится в осях FPR и TPR, которые нормируются на размеры классов:

(3.1_3)

Следовательно, при изменении баланса классов величина AUC-ROC и неизменных свойствах объектов выборки площадь под ROC-кривой не изменится. В случае идеального алгоритма AUC-ROC = 1, а в случае худшего:

Значение AUC-ROC имеет смысл вероятности того, что, если были выбраны случайный положительный и случайный отрицательный объекты выборки, положительный объект получит оценку принадлежности выше, чем отрицательный объект. (Powers, 2011)

Коэффициент GINI

Часто для оценки качества классификации использует коэффициент Джини. Коэффициент Джини изменяется от 0 до 1. Чем ближе его значение к нулю, тем более равномерно распределён показатель. В задаче классификации коэффициент Джини применяется для предсказания непрерывных величин. В задаче классификации высокий коэффициент Джини показывает, что классификатор хорошо разделяет "хороших" и "плохих", а низкий - классификатор почти не может их разделить. Коэффициент Джини может быть вычислен по формуле (3.1.6) (Powers, 2011):

(3.1_4)

3.2 Первый набор данных. Заявочный скоринг

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

Описание данных

В качестве первого набора данных был использован датасет с данными о выходе клиентов на просрочку, опубликованный в рамках соревнования по анализу данных (Kaggle [Электронный ресурс]).

Набор данных содержит следующие поля:

Таблица 7. Объясняющие переменные первого набора данных

Переменная

Описание

Тип

SeriousDlqin2yrs

Заёмщик вышел на просрочку 90+

Флаг

Объясняющие переменные

RevolvingUtilizationOfUnsecuredLines

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

Процент

Age

Возраст заёмщика в годах

Целое число

NumberOfTime30-59DaysPastDueNotWorse

Количество выхода заёмщика на просрочку 30-59 дней (но не хуже) за последние 2 года.

Целое число

DebtRatio

Отношение ежемесячных платежей по кредитам, алиментов и расходов на проживание к валовому месячному доходу

Процент

MonthlyIncome

Месячный доход

Число

NumberOfOpenCreditLinesAndLoans

Число открытых кредитов (ипотека, автокредиты) и кредитных линий (например, кредитные карты)

Целое число

NumberOfTimes90DaysLate

Количество выходов заёмщиком на просрочку 90+

Целое число

NumberRealEstateLoansOrLines

Число ипотек и кредитов на недвижимость, включая кредитные линии на собственный капитал.

Целое число

NumberOfTime60-89DaysPastDueNotWorse

Количество выхода заёмщика на просрочку 60-89 дней (но не хуже) за последние 2 года.

Целое число

NumberOfDependents

Количество иждивенцев в семье, исключая самого заёмщика (супруг, дети и т.д.)

Целое число

Источник: https://otherreferats.allbest.ru/download/1017720/