Алгоритм поиска разбиения
До начала поиска разбиения для всего набора данных задаются ограничения: минимальное число элементов в бакете.
Для каждой объясняющей переменной задаются ограничения: максимальная глубина дерева (пропорциональная максимальному возможному числу бакетов), требование линейности.
После задания ограничений начинается процесс поиска разбиений для данных, протекающий следующим образом. Для каждой объясняющей переменной выделяется поднабор данных, состоящий из объясняемой и текущей объясняющей переменной. Для созданного поднабора данных строятся однофакторные решающие деревья, глубиной не более заданной максимальной. Каждое следующее разбиение сравнивается с предыдущим лучшим по критерию информативности. Если новое разбиение превосходит лучшее и соответствует установленным ограничениям, то оно становится лучшим. Процесс построения деревьев повторяется, пока не будут перебраны все гипер-параметры. На рисунке ниже (Рисунок 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-фактора, применяется обученный классификатор.
Инструментальные и программные средства
Реализация предложенного подхода возможна с использованием различным математических и программных средств.
(2.5_1)
Глава 3. Моделирование надёжности заёмщика банка
3.1 Методика сравнительного анализа
Для проведения сравнения результатов построения и применения моделей была использована следующая методика.
Общее описание алгоритма
Для проведения сравнения подходов используется следующий алгоритм:
1. Набор данных разделяется на обучение и тест в отношении 7 к 3 (30% - тест) с сохранением среднего уровня целевой переменной в каждой из подвыборок.
2. На полученной выборке для обучения с использованием каждого из подходов строятся модели логистической регрессии.
3. Построенные модели применяются к тестовой выборке, предварительно преобразованной в соответствии с использованным при обучении модели подходом
4. Результаты применения различных подходов сравниваются по выбранным метрикам качества работы классификатора
Метрики качества
Для оценки качества работы получаемых моделей были использованы широко применяемые метрики, описываемые ниже.
Таблица 6. Матрица несоответствий и показатели
|
Предсказано |
||||
|
"Плохой" |
"Хороший" |
|||
|
На самом деле |
"Плохой" |
TN |
FP |
|
|
"Хороший" |
FN |
TP |
(3.1_1)
(3.1_2)
Рисунок 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)
(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 |
Количество иждивенцев в семье, исключая самого заёмщика (супруг, дети и т.д.) |
Целое число |