Upload
gewissta
View
428
Download
14
Embed Size (px)
DESCRIPTION
Statistical methods
Citation preview
Описание методаЦель метода деревьев решений — построить модель зависимости целевой переменной от соответствующих значений независимых переменных (предикторов, атрибутов).
Как видно из рис. 1, по типу шкалы целевой переменной деревья решений подразделяются на деревья регрессии и деревья классификации.
Цель деревьев регрессии — спрогнозировать значение целевой переменной в зависимости от соответствующих значений предикторов, например спрогнозировать средний доход клиента за год в зависимости от пола и возраста клиента (работа с количественной целевой переменной).
Цель деревьев классификации — предсказать принадлежность объекта к той или иной категории целевой переменной в зависимости от соответствующих значений предикторов, например классифицировать заемщиков на «плохих» и «хороших» в зависимости от их характеристик (работа с категориальной целевой переменной).
Зависимость значения целевой переменной от значений предикторов представлена в виде иерархической структуры — «дерева».
Разработка скоринговой модели с помощью метода деревьев решений
А.В. ГРуздеВ,
исследовательская
компания «Гевисста»,
директор
Метод деревьев решений является, пожалуй, вторым по популярности (после логистической регрессии) из наиболее часто используемых в кредитном скоринге. Деревья решений используются для классификации заемщиков на «хороших» и «плохих», определения правил кредитной политики, вычисления различных количественных показателей платежеспособности заемщика. В статье пойдет речь о построении модели дерева, диагностике качества модели и интерпретации полученных результатов.
22
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
Если зависимая переменная является категориальной, строится дерево классификации. Если зависимая переменная является количественной, строится дерево регрессии.
Из рис. 2 видно, что дерево решений состоит из узлов и ветвей, обозначаемых отрезками, соединяющими узлы. Построение дерева происходит сверху вниз.
Рисунок 1
Типы деревьев решений
Рисунок 2
Структура дерева решений
Целевая переменнаяКОЛИЧЕСТВЕННАЯ
Деревья регрессии
ПРОГНОЗзначений зависимой переменной
по значениям предикторов
Целевая переменнаяКАТЕГОРИАЛЬНАЯ
Деревья регрессии
КЛАССИФИКАЦИЯзначений зависимой переменной
по значениям предикторов
Корневой узел
Терминальныеузлы
УзлыВетвь
Правилоразбиения
Спрогнозированныекатегории
debtinc < 14,75
0
0
1
1
debtinc < 24,65
employ ≥ 9,5
creddebt < 4,804
23
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
Самый первый (самый верхний) узел, представляющий всю выборку наблюдений, называется корнем или корневым узлом.
Разбиение на узлы (подмножества) определяется правилами разбиения. В роли правил выступают значения независимых переменных (доход, наличие детей и т.д.).
Правила со значениями независимых переменных отмечаются на ветвях дерева и соответствуют определенным узлам, в которых записывается решение:
— для деревьев регрессии — спрогнозированное среднее значение;
— для деревьев классификации — спрогнозированные категории.
Новые узлы, появившиеся в результате расщепления узла, называются «узлысыновья». Узел, который был расщеплен, называется «узелотец».
Дерево заканчивается листом, или терминальным узлом, — конечным узлом, который не расщепляется и в котором рост останавливается. Терминальный узел содержит:
— для деревьев регрессии — наилучший прогноз;— для деревьев классификации — наилучший результат класси
фикации.С помощью метода можно:— классифицировать заемщиков на «плохих» и «хороших»;— стратифицировать заемщиков по степени риска (выделить
группы заемщиков с высоким, средним или низким риском);— сформулировать правила и использовать их для предсказания
дефолта, принятия решения о выдаче кредита;— сформировать из большого числа переменных набор предик
торов, полезных для построения модели;— установить взаимосвязи, которые относятся только к специфи
ческим подгруппам, и впоследствии задать их в модели;— объединить категории предиктора и преобразовать непрерыв
ную переменную в дискретную с минимальной потерей информации (категоризация количественных переменных для построения скоринговой карты).
Метод деревьев решений обладает следующими преимуществами:— наглядностью представления результатов (в виде иерархиче
ской структуры дерева);— возможностью работы с большим числом независимых пере
менных: на вход можно подавать все существующие переменные; алгоритм сам выберет наиболее значимые среди них, и только они
Терминальный узел —
конечный узел дерева,
который не расщепля-
ется и в котором рост
останавливается. Терми-
нальный узел содержит:
для деревьев регрес-
сии — наилучший про-
гноз; для деревьев клас-
сификации — наилучший
результат классифика-
ции.
24
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
будут использованы для построения дерева (автоматический поиск предикторов);
— способностью выявлять взаимосвязи, которые нелегко обнаружить в рамках стандартных статистических моделей (нелинейные взаимосвязи, сложные взаимодействия);
— зависимые и незавиcимые переменные могут быть любыми: количественными, порядковыми или номинальными;
— отсутствием строгих требований к распределению данных.К недостаткам метода деревьев решений можно отнести:— отсутствие простого общего уравнения, выражающего модель;— проблему переобучения: нередко деревья получаются слишком
детализированными, имеют много узлов и ветвей, сложны для интерпретации, поэтому требуется специальная процедура отсечения ветвей (прунинг);
— cмещение выбора в пользу переменных, у которых большее количество категорий.
Существуют различные методы деревьев решений. Мы рассмотрим метод CART, используемый для построения деревьев решений в статистическом пакете R.
На первом этапе происходит построение полного дерева. Сначала отыскивается переменная, наилучшим образом разбивающая корневой узел (весь набор данных) на два узлапотомка (подгруппы). Если переменная имеет пропущенные значения, то CART применяет суррогаты — другие предикторы, имеющие сильную корреляцию с исходной независимой переменной. Процесс бинарного расщепления повторяется для каждого узла до тех пор, пока возможно улучшение прогноза.
В деревьях регрессии мы исследуем зависимость количественной целевой переменной от значений независимых переменных. Выводы о наличии или об отсутствии взаимосвязи делаются на основе анализа вариации целевой переменной. Для отбора предикторов и разбиения узлов метод CART применяет принцип уменьшения остаточной суммы квадратов, называемой девиацией или уклонением. На каждом этапе выбирается расщепление, дающее максимальное уменьшение девиации.
До начала расщепления девиация равна:
2( ) .jj
D y у= −∑
Расщепление происходит так, что исходное множество данных делится на два подмножества — подмножество j1s (запишем как j1) и подмножество j2s (запишем как j2). Для любого расщепления:
25
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
1 2
1 2
2 2 21 2
2 21 1 2 2
( ) ( ) ( )
( ) ( ) ,
j j jj j j
D y у y у y у
n у у n у у
= − = − + − +
+ − + −
∑ ∑ ∑
где первые два члена уравнения содержат новую внутригрупповую сумму квадратов, а два последних члена уравнения составляют межгрупповую сумму квадратов.
Внутригрупповая сумма квадратов отражает вариацию целевой переменной как результат влияний всех прочих случайных факторов.
Межгрупповая сумма квадратов характеризует вариацию целевой переменной как результат влияния переменной, использованной при разбиении.
Чем больше различие между межгрупповой и внутригрупповой дисперсиями, тем больше различаются средние значения сравниваемых подмножеств.
Поэтому расщепление осуществляется так, чтобы сумма первых членов была как можно меньшей, а сумма последних двух членов была как можно большей.
В деревьях классификации с категориальной целевой переменной для отбора предикторов и разбиения узлов CART применяет принцип уменьшения неоднородности в узле. Расщепление узла происходит так, чтобы узелпотомок был более однородным, чем его узелродитель. В абсолютно однородном узле все наблюдения имеют одно и то же значение целевой переменной (все объекты принадлежат к одной и той же категории целевой переменной).
Чаще всего для оценки неоднородности применяется индекс Джини. В основе индекса Джини — возведенные в квадрат вероятности, с которыми наблюдения будут отнесены к каждой категории зависимой переменной:
21 .ij ik ikj k k
p p p≠
= −∑ ∑
Когда наблюдения в узле равномерно распределены по категориям, индекс Джини принимает свое максимальное значение. Когда все наблюдения в узле принадлежат к одной и той же категории, индекс Джини равен 0.
Допустим, есть узел и он разбит на два класса. Максимальная неопределенность в узле будет достигнута при разбиении его на два подмножества по 50 примеров, а максимальная определенность — при разбиении на 100 и 0 примеров.
Чаще всего для оценки
неоднородности в узле
применяется индекс
Джини.
26
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
На втором этапе происходит выбор оптимального дерева. Для этого используется кроссвалидация. Фиксируется некоторое множество разбиений исходной выборки (в R по умолчанию используется 10 разбиений) на две подвыборки: обучающую и контрольную. Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке, затем оценивается его средняя ошибка на объектах контрольной подвыборки. Кроссвалидационной ошибкой (crossvalidated error, или xerror) называется средняя по всем разбиениям величина ошибки на контрольных подвыборках. Она оценивает способность модели выдавать правильные прогнозы на новых данных, не входивших в состав обучения. В итоге на каждом шаге построения дерева рассчитываются кроссвалидационные ошибки, помогающие определить, когда достигнута максимальная прогностическая способность и дерево можно остановить в росте.
Для контроля роста дерева необходимо анализировать не только кроссвалидационную ошибку, но также и стоимость сложности модели (costcomplexity parameter, или cp). Данный параметр определяет «стоимость» каждого расщепления. По мере увеличения расщеплений дерево становится более сложным, а ошибка подгонки модели уменьшается. Если при расщеплении узла добавление переменной в модель увеличивает сложность, но не уменьшает ошибку подгонки (снижение ошибки меньше заданного порогового значения), то это ведет к построению излишне сложного, детализированного дерева, происходит переобучение модели. Поэтому процесс расщепления в таком случае нужно остановить. Для этого в рамках метода CART используется техника прунинга (отсечения ветвей дерева). Прунинг приводит к уменьшению числа узлов и упрощению структуры дерева, позволяет минимизировать переобучение.
Часто на практике мы получаем решение, в котором сложно найти абсолютно наименьшее значение кроссвалидационной ошибки; обычно есть несколько минимальных кроссвалидационных ошибок, близких по своим значениям. Это может указывать на то, что дерево является маленьким по размеру. Целесообразно построить более полное дерево, выбрав меньшее значение cp, а затем заново проанализировать полученные кроссвалидационные ошибки и произвести прунинг.
Таким образом, общая логика анализа состоит в том, чтобы построить полное дерево с максимальным количеством расщеплений (т.е. переобученное), а затем обрезать его до нужного размера, выбрав оптимальное сочетание значений кроссвалидационной ошибки и сложности.
Техника прунинга (отсе-
чения ветвей дерева)
приводит к уменьшению
числа узлов и упроще-
нию структуры дерева,
позволяет минимизиро-
вать переобучение.
27
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
Подготовка данных для моделиРассмотрим конкретный пример разработки скоринговой модели c помощью метода деревьев решений в программе R. Модель должна дать прогноз рисков по клиентам, которые планируют воспользоваться кредитом, на основе исторических данных.
Историческая выборка — данные о 700 заемщиках, которые уже воспользовались кредитом.
Независимые переменные:— возраст заемщика (age);— образование заемщика (ed);— общий стаж заемщика (employ);— срок проживания заемщика по последнему адресу (address);— ежемесячный личный доход заемщика (income);— процент кредитных обязательств заемщика от дохода
(debtinc);— долг заемщика по кредитной карте банка (creddebt);— наличие детей у заемщика (children).Зависимая переменная — отсутствие/наличие у клиента просро
чек по ранее взятому кредиту (default). Принимает значение 0 — отсутствие просрочек или 1 — наличие просрочек.
Данные о 700 заемщиках содержатся в учебном файле bankloan.csv1.
Запустите программу R. Теперь мы должны прочитать наш учебный файл bankloan.csv, указав путь к нему:> read.csv2(«C:/data/bankloan.csv»)
Протокол расчетов 1
Данные (фрагмент)
1 http://www.sendspace.com/file/29eleq.
Получаем информацию о наших данных. Приводится таблица — значения переменных для каждого из 700 наблюдений.
age ed employ address income debtinc creddebt children default1 41 3 17 7 176 9.3 11.359392 0 12 27 1 10 6 31 17.3 1.362202 1 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 45 1 19 5 77 8.4 2.302608 2 0700 37 1 12 5 44 14.7 2.994684 2 0
28
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
Теперь необходимо указать тип переменных, которые будут использоваться для анализа. Для количественных переменных нужно воспользоваться функцией as.numeric, а для категориальных переменных — функцией as.factor.
Результату операции присвоим имя data, чтобы начать работу с нашими данными в R:> data <- read.csv2(«C:/data/bankloan.csv»)
Зададим типы переменных для анализа:> data$age <-as.numeric(data$age)data$ed <-as.factor(data$ed)data$employ <-as.numeric(data$employ)data$address <-as.numeric(data$address)data$income <-as.numeric(data$income)data$debtinc<-as.numeric(data$debtinc)data$creddebt<-as.numeric(data$creddebt)data$children<-as.numeric(data$children)data$default<-as.factor(data$default)
Для отображения структуры данных выбираем команду:> str(data)
Протокол расчетов 2
Структура данных
Проверим, как теперь выглядят наши переменные.
Протокол расчетов 2 показывает, что переменные ed и default являются теперь категориальными (факторами), а остальные переменные являются количественными.
Теперь необходимо указать пакет, который будет использоваться для построения дерева решений.
'data.frame': 700 obs. of 9 variables: $ age : num 41 27 40 41 24 41 39 43 24 36 ... $ ed : Factor w/ 5 levels «1»,»2»,»3»,»4»,..: 3 1 1 1 2 2 1 1 1 1 ... $ employ : num 17 10 15 15 2 5 20 12 3 0 ... $ address : num 7 6 3 2 8 30 6 23 19 8 ... $ income : num 176 31 55 120 28 25 67 38 19 25 ... $ debtinc : num 9.3 17.3 5.5 2.9 17.3 10.2 30.6 3.6 24.4 19.7 ... $ creddebt: num 11.359 1.362 0.856 2.659 1.787 ... $ children: num 0 1 2 1 2 2 2 2 0 1 ... $ default : Factor w/ 2 levels “0”,”1”: 2 1 1 1 2 1 1 1 2 1 ...
29
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
Построение модели дерева решенийЧтобы построить модель дерева решений, необходимо задать команду:rpart(formula, data=, method=,control=), где:
Загрузим пакет rpart, воспользовавшись следующей командой:> library(rpart)
Построим модель дерева классификации по всем исходным предикторам, изменив при этом пороговое значение для подгонки модели:> model<-rpart(default~., method='class', data, cp=0.001)
Выведем информацию о прогностической точности модели:> printcp(model)
formula= Задает формулу в формате:Зависимая переменная ~ Предиктор1 + Предиктор2 + Предиктор3 + др.
data= Задает набор данных для анализаmethod= 'class' — для деревьев классификации;
'anova' — для деревьев регрессииcontrol= Задает критерии роста дерева:
minsplit — минимальное число наблюдений в узле перед расщеплением, по умолчанию равно 20;cp (complexity parameter) — пороговое значение для подгонки модели, по умолчанию равно 0,01; minbucket — минимальное количество наблюдений в терминальном узле, по умолчанию равно minsplit/3;xval — количество разбиений исходной выборки на обучающую и контрольную для кроссвалидации, по умолчанию равно 10.Например, control=rpart.control(minsplit=30, cp=0.001) обозначает, что минимальное число наблюдений в узле перед расщеплением должно быть не менее 30 и происходящее расщепление должно уменьшать ошибку подгонки модели не менее чем на 0,001. Если оба условия не выполняются, то дерево останавливается в росте
Поскольку наша зависимая переменная default является категориальной, необходимо построить дерево классификации.
Протокол расчетов 3
Оценка прогностической точности моделиClassification tree:rpart(formula = default ~ ., data = data, method = «class», cp = 0.001)
Variables actually used in tree construction:[1] address age creddebt debtinc employ
30
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
В протоколе расчетов 3 приводится оценка сложности и прогностической точности модели.
В целом таблица позволяет увидеть, как с ростом дерева увеличивается его сложность и уменьшается ошибка прогноза.
Root node error показывает базовую ошибку прогноза. Это доля миноритарной категории целевой переменной в исходной выборке.
Параметр CP (complexity parameter) показывает изменение сложности модели с ростом дерева.
Параметр nsplit показывает количество расщеплений на каждом этапе построения дерева. В последней строке в столбце nsplit приводится итоговое количество расщеплений.
Количество узлов всегда на единицу больше количества расщеплений. В нашем случае дерево имеет 24 узла.
Параметр rel error показывает относительную ошибку прогноза (долю наблюдений, неправильно классифицированных моделью). Умножение показателя на базовую ошибку прогноза позволяет получить абсолютную ошибку прогноза: 0,51 × 0,26 = 0,13, или 13%. Это обозначает, что модель неправильно классифицировала 13% наблюдений. Несмотря на возрастание сложности дерева, данный показатель может уменьшаться, поэтому его называют «оптимистичным» и обычно не используют для оценки размера дерева.
Параметр xerror показывает кроссвалидационную ошибку прогноза. Умножение показателя на базовую ошибку прогноза позволяет получить абсолютную кроссвалидационную ошибку прогноза: 0,94 × × 0,26 = 0,24, или 24%. Это обозначает, что, используя модель на новых данных, мы получим 24% неверно классифицированных наблюдений.
Параметр xstd показывает стандартное отклонение для кроссвалидационной ошибки.
Root node error: 183/700 = 0.26143
N = 700
cp nsplit rel error xerror xstd1 0.0874317 0 1.00000 1.00000 0.0635292 0.0601093 1 0.91257 0.99454 0.0634163 0.0327869 3 0.79235 0.95082 0.0624844 0.0145719 4 0.75956 0.90164 0.0613655 0.0142077 7 0.71585 0.89617 0.0612366 0.0136612 14 0.60656 0.90710 0.0614937 0.0109290 16 0.57923 0.91257 0.0616208 0.0054645 21 0.52459 0.93443 0.0621199 0.0010000 23 0.51366 0.93989 0.062242
31
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
В протоколе расчетов 4.1 приводится уже знакомая таблица с оценкой точности модели.
Теперь выведем развернутые результаты построения модели:> summary(model)
Call:rpart(formula = default ~ ., data = data, method = «class», cp = 0.001) n = 700
cp nsplit rel error xerror xstd1 0.087431694 0 1.0000000 1.0000000 0.063528812 0.060109290 1 0.9125683 0.9945355 0.063416243 0.032786885 3 0.7923497 0.9508197 0.062483794 0.014571949 4 0.7595628 0.9016393 0.061364725 0.014207650 7 0.7158470 0.8961749 0.061235636 0.013661202 14 0.6065574 0.9071038 0.061492847 0.010928962 16 0.5792350 0.9125683 0.061620018 0.005464481 21 0.5245902 0.9344262 0.062119199 0.001000000 23 0.5136612 0.9398907 0.06224165
Протокол расчетов 4.1
Вывод развернутых результатов: оценка прогностической точности модели
Протокол расчетов 4.2
Вывод развернутых результатов: важность переменных
Протокол расчетов 4.3
Вывод развернутых результатов: характеристики узлов (фрагмент)
Variable importance
debtinc creddebt employ income age address ed
30 21 20 12 9 6 2
Протокол расчетов 4.2 показывает важность переменной в модели. Наиболее важным предиктором оказался процент кредитных обязательств заемщика от дохода (debtinc), а наименее важным — образование (ed).
Node number 2: 542 observations, complexity param=0.01420765 predicted class=0 expected loss=0.1771218 P(node) =0.7742857 class counts: 446 96
32
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
Протокол расчетов 4.3 показывает характеристики каждого узла дерева.
Predicted class показывает спрогнозированную категорию зависимой переменной для узла. Например, рассмотрим узел 2. Он содержит 542 наблюдения. Для данного узла спрогнозирована категория «отсутствие просрочек».
Expected loss показывает долю неверно классифицированных наблюдений от общего числа наблюдений в узле. Например, для узла 2 доля неверно классифицированных наблюдений составляет 96 / 542 = 0,177, или 17,7%.
P(node) показывает долю наблюдений в узле от исходной выборки. Например, доля наблюдений в узле 2 от исходной выборки составляет 542 / 700 = 0,774, или 77,4%.
Class counts показывает распределение наблюдений по категориям. В узле 2 446 наблюдений — это заемщики, которые не имели просрочек, и только 96 наблюдений — это заемщики с просрочками. Поскольку большая часть наблюдений в узле 2 — это «хорошие» заемщики, для данного узла была спрогнозирована категория «отсутствие просрочек».
Probabilities показывает распределение вероятностей по категориям. Для каждого клиента, относящегося к узлу 2, предсказываются вероятность отсутствия просрочек 0,823 и вероятность наличия просрочек 0,177.
Left son и right son показывают, как узел расщепляется на узлыпотомки. Например, узел 2, в свою очередь, разбивается на два узлапотомка: узел 4 и узел 5.
Primary splits показывают переменные, иcпользуемые для расщепления узла.
Surrogate splits показывают переменныезаменители (суррогаты), задаваемые которыми разбиения наиболее близки к разбиению, зада
probabilities: 0.823 0.177 left son=4 (359 obs) right son=5 (183 obs) Primary splits: employ < 4.5 to the right, improve=16.462380, (0 missing) age < 29.5 to the right, improve= 8.373317, (0 missing) debtinc < 7.95 to the left, improve= 5.543382, (0 missing) income < 31.5 to the right, improve= 4.911353, (0 missing) ed splits as LRRRR, improve= 2.334674, (0 missing) Surrogate splits: income < 26.5 to the right, agree=0.771, adj=0.322, (0 split) age < 28.5 to the right, agree=0.740, adj=0.230, (0 split) ed splits as LLLRL, agree=0.673, adj=0.033, (0 split) creddebt < 0.3251625 to the right, agree=0.668, adj=0.016, (0 split)
33
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
ваемому исходным предиктором. Суррогаты применяются, если переменная, используемая для разбиения, имеет пропущенные значения.
На практике удобнее выводить краткие результаты построения модели:> print(model)
В протоколе расчетов 5 для каждого узла выводятся: — номер узла;— переменная, использованная для расщепления узла;— количество наблюдений в узле;— доля неверно классифицированных в узле;— спрогнозированная категория зависимой переменной для узла;— вероятности категорий в узле. Знаком * отмечены терминальные узлы.В первом расщеплении дан прогноз 0 — отсутствие просрочек
(вероятность 0,739). 183 заемщика, у которых были просрочки, неверно классифицированы. Таким образом, параметр loss (доля неверно классифицированных) равен 183.
Чтобы вывести диаграмму дерева, необходимо задать команду: plot(x, uniform, branch), где:
N = 700
node), split, n, loss, yval, (yprob) * denotes terminal node
1) root 700 183 0 (0.73857143 0.26142857) 2) debtinc< 14.75 542 96 0 (0.82287823 0.17712177) 4) employ>=4.5 359 32 0 (0.91086351 0.08913649) 8) debtinc< 8.55 240 13 0 (0.94583333 0.05416667) * 9) debtinc>=8.55 119 19 0 (0.84033613 0.15966387) 18) employ>=10.5 57 3 0 (0.94736842 0.05263158) * 19) employ< 10.5 62 16 0 (0.74193548 0.25806452) 38) creddebt< 2.490352 54 9 0 (0.83333333 0.16666667) * 39) creddebt>=2.490352 8 1 1 (0.12500000 0.87500000) *
Протокол расчетов 5
Вывод кратких результатов (фрагмент)
x= Задает объектuniform= Задает вертикальное расстояние между узлами:
TRUE — узлы дерева размещаются по вертикали на одинаковом расстоянии друг от друга;
34
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
Диаграмма дерева (рис. 3) наглядно показывает структуру дерева. Однако для ее правильной интерпретации все же лучше использовать результаты протокола расчетов 5. Главным предиктором дефолта стал процент кредитных обязательств от дохода (debtinc). Он делит корневой узел (исходное множество заемщиков) на два узла: заемщики с процентом кредитных обязательств меньше 14,75 (узел 2)
Для наглядности выведем диаграмму дерева с параметрами по умолчанию:> plot(model)
Теперь нанесем на нее правила разбиения, полученные моделью:> text(model)
FALSE — узлы дерева размещаются по вертикали на разном расстоянии друг от друга пропорционально ошибке подгонки модели (по умолчанию)
branch= Задает форму ветвей, идущих от родительского узла к узлампотомкам:0 — задает Побразную форму ветвей (по умолчанию);1 — задает Vобразную форму ветвей
Рисунок 3
Диаграмма дерева
debtinc < 14,75
debtinc < 24,65
debtinc < 8,55debtinc < 2,35
00
0
00
0
0
0
0
1
1 1
1
1
employ > 4,5
employ >= 9,5
age ≥ 32,5
age < 37,5
address ≥ 27
address ≥ 5,5
address < 18employ ≥ 4,5
address≥ 5,5
creddebt < 2,49
creddebt < 0,228
creddebt < 0,7609
debtinc < 10,35
creddebt < 4,804
creddebt < 1,579 creddebt ≥ 1,847
employ > 10,5
employ ≥ 2,5
employ ≤ 1,5
0
00
01
11
1
1
1
35
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
и заемщики с процентом кредитных обязательств больше или равным 14,75 (узел 3). При этом левому узлупотомку (узлу 2) присвоена категория «отсутствие просрочек», а правому узлупотомку (узлу 3) присвоена категория «наличие просрочек». Отметим, что каждый раз при расщеплении левый узелпотомок будет получать категорию «отсутствие просрочек», а правый узелпотомок — категорию «наличие просрочек».
Узел 3 (заемщики с процентом кредитных обязательств больше или равным 14,75) снова расщепляется по проценту долговых обязательств на узел 6 (заемщики с процентом кредитных обязательств меньше 24,65) и узел 7 (заемщики с процентом кредитных обязательств больше или равным 24,65). Узел 6 получает категорию «отсутствие просрочек», а находящийся справа узел 7 получает категорию «наличие просрочек». Кроме того, узел 7 является конечным узлом и уже не расщепляется.
Узел 6 (заемщики с процентом кредитных обязательств меньше 24,65) разбивается по общему стажу (employ) на узел 12 (заемщики со стажем больше или равным 9,5 лет) и узел 13 (заемщики со стажем меньше 9,5 лет). И снова узел 12 получает категорию «отсутствие просрочек», а находящийся справа узел 13 получает категорию «наличие просрочек».
Узел 12 (заемщики со стажем больше или равным 9,5 лет) разбивается по долгу по кредитной карте (carddebt) на узел 24 (заемщики с долгом по кредитной карте меньше 4,804) и узел 25 (заемщики с долгом по кредитной карте больше или равным 4,804). Аналогично узел 24 получает категорию «отсутствие просрочек», а находящийся справа узел 25 получает категорию «наличие просрочек». При этом оба узлапотомка являются конечными и уже не расщепляются.
Не вдаваясь подробно в интерпретацию дерева, можно отметить, что дерево имеет достаточно сложную, ветвистую структуру. Необходимо определить оптимальный размер дерева, при котором будет найден оптимальный баланс сложности и прогностической способности.
Вернемся к протоколу расчетов 3. Поиск размера дерева, при котором кроссвалидационная ошибка будет минимальна, приводит нас к nsplit = 7 при xerror = 0,896 и cp = 0,014. Абсолютная кроссвалидационная ошибка будет равна 0,90 × 0,26 = 0,23, или 23%.
В нашем случае главным
предиктором дефолта
стал процент кредитных
обязательств от дохода
(debtinc).
Чтобы убедиться в правильности выбранного решения, построим график зависимости кроссвалидационных ошибок от числа расщеплений и сложности модели:> plotcp(model)
36
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль
На рис. 4 видны несколько минимальных кроссвалидационных ошибок, мало различающихся между собой (size of tree = 5, 8 и 15). Наименьшее значение кроссвалидационной ошибки наблюдается при cp = 0,014. Наибольшее увеличение кроссвалидационной ошибки происходит при cp в интервале от 0,012 до 0,0077. Поэтому оптимальное значение cp должно лежать в интервале от 0,0077 до 0,014. Выберем cp = 0,01 (0,0077 < 0,01 < 0,014).
Теперь осуществим прунинг, установив новое пороговое значение подгонки модели:> model2 <- prune(model, cp=0.01)
Для наглядности выведем диаграмму обрезанного дерева с параметрами по умолчанию:> plot(model2)> text(model2)
Посмотрим на результаты прогноза модели после прунинга:> predict(model2, data)
Рисунок 4
График зависимости кросс-валидационных ошибок от числа расщеплений и сложности модели
По каждому наблюдению (заемщику) вычисляются вероятности отсутствия и наличия просрочек.
1,1
1,0
0,9
0,8
inf 0,072 0,044 0,022 0,014 cp 0,014 0,012 0,0077 0,0023
1 2 4 5 8 15 17 22 24
X-v
al r
elat
ive
erro
r
Size of tree
37
www.reglament.net
классификация заемщиков \ кросс-валидация \ прунинг
Разработка скоринговой модели с помощью метода деревьев решений
ВыводыИтак, мы использовали метод деревьев решений для оценки кредитоспособности заемщиков. Модель позволяет предсказывать дефолт заемщиков; кроме того, дерево представляет собой наглядный алгоритм принятия решения о выдаче кредита. Вместе с тем изначально полученное дерево оказалось излишне сложным, переобученным. Это часто встречается на практике и диктует необходимость прунинга, при котором нужно найти приемлемые значения кроссвалидационной ошибки и сложности.
0 11 0.95 0.052 0.91 0.09. . . . . . 699 0.95 0.05700 0.95 0.05
Протокол расчетов 6
Спрогнозированные вероятности по наблюдениям (фрагмент)
Протокол расчетов 7
Округленные спрогнозированные вероятности по наблюдениям (фрагмент)
0 1
1 0.9473684 0.05263158
2 0.9117647 0.08823529
. . . . . . . . . . .
699 0.9458333 0.05416667
700 0.9473684 0.05263158
Результату операции присвоим имя result, чтобы можно было работать с вычисленными вероятностями:> result <- predict(model2,data)
Для удобства интерпретации можно округлить данные:> round(result, digits=2) # округляем до 2-го знака после запятой
38
Риск-менеджмент в кредитной организации № 2 (10) \ 2013
Управление и контроль