МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Кафедра ИТ6 «Управление и моделирование систем»
ДИПЛОМНЫЙ ПРОЕКТ
на тему
«Разработка программно-математического комплекса
поддержки скоринга востребования»
Выполнил: Царьков Юрий АлександровичРуководитель: Мельников Алексей Олегович
Москва, 2013
Принятие стратегического решения
Прекратить взыскание
Продолжить прежним методомИзменить
метод взыскания
Списать задолженность
Скоринг(от англ.
score - счет)
Кредитный
Мошенничества
Поведенческий
Востребования
система оценки заемщика, основанная на численных статистических методах
оценка кредитоспособности заемщика при выдаче кредита
оценка вероятности мошеннических действий со стороны потенциального заемщикаанализ кредитной истории с целью изменения стратегии взаимодействия с заемщикоманализ информации о заемщике с целью возврата просроченного платежа
Установка контакта с должником
Анализ результатов
2
Разработка программно-математического комплекса,
выполняющего кластеризацию новых задолженностей, основываясь на статистической информации о ранее осуществленных контактах с должниками
1• изучение существующих программных средств и
математических методов скоринга
2• выбор математического метода для использования в
дипломном проекте
3• разработка алгоритмов для реализации выбранного метода
4• описание структуры программного комплекса и написание
программного кода, реализующего разработанные алгоритмы
5
• анализ опасных для пользователя ПЭВМ факторов и разработка комплекса мероприятий по обеспечению безопасности эксплуатации ПЭВМ
6• расчет экономической эффективности от реализации проекта
Задачи:
Цель дипломного проекта
3
Разработать эффективный механизм кластеризации вновь поступивших задолженностей, основывающийся на информации, полученной в ходе работы по возврату других задолженностей, в результате работы которого, каждый долг можно было отнести к одной из двух групп – «плохие» или «хорошие»
Постановка задачи для проектирования
«плохие» задолженности - работа по взысканию признананеуспешной
«хорошие» задолженности - работа по взысканию признанауспешной
Критерий качества задолженностей
𝐷𝑒𝑏𝑡𝑆𝑢𝑚≤𝑆𝑡𝑎𝑟𝑡𝑆𝑢𝑚×𝐾НетДа
«Хороший» «Плохой»
– остаток к погашению на данный момент – начальная сумма долга
– коэффициент, обычно близок к 0,5 4
Математические методы скоринга
линейная регрессия логистическая регрессия метод ближайших соседей линейное программирование генетические алгоритмы нейронные сети
деревья решений
байесовский подход
Линейная
регрессия
Логистическая
регрессия
Метод ближай
ших соседей
Линейное
программирован
ие
Нейронные сети
Генетический
алгоритм
Деревьярешени
й
[43,4 – 87,5]68,66
[43,3 – 89,3]66,63
[43,8 – 93,2]68,32
[74,7 – 86,1]80,4
[62 - 64]63
64,5[78,5 – 92,1]83,88
Таблица 1 – Сравнение точности классификации различных методов*, %
* Значения точности классификации для всех методов получены путем вычисления среднего арифметического результатов тестов, приведенных в таблице 1 пояснительной записки дипломного проекта.
5
Scorto Ample Collection, пакет
Loan Decision
IBM SPSS, пакет Clementine
SAS, пакет Enterprise Miner
Ksema TERN Group, пакет KXEN Analytic
Framework
Существующие программные решения
Продукт
Возможность
интеграции со
сторонними АС
Построение
стратегий
Наличие АРМ
Используемые алгоритмы
обработки данных
Стоимость
(минимальная
стоимость пакета,
руб.)
Scorto есть есть есть лог. регрессия, деревья решений 65 000
IBM SPSS нет нет естьлог. регрессия,
деревья решений, нейронные сети
82 000
SAS нет нет нетлог. регрессия,
деревья решений, нейронные сети
600 000
KSEN есть есть нет
лог. регрессия, деревья решений, нейронные сети,
сети Байеса
2 700 000
Разрабатываемое ПО
есть есть естьскрытая марковская
модель
Таблица 2 – Сравнительная характеристика программных продуктов в области скоринга
6
Информационная модель
7
Коллектор
Должник
Результат контакта
(наблюдение)
Результат контакта
(наблюдение)
Контакт 1
Контакт I
t
I >> 1
БД
Должник
𝑂1
𝑂 𝑖
Коллектор
Коллектор
t
Должник
I > 1
{…}
I - количество контактов с должником - один из возможных результатов, полученных в ходе работы с должником
Математическая модель
𝜆= {𝐴 ,𝐵 ,𝜋 }
где– вероятность перехода
где – вероятность -го наблюдения в -м состоянии
где – вероятность в начальныймомент времени
Скрытая марковская модель:
8
Описание параметров модели
9
– заемщик не знает о просрочке
– заемщику известно о просрочке, готов к сотрудничеству
– заемщику известно о просрочке, отказывается от сотрудничества
Номер ЗначениеСостояние
в СММ1 Автоответчик S1, S2, S32 Должник не берет трубку S1, S2, S33 Должник не дождался ответа оператора S1, S2, S34 Информация передана S1, S2, S35 Клиента знают, но связи не имеют S1, S2, S36 Клиента не знают S1, S2, S37 Нарушение обязательств S2, S38 Не берут трубку S1, S2, S39 Необходимо перезвонить S1, S2, S3
10 Номер не существует S1, S2, S311 Обещание оплаты S1, S2, S312 Отказ от верификации S2, S313 Отказ от оплаты S2, S314 Отправлен факс S1, S2, S315 Подозрение на мошенничество (КЛИЕНТ) S1, S2, S316 Подтверждение оплаты S217 Полное погашение S2, S318 Признак мошенничества (НЕ КЛИЕНТ) S1, S2, S319 Сброс со стороны абонента S1, S2, S320 Связаться с заемщиком невозможно S1, S2, S321 Связь прервалась S1, S2, S322 Сложный (в армии, в тюрьме, алкоголик, наркоман) S1, S2, S3
23 Сообщение прослушано не полностью (Автоинформатор) S1, S2, S3
24 Сообщение прослушано полностью (Автоинформатор) S1, S2, S3
25 Телефон занят S1, S2, S3
26Третье лицо не знает о кредите/Отказ в передаче информации
S1, S3
27 Тяжело болен/Инвалид S1, S2, S328 Умер/Пропал без вести S1, S2, S329 Частичное погашение S1, S2, S3
Таблица 3 – Исходы, регистрируемые по результату контакта с заемщиком
Номер
ЗначениеСостояние
в СММ1 Нет данных в БД S12 Болезнь S2, S33 Забыл S14 Кредит оформлял не для себя S1, S35 Мошенничество S36 Находился в командировке\отпуске S1, S27 Не разъяснены условия договора S18 Причина не установлена S1, S2, S39 Проблемы с досрочным погашением S2, S3
10 Рекламация S2, S311 Тяжелое материальное положение S2, S3
12Утеряны платежи (контроль по квитанциям)
S2, S3
Таблица 4 – Возможные причины выхода на просрочку
Переход Номер наблюдения (таблица 3)
1, 2, 3, 4, 8, 9, 10, 14, 20, 21, 23, 2511, 16, 17, 23, 24, 295, 6, 7, 12, 13, 15, 18, 19, 22, 23, 24, 26, 27, 281, 2, 3, 4, 8, 9, 10, 11, 14, 16, 17, 20, 21, 23, 24, 25, 295, 6, 7, 12, 13, 15, 18, 19, 22, 23, 24, 26, 27, 2811, 16, 17, 23, 24, 291, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 281, 2, 3, 4, 8, 9, 10, 14, 20, 21, 23, 2511, 16, 17, 23, 24, 295, 6, 7, 12, 13, 15, 18, 19, 22, 23, 24, 26, 27, 28
Таблица 5 – Правила изменения состояний СММ
Причина выхода на просрочку (таблица 4)
Номер наблюдения (таблица 3)
Состояние
15, 6, 7, 10, 11, 12, 13, 15, 16, 17, 18, 20, 22, 26, 28
S1
2 – 12 11, 16, 17 S2
2 – 12 5, 6, 7, 10, 12, 13, 15, 18, 20, 22, 26, 28
S3
Таблица 6 – Правила определения начальных состояний СММ
Общая схема решения
Историяконтактов
Клиентскиймодуль
Серверный модуль
Подготовкапараметров
моделей
Сборстатистики
Работа повозврату
задолженности
Модель
Модель
Последовательность наблюдений
Выбор помаксимуму
𝑃 (𝑂|𝜆1)
𝑃 (𝑂|𝜆2 )
Индекс кластера
Задолженность
для каждой модели
Информацияо исследуемомдолге не учитываетсяпри подготовкепараметровмодели
Обучениемоделей
10
Метод решения задачи
𝛼 𝑡 (𝑖 )=𝑃 (𝑂1 ,𝑂2,…,𝑂𝜏 ,𝑞𝜏=𝑆𝑖|𝜆)Вероятность появления частичной последовательности наблюдений
𝛼0 (𝑖 )=𝜋 𝑖𝑏𝑖 (𝑜1 ) , 𝑖=1 ,𝑁
Инициализация:
Вычисление:
𝛼 𝑡 ( 𝑗 )=[∑𝑖=1
𝑁
𝛼𝑡− 1 (𝑖 )𝑎𝑖𝑗]𝑏 𝑗 (𝑜𝑡 ) , 𝑗=1 ,𝑁 , 𝑡=1 ,𝜏−1
𝑃 (𝑂∨𝜆)=∑𝑖=1
𝑁
𝛼𝑡 (𝑖 )
Алгоритм прямого хода
𝑂 ∊𝜆1,𝑃 (𝑂|𝜆1 )≥ 𝑃 (𝑂|𝜆2 )𝜆2,𝑃 (𝑂|𝜆1 )<𝑃 (𝑂|𝜆2 )
11
(1)
(2)
(3)
– длина последовательности
N – число состояний
Метод решения задачи
Вероятность появления частичной последовательности наблюдений
Инициализация:
Вычисление:
Алгоритм обратного хода
𝛽𝑡 (𝑖 )=𝑃 (𝑂𝑡+1 ,𝑂𝑡+2 ,…,𝑂𝜏|𝑞𝑡=𝑆𝑖 ,𝜆) ,
𝛽𝜏 (𝑖 )=1 , 𝑖=1 ,𝑁
𝛽𝜏 (𝑖 )=∑𝑗=1
𝑁
𝑎𝑖𝑗𝑏 𝑗 (𝑜𝑡+1 ) 𝛽𝜏+1 ( 𝑗 ) ,𝑖=1 ,𝑁 , 𝑡=𝜏−1 ,1
𝑃 (𝑂∨𝜆)=∑𝑖=1
𝑁
𝜋𝑖𝑏𝑖 (𝑜1 ) 𝛽1 (𝑖 ) 𝑂 ∊𝜆1,𝑃 (𝑂|𝜆1 )≥ 𝑃 (𝑂|𝜆2 )𝜆2,𝑃 (𝑂|𝜆1 )<𝑃 (𝑂|𝜆2 )
12
(4)
(5)
(6)
– длина последовательности
N – число состояний
Алгоритм реализации клиентской части
TScore.StartScore()
InitHMMValues
TScore.quScoreDebt.First
P1 := 0P2 := 0
quScoreDebt.Eof
Вычисление и сравнение вероятностей для каждого
долга исследуемого множества
Конец
P1 := HMM_Good.GetForwardProba
bilityP2 :=
HMM_Bad.GetForwardProbabil
ity
P1 > P2
quScoreDebt_ScoreResult :=
0
quScoreDebt_ScoreResult :=
1
Нет
Да
quScoreDebt.Post
quScoreDebt.Next 1
3
Алгоритм реализации серверной части
Начало (Execute gain_stat)
Подготовка вспомогательн
ых таблиц
Вычисление значений вектора
вероятностей начальных состоянийВычисление значений матрицы
вероятностей наблюденийВычисление
значений матрицы
вероятностей переходов
Конец14
Диаграмма классов клиентской части ПО
15
Методика тестирования
Отобрать 1000 задолженност
ей из БДОтфильтровать непригодные для использования данные
Отобрать 15% в тестовую группу
Выполнить сбор статистики и расчет параметров моделей по обучающей группе
Выполнить моделирование с использованием
полученных входных параметров на тестовой
группе
Выбираются случайным образом из всех долгов,
по которым уже завершена работа
Для того, чтобы в тестовой группе
присутствовали как «плохие», так и
«хорошие» задолженности,
отдельно отбираются по 15% долгов с хорошими и плохими признаками
По некоторым долгам Банки присылают
обновленную информацию о
погашении до начала работ по взысканию
1000 долгов
943
116 «хороших»
17 для тестирован
ия
99 для расчета
параметров
831 «плохих»
108 для тестирован
ия
723 для расчета
параметров
57 непригодных
Подготовка данных
16
Результаты работы ПО
"плохие"
"хорошие"
108
17
92
15
Правильно кластеризованно в СММТестовое множество
S S1 S2 S3
1 0,764151 0,018868 0,2169812 0 0,889885 0,1101153 0 0,191123 0,808877
O S1 S2 S3
1 0,009434 0,008323 0,0153992 0,103774 0,067862 0,0706523 0 0,011524 0,0099644 0 0,020487 0,0081525 0,009434 0,001921 0,010876 0,018868 0,011524 0,0144937 0 0 0,0036238 0 0,005122 0,0072469 0 0,016645 0,00996410 0,528302 0,069782 0,22463811 0 0,028169 0,00905812 0 0 013 0 0,007042 0,00634114 0 0,00128 0,00090615 0 0 016 0 0,084507 0,01177517 0 0,021767 0,00090618 0 0 019 0,188679 0,086428 0,34782620 0 0,072343 0,01268121 0,009434 0,048015 0,02989122 0 0,00064 023 0,009434 0,161332 0,0172124 0,018868 0,224712 0,15217425 0,103774 0,046095 0,0344226 0 0,002561 0,00181227 0 0 028 0 0 029 0 0,001921 0
π π1 π2 π3
1 0,262626 0,232323 0,505051
Таблица 7 – Вероятности начальных состоянийдля модели «хороших» задолженностей
Таблица 8 – Вероятности изменения состоянийдля модели «хороших» задолженностей
Таблица 9 – Вероятности получения наблюденийдля модели «хороших» задолженностей
S S1 S2 S3
1 0,947418 0,003756 0,0488262 0 0,792564 0,2074363 0 0,018688 0,981312
O S1 S2 S3
1 0,001995 0,019569 0,00523272 0,313967 0,066536 0,22397683 0,00223 0,013699 0,01859474 0,000469 0,003914 0,01009165 0,001526 0,020548 0,01354896 0,003873 0,108611 0,03158297 0 0 0,00018698 0,006221 0,007828 0,01214739 0,003052 0,017613 0,020556910 0,524883 0,093933 0,264623411 0 0,000978 0,000186912 0 0 9,34E-0513 0,000117 0,001957 0,000186914 0 0,005871 0,002055715 0 0 9,34E-0516 0 0 9,34E-0517 0 0 018 0 0 0,000186919 0,043192 0,07045 0,288357320 0,000469 0,031311 0,006727721 0,006103 0,053816 0,03373222 0 0 023 0,000587 0,219178 0,002429524 0,003756 0,216243 0,015978325 0,087441 0,042074 0,040926926 0,000117 0 0,002896727 0 0 028 0 0,005871 0,00551329 0 0 0
π π1 π2 π3
1 0,876902 0,001383 0,121715
Таблица 10 – Вероятности начальных состоянийдля модели «плохих» задолженностей
Таблица 11 – Вероятности изменения состоянийдля модели «плохих» задолженностей
Таблица 12 – Вероятности получения наблюденийдля модели «плохих» задолженностей
«хорошие»
«плохие»
Тестовое множество 17 108
Правильно кластеризованно СММ
15 92
15+9217+108
×100=𝟖𝟓 ,𝟔%
Точность кластеризации
Таблица 13 – Результат работы ПО на тестовых данных
17
Экономический раздел
Наименование статей
Обозначение Сумма, руб. В % к итогу
Основная заработная плата
Сосн 210000 45,15
Дополнительная заработная плата
Сдоп 21000 4,6
Отчисления на социальные нужды
Ссоц 78540 16,89
Материалы Смат 2750 0,59
Стоимость машинного времени
Смаш.вр 26850 5,77
Накладные расходы
Сн 126000 27
Итого: Спр 465140 100
Таблица 14– Смета затрат на разработку и внедрение ПО
Ленточный график разработки ПО
Наименование
показателя
Ед. измерения
Базовый вариант
Проектный вариант
Проектный вариант в
% к базовому
Способ обработки информаци
и
- В ручную
С применение
м ЭВМ и программных средств
-
Используемое
оборудование
-Пишущие машинки
ПЭВМ, принтер
-
Годовые затраты на обработку
информации
Чел. ч.Маш. ч.
7192
17981259
25
Количество работников
Чел 4 1 25
Потребность в
производственных
площадях
м2 12 6 50
Капитальные вложения
Руб. 180000 238217,22 132
Годовые текущие
затраты на обработку
информации
Руб. 4511508 1132384,75 25
Годовые приведенны
е затраты на
обработку информаци
и
Руб. 4538508 1158117,33 25
Годовой экономический эффект
Руб. - 3380390,67 -
Таблица 15– Основные технико-экономические показатели
Расчетные результаты внедрения:• годовой экономический эффект в размере
3380390,67 рубля• снижение следующих экономических
показателей: годовые приведенные затраты труда на
75% количество работников на 75% годовые текущие затраты на 75%
18
Выводы
В рамках дипломного проекта разработан программно-математический комплекс, использующий аппарат скрытых марковских моделей для кластеризации задолженностей, не требующий обучения по алгоритму Баума-Велча
В ходе тестирования установлено, что разработанный комплекс выполняет кластеризацию с высокой точностью, позволяющей повысить эффективность работы специалистов за счет выявления перспективных задолженностей на ранних стадиях работы по взысканию
Созданное ПО может быть использовано как в качестве самостоятельного средства анализа данных, так и в комплексе с системами учета проблемных активов
19
21
Спасибо за внимание!