Кредитно оценяване с машинно обучение

Кредитната оценка е числов израз, измерващ кредитоспособността на хората. Банкирането обикновено го използва като метод за подпомагане на вземането на решения относно заявленията за кредит. В този блог ще говоря за това как да разработя стандартна таблица с показатели с Python (Pandas, Sklearn), която е най-популярната и най-проста форма за кредитно оценяване, за да се измери кредитоспособността на клиентите.

Мотивация на проекта

В наши дни кредитоспособността е много важна за всички, тъй като се разглежда като показател за това колко е надежден човек. В различни ситуации доставчиците на услуги трябва първо да оценят кредитната история на клиентите и след това да решат дали ще предоставят услугата или не. Въпреки това отнема много време да проверите целия личен портфейл и да генерирате кредитен отчет ръчно. По този начин кредитната оценка се разработва и прилага за тази цел, защото е икономия на време и лесно разбираема.

Процесът на генериране на кредитния рейтинг се нарича кредитен скоринг. Той се прилага широко в много отрасли, особено в банковата. Банките обикновено го използват, за да определят кой трябва да получи кредит, колко кредит трябва да получат и коя оперативна стратегия може да бъде взета за намаляване на кредитния риск. Като цяло той съдържа две основни части:

  • Изграждане на статистическия модел
  • Прилагане на статистически модел за присвояване на резултат на заявление за кредит или на съществуваща кредитна сметка

Тук ще ви представя най-популярния метод за оценка на кредит, наречен показател. Има две основни причини, поради които показателят е най-често срещаната форма за кредитно оценяване. Първо, лесно е да се тълкува на хора, които нямат свързан опит и опит като клиентите. Второ, процесът на разработване на показателите е стандартен и широко разбиран, което означава, че компаниите не трябва да харчат много пари за това. Примерна карта с показатели е показана по-долу. Ще говоря за това как да го използвам по-късно.

Фигура-1 Примерна показател

Проучване на данни и технически характеристики

Сега ще дам някои подробности за това как да разработя карта с резултати. Наборът от данни, който използвах тук, е от състезанието Kaggle. Подробната информация е посочена на Фигура 2. Първата променлива е целевата променлива, която е двоична категорична променлива. А останалите променливи са характеристиките.

Фигура-2 Речник на данните

След като добивам представа за набора от данни, започвам да прилагам някои методи за проектиране на функции. Първо проверявам всяка характеристика дали тя съдържа липсващи стойности и след това импулсирам липсващите стойности с медиани.

На следващо място, правя външното лечение. Обикновено методите, използвани за отшелници, зависят от вида на остарелите. Например, ако външният елемент се дължи на механична грешка или проблеми по време на измерване, той може да се третира като липсващи данни. В този набор от данни има някои изключително големи стойности, но всички те са разумни стойности. По този начин прилагам кодиране отгоре и отдолу, за да се справя с тях. На фигура 3 можете да видите, след като приложите горното кодиране, разпределението на функцията е по-нормално.

Фигура 3 Извънредно третиране с топ кодиране

Според примерната карта на показанията, показана на Фигура-1, очевидно е, че всяка характеристика трябва да бъде групирана в различни атрибути (или групи). Има някои причини за групиране на характеристиките.

  • Получаване на представа за атрибутите на взаимоотношенията на характеристика и изпълнение.
  • Прилагайте линейни модели върху нелинейни зависимости.
  • Разберете по-задълбочено поведението на прогнозите за риска, което може да помогне при разработването на по-добри стратегии за управление на портфейла.

Бинингът е подходящ метод, използван за тази цел. След обработката приписвам всяка стойност на атрибута, в който трябва да бъде, което означава също, че всички числови стойности се преобразуват в категорични. Ето пример за резултата от бининга.

Фигура-4 Функция за групиране „Възраст“ с Бининг

След групирането на всички функции, инженерната функция е завършена. Следващата стъпка е да се изчисли тежестта на доказателствата за всеки атрибут и информационната стойност за всяка характеристика (или характеристика). Както споменахме по-рано, използвах binning, за да преобразувам цялата числова стойност в категорична. Ние обаче не можем да съвместим модела с тези категорични стойности, така че трябва да присвоим някои числови стойности на тези групи. Целта на тежестта на доказателствата (WoE) е точно да присвои уникална стойност на всяка група категорични променливи. Информационната стойност (IV) измерва прогнозната сила на характеристиката, която се използва за избор на функция. Формулата на WoE и IV е дадена по-долу. Тук „Добрият“ означава, че клиентът няма да има сериозна престъпност или целева променлива е равна на 0, а „Лош“ означава, че клиентът ще има сериозна просрочие или целева променлива е равна на 1.

