Scoring de credit cu Machine Learning

Scorul de credit este o expresie numerică care măsoară bonitatea persoanelor. De obicei, sistemul bancar îl folosește ca o metodă pentru a sprijini luarea deciziilor cu privire la cererile de credit. În acest blog, voi vorbi despre cum să dezvolți un scor standard cu Python (Pandas, Sklearn), care este cea mai populară și mai simplă formă de notare a creditului, pentru a măsura bonitatea clienților.

Motivarea proiectului

În zilele noastre, bonitatea este foarte importantă pentru toată lumea, deoarece este considerată un indicator pentru cât de fiabil este un individ. În diferite situații, furnizorii de servicii trebuie să evalueze mai întâi istoricul creditului clienților, apoi să decidă dacă vor furniza sau nu serviciul. Cu toate acestea, este necesar să verificați întregul portofoliu personal și să generați un raport de credit manual. Astfel, scorul de credit este dezvoltat și aplicat în acest scop, deoarece este economisitor de timp și ușor de înțeles.

Procesul de generare a punctajului de credit se numește punctare credit. Este aplicat pe scară largă în multe industrii, în special în domeniul bancar. De obicei, băncile îl folosesc pentru a determina cine trebuie să obțină credit, cât de mult ar trebui să primească și ce strategie operațională poate fi luată pentru a reduce riscul de credit. În general, conține două părți principale:

  • Construirea modelului statistic
  • Aplicarea unui model statistic pentru atribuirea unui punctaj unei cereri de credit sau unui cont de credit existent

Aici voi prezenta cea mai populară metodă de notare a creditelor numită punctaj. Există două motive principale pentru care scorul este cea mai frecventă formă de notare a creditului. În primul rând, este ușor de interpretat persoanelor care nu au experiență și experiență înrudite, cum ar fi clienții. În al doilea rând, procesul de dezvoltare a scorului este standard și înțeles pe scară largă, ceea ce înseamnă că companiile nu trebuie să cheltuiască mulți bani pe el. Mai jos este prezentat un scor de probă. Voi vorbi despre cum să-l folosesc mai târziu.

Figura-1 Exemplu Scorecard

Explorarea datelor și ingineria caracteristicilor

Acum voi oferi câteva detalii despre cum să elaboreze un scor. Setul de date pe care l-am folosit aici provine din competiția Kaggle. Informațiile detaliate sunt enumerate în figura 2. Prima variabilă este variabila țintă, care este o variabilă categorică binară. Și restul variabilelor sunt caracteristicile.

Figura-2 Dictionar de date

După ce am înțeles informațiile despre setul de date, încep să aplic unele metode de inginerie a funcțiilor. În primul rând, verific fiecare caracteristică dacă conține valori lipsă, și apoi imput valorile lipsă cu mediană.

În continuare, fac tratamentul anterior. În general, metodele utilizate pentru valori superioare depind de tipul de contururi. De exemplu, dacă cele anterioare se datorează unei erori mecanice sau unor probleme în timpul măsurării, acestea pot fi tratate ca date care lipsesc. În acest set de date, există unele valori extrem de mari, dar toate sunt valori rezonabile. Astfel, aplic codurile de sus și de jos pentru a face față acestora. În figura-3, puteți vedea după aplicarea codificării superioare, distribuția funcției este mai normală.

Figura-3 Tratament mai îndepărtat cu codificare superioară

Conform scorului de probă prezentat în figura 1, este evident că fiecare caracteristică ar trebui să fie grupată în diferite atribute (sau grupuri). Există câteva motive pentru gruparea funcțiilor.

  • Obțineți o perspectivă asupra relațiilor atributelor unei caracteristici și a performanței.
  • Aplicați modele liniare pe dependențe neliniare.
  • Înțelegeți mai profund despre comportamentele predictorilor de risc, care pot ajuta la dezvoltarea de strategii mai bune de gestionare a portofoliului.

Binning este o metodă adecvată folosită în acest scop. După tratament, atribuesc fiecare valoare atributului în care ar trebui să fie, ceea ce înseamnă, de asemenea, că toate valorile numerice sunt convertite în categorii. Iată un exemplu pentru rezultatul legăturii.

Figura-4 Gruparea caracteristicii „Vârsta” cu Binning

După gruparea tuturor funcțiilor, tehnica de funcții este finalizată. Pasul următor este calcularea ponderii probelor pentru fiecare atribut și valoarea informațiilor pentru fiecare caracteristică (sau caracteristică). Așa cum am menționat anterior, am folosit binning pentru a converti toate valorile numerice în categorii. Cu toate acestea, nu putem încadra modelul cu aceste valori categorice, așa că trebuie să atribuim anumite valori numerice acestor grupuri. Scopul greutății probei (WoE) este de a atribui o valoare unică fiecărui grup de variabile categorice. Valoarea informațională (IV) măsoară puterea predictivă a caracteristicii, care este utilizată pentru selectarea caracteristicilor. Formula WoE și IV este prezentată mai jos. Aici „Bun” înseamnă că clientul nu va avea delincvență gravă sau variabila țintă este egală cu 0, iar „Rău” înseamnă că clientul va avea o delincvență gravă sau variabila țintă este egală cu 1.

