HomeIA e Machine LearningPredittore di Default sui Prestiti — Alberi con Gradient Boosting dal Vivo

💳 Predittore di Default sui Prestiti — Alberi con Gradient Boosting dal Vivo

Osserva un vero ensemble di gradient boosting far crescere dal vivo alberi decisionali poco profondi, ciascuno adattato agli errori residui del precedente, riducendo realmente la perdita di previsione del default sui prestiti simulati a ogni round di boosting.

IA e Machine Learning3DAvanzato60 FPS
ai-online-lending-default-prediction ↗ Apri in autonomo

Informazioni sugli Alberi con Gradient Boosting per la Previsione del Default sui Prestiti

Il gradient boosting costruisce un classificatore forte a partire da molti deboli. Partendo da una singola costante — il log-odds del tasso di default di base — l'algoritmo adatta ripetutamente un albero decisionale poco profondo agli pseudo-residui dell'ensemble corrente e aggiunge la previsione ridotta di quell'albero a un punteggio continuo. Per la log-loss binaria, lo pseudo-residuo su ogni esempio di addestramento è semplicemente y − p: lo scarto tra l'etichetta vera e la probabilità attualmente prevista. Poiché ogni nuovo albero deve solo spiegare ciò che l'ensemble ha sbagliato finora, la perdita di addestramento scende costantemente anche se ogni singolo albero è deliberatamente poco profondo e debole.

🔬 Cosa mostra

A genuine CART-style regression tree is grown at every boosting round by exhaustively scanning every candidate feature and split threshold for the one that most reduces squared error on the current residuals, down to a chosen maximum depth (1–3). Each leaf's contribution is then refined with a Newton-Raphson step (residual sum over the sum of p(1−p) in that leaf) before being added to the running log-odds score, scaled by the learning rate — the real gradient boosting update rule, not a canned shortcut.

🎮 Come si usa

Adjust the learning rate η, the number of boosting rounds and the tree depth, then press "Train live" to watch the ensemble grow tree by tree. The scatter plot shows held-out validation applicants plotted by debt-to-income ratio, credit utilization and credit history length, colour-coded by the model's live predicted default probability; the chart below tracks real training and validation log-loss falling round by round. Click any applicant to inspect their features and prediction.

💡 Lo sapevi?

The synthetic borrowers in this simulation are generated from realistic default-risk relationships — income, credit history, debt-to-income ratio, credit utilization, late payments and employment length — combined into a true probability plus irreducible random noise. Even a perfect model can never reach zero loss here, exactly like real lending data, which is why validation log-loss plateaus above zero rather than converging to it.

Domande frequenti

Cos'è il gradient boosting, in parole semplici?

Il gradient boosting costruisce un modello predittivo forte come somma di molti modelli deboli, di solito alberi decisionali poco profondi, aggiunti uno alla volta. Invece che ogni albero cerchi di prevedere direttamente l'etichetta, ogni nuovo albero viene addestrato ad adattarsi agli errori (residui) lasciati dall'ensemble costruito finora. Il contributo di ogni albero viene ridotto da un tasso di apprendimento prima di essere aggiunto, così l'ensemble migliora gradualmente e non si sovradatta alle peculiarità di un singolo albero.

Come funziona il gradient boosting per la classificazione binaria come il default sui prestiti?

Il modello mantiene un punteggio log-odds continuo F(x) per ogni mutuatario. Ad ogni round calcola il gradiente negativo della log-loss rispetto a F, che per la perdita logistica si riduce semplicemente a y − p, la differenza tra l'etichetta vera (0 o 1) e la probabilità attualmente prevista p = sigmoide(F(x)). Un albero di regressione poco profondo viene adattato a questi residui, e il valore di output di ogni foglia viene raffinato con un passo di Newton-Raphson usando la somma dei residui della foglia divisa per la somma di p(1−p), che approssima la derivata seconda della perdita. Le previsioni dell'albero, scalate dal tasso di apprendimento, vengono poi aggiunte a F per ogni mutuatario, e il ciclo si ripete.

Come decide l'albero dove effettuare le suddivisioni?

Ad ogni nodo l'algoritmo scansiona ogni feature candidata (reddito, lunghezza della storia creditizia, rapporto debito/reddito, utilizzo del credito, ritardi di pagamento recenti, anzianità lavorativa) e ogni soglia possibile tra valori ordinati adiacenti, calcolando quanto la suddivisione ridurrebbe l'errore quadratico totale dei residui in quel nodo rispetto a lasciarlo non suddiviso. Viene scelta la suddivisione con la maggiore riduzione dell'errore (soggetta a un vincolo minimo di campioni per foglia), e il processo si ripete ricorsivamente nei nodi figli risultanti fino al raggiungimento della profondità massima dell'albero.

Perché la perdita di addestramento continua a diminuire ma quella di validazione può stabilizzarsi o aumentare?

