Sistem automatizat de evaluare a împrumuturilor
Auteur: Mihai Nan
💼 Sistem automatizat de evaluare a împrumuturilor 💰
Instituțiile financiare moderne procesează zilnic mii de solicitări de împrumut.
Pentru a decide rapid și corect cine este eligibil, băncile folosesc sisteme automate
bazate pe modele de risc.
Un astfel de sistem urmează să fie construit chiar de tine. Ai primit acces la un set
realist de date cu aplicații de credit, împreună cu istoricul lor de aprobare.
Obiectivul tău este să dezvolți un model care să poată evalua noile cereri trimise
de clienți.
Ți-au fost puse la dispoziție două fișiere:
- train.csv - cererile istorice cu decizia finală (
loan_status) - test.csv - cereri noi, pentru care nu avem asociată o decizie
Scopul principal: predicția unei probabilități pe baza căreia putem clasifica fiecare cerere ca aprobată sau respinsă (o probabilitate între 0 și 1, unde 0 înseamnă că sigur nu este acordat împrumutul și 1 înseamnă că sigur este acordat împrumutul).
📊 Setul de date
Fiecare înregistrare reprezintă o cerere de împrumut, cu informații demografice,
financiare, comportamentale și detalii despre tipul creditului solicitat.
Atribute principale:
customer_id- identificator unicage,occupation_status,years_employedannual_income,credit_score,credit_history_yearssavings_assets,current_debtdefaults_on_file,delinquencies_last_2yrs,derogatory_marksproduct_type,loan_intent,loan_amount,interest_ratedebt_to_income_ratio,loan_to_income_ratio,payment_to_income_ratioloan_status- doar în train.csv, eticheta de prezis
Scopul final este să prezici loan_status pentru rândurile din test.csv.
📝 Task-uri
Primele trei subtask-uri verifică înțelegerea structurii setului de date.
Ultimul subtask evaluează modelul de clasificare.
Subtask 1 (10 puncte)
Clasificați fiecare solicitant din setul de test în funcție de vârstă:
Youngdacăage< 30Adultdacă 30 ≤age< 60Seniordacăage≥ 60
Subtask 2 (15 puncte)
Determinați nivelul de risc bazat pe debt_to_income_ratio:
LowRiskdacă DTI < 20MediumRiskdacă 20 ≤ DTI < 40HighRiskdacă DTI ≥ 40
Subtask 3 (15 puncte)
Pentru fiecare rând din test, calculați:
total_obligations = current_debt + derogatory_marks + delinquencies_last_2yrs
Returnați un număr întreg.
Subtask 4 (60 puncte)
Construiți un model de clasificare care prezice loan_status (o probabilitate p din [0,1]) pentru fiecare rând din test.
Evaluarea se face folosind AUC (Area Under the ROC Curve).
🧮 Evaluare
- AUC ≥ 0.95 → 60 puncte
- AUC ≤ 0.80 → 0 puncte
- Intervalul dintre ele: punctaj proporțional
Subtasks 1–3 se evaluează exact (prin comparare).
📄 Formatul fișierului de submisie
Fișierul submission.csv trebuie să conțină câte 4 linii pentru fiecare rând din test,
corespunzătoare celor 4 subtasks.
Structură:
subtaskID datapointID answer
unde:
- subtaskID - 1, 2, 3 sau 4
- datapointID - valoarea
customer_id - answer - care poate avea una dintre următoarele valori (în funcție de task):
- Subtask 1:
Young/Adult/Senior - Subtask 2:
LowRisk/MediumRisk/HighRisk - Subtask 3: număr întreg
- Subtask 4: probabilitatea ca
loan_status = 1(număr real 0–1)
- Subtask 1:
Exemplu pentru customer_id = 9071:
subtaskID datapointID answer
1 9071 Adult
2 9071 MediumRisk
3 9071 12
4 9071 0.742
Succes în dezvoltarea sistemului automatizat de evaluare a împrumuturilor!
📊 Metrica de evaluare: ROC AUC 📈
Pentru Subtask 4, evaluarea se face folosind ROC AUC (Area Under the ROC Curve).
Aceasta este o măsură unică care sintetizează performanța unui clasificator pentru toate pragurile posibile de decizie.
Cum se calculează ROC AUC?
- Se trasează curba ROC, care reprezintă:
- TPR (True Positive Rate) - rata corectă de aprobare a cererilor aprobate
- FPR (False Positive Rate) - rata cererilor respinse incorect aprobate

- Aria de sub curbă (AUC) se calculează folosind regula trapezelor:
- Curba este împărțită în trapeze folosind liniile verticale la valorile FPR și liniile orizontale la valorile TPR
- Se adună ariile trapezelor pentru a obține valoarea finală a AUC

- Interpretarea scorului:
- ROC AUC = 1 🏆 → clasificator perfect, toate cererile sunt clasificate corect
- ROC AUC = 0.5 🎲 → clasificator aleatoriu, fără putere predictivă
- 0.5 < ROC AUC < 1 📈 → cât de bine clasificatorul separă clasele