De obicei, rapoartele de analiză a caracteristicilor sunt produse pentru a obține WoE și IV. Aici definesc o funcție în Python pentru a genera rapoartele automat. Ca exemplu, raportul de analiză a caracteristicilor pentru „Vârstă” este prezentat în Figura 5.

Figura-5 Raport de analiză a caracteristicilor pentru „vârstă”

Apoi fac un grafic de bare pentru a compara IV-ul tuturor caracteristicilor. În graficul de bare, puteți vedea ultimele două caracteristici „NumberOfOpenCreditLinesAndLoans” și „NumberRealEstateLoansOrLines” au un nivel IV destul de scăzut, așa că aici aleg alte opt funcții pentru montarea modelului.

Figura-6 Puterea predictivă a fiecărei caracteristici

Montarea modelului și calculul punctelor de scor

După selectarea caracteristicilor, înlocuiesc atributele cu WoE-ul corespunzător. Până acum, primesc setul de date adecvat pentru pregătirea modelului. Modelul folosit pentru dezvoltarea scorului este regresia logistică, care este un model popular pentru clasificarea binară. Aplice validare încrucișată și căutare grilă pentru a ajusta parametrii. Apoi, folosesc setul de date de testare pentru a verifica exactitatea de predicție a modelului. Deoarece Kaggle nu va oferi valorile pentru variabila țintă, trebuie să trimit rezultatul meu online pentru a obține precizia. Pentru a arăta efectul prelucrării datelor, antrenez modelul cu date brute și cu datele prelucrate. Pe baza rezultatului dat de Kaggle, precizia este îmbunătățită de la 0,693956 la 0,800946 după prelucrarea datelor.

Etapa finală este calcularea punctului de participare pentru fiecare atribut și producerea punctajului final. Scorul pentru fiecare atribut poate fi calculat cu formula:

Scor = (β × WoE + α / n) × Factor + Offset / n

Unde:
β - coeficient de regresie logistică pentru caracteristici care conține atributul dat
α - interceptarea regresiei logistice
WoE - Greutatea probei pentru atributul dat
n - numărul de caracteristici incluse în model
Factor, Offset - parametru de scalare

Primii patru parametri au fost deja calculați este partea anterioară. Următoarele formule sunt utilizate pentru calculul factorului și compensării.

  • Factor = pdo / Ln (2)
  • Offset = Scor - (Factor × ln (cote))

Aici, pdo înseamnă puncte pentru a dubla șansele, iar rata proastă a fost deja calculată în rapoartele de analiză a caracteristicilor de mai sus. Dacă un scor are cotele de bază de 50: 1 la 600 puncte și pdo de 20 (cota de a dubla fiecare 20 de puncte), factorul și compensarea ar fi:
Factor = 20 / Ln (2) = 28,85
Offset = 600- 28,85 × Ln (50) = 487,14

La terminarea întregului calcul, procesul de elaborare a punctajului este finalizat. O parte a scorului este prezentată în figura 7.

Figura-7 Final Scorecard cu o parte din caracteristici

Când veniți clienți noi, trebuie doar să găsiți atributul corect în fiecare caracteristică în funcție de date și să obțineți scorul. Scorul de credit final poate fi calculat ca suma punctajului fiecărei caracteristici. De exemplu, banca are un nou solicitant pentru card de credit cu vârsta de 45 de ani, raportul datoriei de 0,5 și venitul lunar de 5000 de dolari. Punctajul de credit ar trebui să fie: 53 + 55 + 57 = 165.

Pentru a dezvolta un scor mai exact, oamenii de obicei trebuie să ia în considerare mai multe situații. De exemplu, există unele persoane identificate drept „rele” în populație, dar cererea lor este aprobată, în timp ce vor exista persoane „bune” care au fost refuzate. Astfel, infirmarea de respingere se presupune a fi implicată în procesul de dezvoltare. Nu fac această parte, deoarece necesită setul de date ale cazurilor respinse pe care nu le am în datele mele. Dacă doriți să aflați mai multe despre această parte, vă recomand să citiți scoruri de riscuri de risc - Dezvoltarea și implementarea unui scor de credit inteligent scris de Naeem Siddiqi.

Dacă sunteți interesat de munca mea sau aveți câteva probleme în acest sens, vă rugăm să nu ezitați să mă contactați. Între timp, dacă doriți să aflați mai multe despre ce învață studenții de la cursurile de știință a datelor WeCloudData, consultați acest site:

www.weclouddata.com