Обикновено се изготвят доклади за анализ на характеристиките, за да се получат WoE и IV. Тук дефинирам функция в Python за автоматично генериране на отчетите. Като пример, докладът за анализ на характеристиките за „Възраст“ е показан на Фигура 5.

Фигура-5 Доклад за анализ на характеристиките за „Възраст“

Тогава правя диаграма, за да сравня IV на всички функции. В лентовата диаграма можете да видите последните две функции „NumberOfOpenCreditLinesAndLoans“ и „NumberRealEstateLoansOrLines“ имат доста нисък IV, така че тук избирам други осем функции за монтиране на модела.

Фигура-6 Прогнозна сила на всеки Характер

Изчисляване на модела на монтажа и точката за оценка

След избора на функция замествам атрибутите със съответните WoE. Досега получавам подходящия набор от данни за обучението по модел. Моделът, използван за разработване на показател за показатели, е логистична регресия, която е популярен модел за бинарна класификация. Прилагам кръстосано валидиране и търсене в мрежа, за да настроя параметрите. След това използвам набор от тестови данни, за да проверя точността на прогнозиране на модела. Тъй като Kaggle няма да даде стойностите за целева променлива, трябва да изпратя резултата си онлайн, за да получа точността. За да покажа ефекта от обработката на данни, тренирам модела със сурови данни и обработените данни. Въз основа на резултата, даден от Kaggle, точността се подобрява от 0.693956 на 0.800946 след обработката на данните.

Последната стъпка е изчисляването на точката на показателите за всеки атрибут и изготвяне на крайната карта с резултати. Резултатът за всеки атрибут може да се изчисли по формулата:

Резултат = (β × WoE + α / n) × Фактор + Отместване / n

Където:
β - коефициент на логистична регресия за характеристики, който съдържа дадения атрибут
α - логистична регресия прихващане
WoE - стойност на теглото на доказателствата за дадения атрибут
n - брой характеристики, включени в модела
Фактор, Отместване - параметър за мащабиране

Първите четири параметъра вече са изчислени е предишната част. Следните формули се използват за изчисляване на коефициента и компенсирането.

  • Фактор = pdo / Ln (2)
  • Отместване = Резултат - (Фактор × ln (коефициенти))

Тук pdo означава точки да удвои коефициента и лошият процент вече е изчислен в докладите за анализ на характеристиките по-горе. Ако базовата карта е с коефициент 50: 1 на 600 точки, а pdo от 20 (коефициент да се удвои на всеки 20 точки), коефициентът и компенсирането ще бъдат:
Фактор = 20 / Ln (2) = 28,85
Отместване = 600- 28.85 × Ln (50) = 487.14

При завършване на цялото изчисление се извършва процесът на разработване на показателя. Част от таблицата с показатели е показана на Фигура 7.

Фигура-7 Окончателна карта с част от характеристиките

Когато имате нови клиенти, просто трябва да намерите правилния атрибут във всяка характеристика според данните и да получите резултата. Крайният кредитен резултат може да се изчисли като сумата от резултата на всяка характеристика. Например, банката има нов кандидат за кредитна карта на възраст 45 години, съотношение на дълга 0,5 и месечен доход от 5000 долара. Кредитният резултат трябва да бъде: 53 + 55 + 57 = 165.

За да разработят по-точна карта с показатели, хората обикновено трябва да обмислят повече ситуации. Например, има някои хора, идентифицирани като „лоши“ в населението, но кандидатстването им е одобрено, докато има някои „добри“ лица, които са отказали. По този начин се предполага, че изводът за отхвърляне се включва в процеса на разработване. Не правя тази част, защото изисква набор от данни отхвърлени случаи, които нямам в моите данни. Ако искате да знаете повече за тази част, горещо ви препоръчвам да прочетете показатели за кредитен риск - разработване и внедряване на интелигентни кредитни оценки, написани от Naeem Siddiqi.

Ако се интересувате от моята работа или имате някакви проблеми с нея, моля не се колебайте да се свържете с мен. Междувременно, ако искате да знаете повече за това, което студентите учат от курсовете за наука за данни на WeCloudData, разгледайте този уебсайт:

www.weclouddata.com