Ogni nuovo albero è adattato specificamente per ridurre l'errore residuo sul set di addestramento, quindi la log-loss di addestramento diminuisce quasi monotonicamente man mano che si aggiungono alberi. Il set di validazione non è mai stato usato per adattare alcun albero, quindi la sua perdita migliora solo finché i pattern che gli alberi stanno apprendendo generalizzano davvero. Una volta che l'ensemble inizia ad adattarsi al rumore specifico dei mutuatari di addestramento anziché alla vera relazione di rischio di default, la perdita di validazione smette di migliorare o risale — questo scarto è la classica firma dell'overfitting, ed è esattamente il motivo per cui il numero di round di boosting, la profondità degli alberi e il tasso di apprendimento vengono calibrati su un set di validazione separato anziché sul set di addestramento stesso.

Cosa controlla il tasso di apprendimento, e perché non usarne semplicemente uno grande?

Il tasso di apprendimento riduce quanto della correzione adattata di ogni nuovo albero viene effettivamente aggiunto alla previsione corrente. Un tasso di apprendimento piccolo (ad es. 0.05) significa che servono molti alberi per raggiungere un buon adattamento, ma ognuno sposta il modello solo leggermente, il che tende a generalizzare meglio e riduce il rischio che un singolo albero rumoroso faccia deviare l'ensemble. Un tasso di apprendimento grande (vicino a 1.0) permette al modello di adattarsi molto rapidamente ai dati di addestramento, spesso in poche decine di round, ma è molto più incline a superare l'obiettivo e a sovradattarsi.

Perché usare alberi poco profondi di profondità 1-3 invece di un unico grande albero profondo?

Un singolo albero profondo può memorizzare quasi perfettamente il set di addestramento suddividendolo in regioni piccole e omogenee, il che generalizza male. Il gradient boosting invece usa molti alberi poco profondi, ad alto bias e bassa varianza (spesso chiamati "stump" a profondità 1) e lascia che sia il processo di boosting stesso a fornire la complessità, una piccola correzione alla volta. Sommato su decine o centinaia di round di boosting, l'ensemble può rappresentare interazioni tra feature molto complesse mentre ogni singolo albero resta semplice e resistente all'overfitting.

In cosa differisce da una random forest?

Una random forest costruisce molti alberi profondi indipendentemente e in parallelo su campioni bootstrap dei dati, poi ne fa la media delle previsioni — questo riduce la varianza (rumore) ma ogni albero è addestrato senza conoscenza degli errori degli altri. Il gradient boosting costruisce gli alberi in sequenza, e ogni nuovo albero è esplicitamente addestrato per correggere gli errori specifici che l'ensemble attuale sta commettendo. Questa correzione sequenziale degli errori è ciò che permette spesso al boosting di raggiungere un bias più basso e un'accuratezza maggiore rispetto a una foresta di dimensioni comparabili, al costo di essere più sensibile al tasso di apprendimento e al numero di round.

Quali feature prevedono realmente il rischio di default sui prestiti in questa simulazione?

Il generatore di mutuatari sintetici incorpora relazioni realistiche usate dai veri modelli di rischio di credito: un reddito più alto e una storia lavorativa più lunga riducono il rischio di default, mentre un rapporto debito/reddito più alto, un maggiore utilizzo della carta di credito e più ritardi di pagamento negli ultimi due anni lo aumentano; una storia creditizia più lunga riduce anch'essa moderatamente il rischio. Queste relazioni si combinano in un vero log-odds di default più rumore casuale irriducibile, poi un lancio di moneta ponderato da quella probabilità genera l'etichetta di default osservata — quindi anche un modello perfetto non può raggiungere una perdita pari a zero, esattamente come nei dati di prestito reali.

Cos'è il punteggio AUC mostrato nel pannello statistiche?

L'AUC (area sotto la curva ROC) misura quanto bene il modello classifica i mutuatari che sono effettivamente andati in default al di sopra di quelli che non lo hanno fatto, indipendentemente da una particolare soglia di probabilità. Un AUC di 0.5 significa che il modello classifica le coppie non meglio di un lancio di moneta; un AUC di 1.0 significa che ogni mutuatario in default è classificato sopra ogni mutuatario non in default. Viene calcolato qui direttamente dalla sua definizione basata sul ranking: per ogni coppia mutuatario-in-default/non-in-default nel set di validazione, si conta se il mutuatario in default ha ricevuto una probabilità prevista più alta, e si fa la media su tutte le coppie.

⚙ Dietro le quinte

Each boosting round fits a genuine shallow CART regression tree to the current pseudo-residuals (y − p) by exhaustive split search minimising squared error, refines its leaves with a Newton-Raphson step, and adds the scaled result to a running log-odds score — real gradient boosting, driving training and validation log-loss down round by round.

Canvas 2DGradient BoostingAlberi DecisionaliApprendimento d'InsiemeRischio di Credito

3D · Three.js / WebGL renderer · 60 FPS target · esegue interamente lato client, nessuna installazione richiesta

Cosa hai trovato?

Aggiungi passaggi per riprodurre il problema (opzionale)