$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Raccolta dei dati
Questo studio ha utilizzato il set di dati di previsione dell'approvazione del prestito disponibile su Kaggle. Il set di dati è stato estratto nel febbraio 2025 ed è composto da 4269 record volti a valutare i dati sui prestiti e a prevedere i risultati dell'approvazione dei prestiti. Include 12 colonne che comprendono informazioni dettagliate sui profili demografici dei richiedenti, come lo stato occupazionale, le persone a carico, i lavoratori autonomi, l'importo del prestito, la durata del prestito, i punteggi CIBIL, il background finanziario e gli attributi specifici del prestito. Il set di dati è stato importato utilizzando la libreria Pandas e ispezionato visivamente utilizzando df.head () per comprenderne la struttura e la qualità.
Pre-elaborazione dei dati
Durante la fase di pre-elaborazione dei dati, il primo passaggio ha comportato la rimozione della colonna identificativa (loan_id) a causa della sua mancanza di valore predittivo e del potenziale di introduzione di rumore nel modello. La seconda fase ha riguardato la codifica delle etichette, in cui variabili categoriali come l'istruzione, i lavoratori autonomi e loan_status sono state convertite in rappresentazioni numeriche. Questa trasformazione è stata eseguita utilizzando Label Encoder dal modulo sklearn.preprocessing. In particolare, l'istruzione è stata codificata come 0 per Laureato e 1 per Non Laureato; self_employed 0 per No e 1 per Sì e loan_status, la variabile di destinazione, come 0 per Non approvato e 1 per Approvato. Queste conversioni si sono rese necessarie per garantire la compatibilità con i modelli di machine learning, che richiedono input numerici, in particolare per le applicazioni di prestito digitale. Le caratteristiche sono state separate dalla variabile target utilizzando X=df.drop (["loan_status"], axis=1) e y=df ["loan_status]. Questa configurazione ha fornito una base completa per esaminare i fattori che influenzano le decisioni di approvazione dei prestiti utilizzando i record storici dei prestiti per addestrare più modelli di apprendimento automatico d'insieme. Questi modelli avevano lo scopo di migliorare l'accuratezza e la robustezza complessive combinando i punti di forza predittivi di più classificatori.
Il set di dati elaborato è stato quindi suddiviso in sottoinsiemi di addestramento e test utilizzando la funzione train_test_split da sklearn.model_selection, con l'80% dei dati utilizzati per l'addestramento e il 20% riservato per i test. Ciò ha garantito che il modello fosse addestrato su una porzione sufficientemente ampia dei dati, mantenendo un campione rappresentativo per la valutazione delle prestazioni. Una volta ripulito, strutturato ed esplorato statisticamente il set di dati, sono state gettate le basi per l'implementazione di un solido framework di apprendimento automatico volto a migliorare l'accuratezza predittiva nella classificazione dell'approvazione dei prestiti. Lo sviluppo del modello è stato condotto utilizzando quattro algoritmi di apprendimento automatico basati su ensemble: Gradient Boosting Model, AdaBoost, Efficient Gradient Boosting Model e Extra Trees Classifier. Questi sono stati selezionati per le loro comprovate prestazioni in compiti di classificazione che coinvolgono dati strutturati e tabulari. Il classificatore del modello di potenziamento del gradiente, implementato dalla libreria del modello di potenziamento del gradiente, è stato istanziato con le impostazioni predefinite (iterazioni=1000, velocità di apprendimento=0,1, profondità=6, verbose=Falso). È stato addestrato utilizzando. fit (x_train, y_train) e valutato con .predict (X_test). Sebbene il modello di potenziamento del gradiente gestisca automaticamente la codifica dei dati categorici, questa funzione non è stata utilizzata poiché i dati erano già stati codificati con etichette. Il classificatore AdaBoost (Adaptive Boosting, che migliora gli studenti deboli) è stato implementato utilizzando sklearn-ensemble. Il classificatore AdaBoost è stato configurato con n_estimators=100 e learning_rate=1,0, utilizzando i monconi decisionali come stimatore di base predefinito. È stato addestrato e valutato in modo simile, contribuendo alla robustezza attraverso la ponderazione iterativa di istanze classificate in modo errato. L'Efficient Gradient Boosting, implementato attraverso la libreria Efficient Gradient Boosting Model (LGBMClassifier), è stato configurato con n_estimators=100, learning_rate=0,1 e max_depth=-1 (profondità dell'albero illimitata). Questo modello, noto per la sua velocità ed efficienza, eccelle in particolare su set di dati di grandi dimensioni con funzionalità ad alta dimensionalità utilizzando alberi decisionali ottimizzati per l'aumento del gradiente.
Infine, è stato utilizzato il classificatore ExtraTrees di sklearn.ensemble con n_estimators=100 e criterion="gini" come strategia di suddivisione. A differenza di Random Forest, Extra Trees introduce un'ulteriore casualità selezionando i punti di taglio in modo casuale, il che aiuta a ridurre la varianza del modello e a migliorare la generalizzazione. L'ensemble è stato condotto utilizzando lo Stacking Classifier di scikit-learn, che migliora la generalizzazione aggregando le previsioni degli studenti di base. Ogni modello è stato valutato utilizzando metriche di classificazione standard, tra cui accuratezza, precisione, punteggio F1, analisi degli errori e matrice di confusione. Queste metriche sono state calcolate utilizzando le funzioni del modulo sklearn.metrics per garantire un confronto standardizzato delle prestazioni tra tutti i modelli.
Il modello con le prestazioni migliori (in base all'accuratezza e al punteggio F1) è stato salvato per la distribuzione utilizzando la libreria Python. dump(model, "best_model.pkl"), garantendo che il modello sottoposto a training possa essere riutilizzato senza la necessità di ripetere il training. Per simulare un'applicazione reale, è stato creato un array di input di esempio contenente 11 funzionalità utilizzando NumPy e passato alla funzione .predict() del modello. Ad esempio, il vettore di input [[0, 1, 1,4100000, 12200000, 8, 417, 2700000, 2200000, 8800000, 3300000]] ha restituito una previsione di 1, che indica l'approvazione del prestito. Tutti gli esperimenti sono stati condotti in un ambiente Python 3.10 utilizzando Google Notebook su Kaggle. Lo sviluppo e la valutazione del modello sono stati effettuati utilizzando le librerie scikit-learn (v1.3), Gradient Boosting Model e Efficient Gradient Boosting Model. Tutti gli iperparametri sono stati documentati in modo esplicito e le impostazioni predefinite sono state chiaramente indicate ove applicabile. Le procedure di codifica hanno seguito l'approccio descritto da Pedregosa e sono state implementate in scikit-learn46. Questa metodologia completa e trasparente garantisce che il protocollo sperimentale sia completamente riproducibile e aderisca a rigorosi standard accademici nella ricerca sull'apprendimento automatico.
La struttura della metodologia suggerita, che comprende la fase di preparazione dei dati, la sezione delle funzionalità, l'addestramento del modello e la valutazione, è mostrata nella Figura 1.
Questa ricerca introduce un framework di stacking ensemble learning che riunisce le capacità di quattro potenti classificatori: Gradient Boosting Model, AdaBoost, Efficient Gradient Boosting Model e Extra Trees per prevedere le decisioni di approvazione dei prestiti in base ai record finanziari storici. Combinando strategie di boosting e bagging all'interno di un'architettura di modelli impilati46. L'approccio supera efficacemente le carenze individuali di questi modelli, come la distorsione e la varianza, migliorando l'accuratezza delle previsioni e la generalizzazione dei modelli. Ogni studente di base contribuisce con punti di forza unici Il modello di potenziamento del gradiente è efficiente con variabili categoriali, è progettato per gestire caratteristiche categoriali ad alta cordialità ed esegue internamente la codifica del bersaglio utilizzando il potenziamento ordinato47. In questo modo si evita l'overfitting garantendo che nel calcolo delle statistiche vengano utilizzati solo i dati passati. Nella formula
,
Ogni ht (x) rappresenta un albero decisionale addestrato sui residui del modello precedente e nt denota il contributo di apprendimento specifico per passo. AdaBoost o Adaptive Boosting, regola il peso di ogni istanza durante l'addestramento e si concentra sui punti dati precedentemente classificati in modo errato48. Nella formula

αt riflette le prestazioni dell'apprendista debole t-esimo ht(x), ponendo maggiore enfasi su campioni precedentemente classificati in modo errato. Incorpora il campionamento unilaterale basato sul gradiente (GOSS) e l'esclusivo raggruppamento di funzionalità per prestazioni più rapide. L'efficiente Gradient Boosting offre velocità e prestazioni elevate su dati su larga scala49.

ft(xi) rappresenta il nuovo albero decisionale aggiunto per minimizzare la perdita l(•) mentre Ω(ft) è un termine di regolarizzazione . A differenza degli algoritmi di boosting, Extra Trees riduce la varianza aggiungendo casualità nelle suddivisioni dell'albero decisionale50. Si basa sui principi di insaccamento, ma inietta una maggiore casualità durante la suddivisione dei nodi nella sua regola di previsione

Calcola la media dei risultati di M alberi randomizzati addestrati in modo indipendente. Per ogni divisione, Extra trees seleziona soglie casuali per le funzionalità e sceglie la migliore tra di esse, riducendo così la varianza e offrendo un'elevata diversità tra gli alberi, migliorando la generalizzazione. Questi modelli sono integrati collettivamente attraverso un classificatore di stacking, che impara a combinare in modo ottimale i loro output per decidere se un prestito deve essere approvato. Il quadro è stato valutato con metriche di classificazione comuni e testato con campioni di input in tempo reale, dimostrando la sua rilevanza pratica negli ambienti di prestito digitale51. Questi modelli vengono combinati collettivamente utilizzando un classificatore di stacking, che impara a combinare i loro output in modo ideale per determinare i risultati dell'accettazione del prestito. Le prestazioni del modello sono state valutate utilizzando importanti misure di classificazione come accuratezza, precisione, richiamo, punteggio F1 e AUC-ROC, nonché una matrice di confusione, per determinare la sua capacità di ridurre gli errori di tipo I e II. Per mantenere l'equilibrio di classe, è stata utilizzata una suddivisione stratificata 80:20 treno-test, con una convalida incrociata di 5 volte che garantisce robustezza e riduce la variabilità del campione. Inoltre, il modello è stato valutato su profili realistici dei richiedenti di prestiti che includevano informazioni come la storia creditizia, il reddito, lo stato occupazionale e l'importo del prestito, producendo giudizi binari e valutazioni di probabilità. Questo test in due fasi dimostra l'efficacia, l'equità e la praticità del modello in contesti di prestito digitale in tempo reale. La novità di questo lavoro risiede nel design ibrido dell'ensemble su misura per il credit scoring, che lo rende un modello robusto, interpretabile e riproducibile per le moderne piattaforme finanziarie52 .