Costruire FloodProof mi ha insegnato che il fattore alluvione era facile. La prova out-of-sample e il gate che blocca una tariffa discriminatoria erano la parte difficile.
InsurtechMachine LearningAI Governance

Ho costruito un modello alluvione che ha battuto la mappa FEMA. Poi ha rifiutato di farmelo depositare.

Ashutosh SinghalAshutosh Singhal26 giugno 202611 min

Non mi aspettavo che il momento più interessante nella costruzione di questa demo fosse il software che mi diceva di no.

Avevo un fattore di tariffazione composito che classificava le perdite reali da alluvione meglio della zona alluvione FEMA su dati che non aveva mai visto. Per ogni istinto che ho come costruttore, quella è la vittoria. Lo spedisci. Invece l'ultima fase della pipeline si è accesa di rosso e ha stampato NOT FILING-READY, ha nominato la singola variabile peggiore e l'ha indirizzata a un attuario umano. Il mio stesso codice aveva deciso che la tariffa di cui ero orgoglioso non era sicura da depositare. Sono rimasto lì un minuto a decidere se fosse un bug o il senso di tutto.

Era il senso di tutto. Questo pezzo spiega perché ora penso che il gate che rifiuta di depositare valga più del modello che sta dietro.

La demo si chiama FloodProof. Gira su un libro pubblico reale di sinistri del National Flood Insurance Program per Harris County, Texas, da OpenFEMA. Quando clicco Re-run Diagnostic, nove fasi si eseguono in diretta sui record reali e finiscono in meno di un secondo. Nulla è hardcodato. Un seed fisso rende lo split riproducibile, così i numeri che sto per citare si ricalcolano a ogni esecuzione.

FloodProof che esegue in diretta la sua pipeline a nove fasi su 170.803 record NFIP reali per Harris County, terminando sul gate di policy deterministico contrassegnato NOT FILING-READY con i piani indirizzati a un umano.
La pipeline in diretta: 170.803 record di sinistro OpenFEMA reali in ingresso, 135.381 con una perdita edificio pagata valutata, e l'ultima fase è un gate deterministico che restituisce NOT FILING-READY e indirizza i piani a un attuario umano.

Il primo numero che mi ha fermato è uno che nessun modello ha prodotto

Torno sempre a questa cifra perché non l'ho calcolata io, l'hanno fatto i sinistri. Dei dollari reali di sinistro edificio pagati in questo libro di Harris County, $3,1 miliardi, cioè il 45,9%, sono stati pagati su immobili che FEMA aveva classificato fuori dalle sue zone ad alto rischio (la Special Flood Hazard Area). Nessun modello. Nessun punteggio. Solo una somma sul libro mastro reale. La mappa delle zone, la cosa a cui i carrier ancora ancorano le tariffe alluvione, era silenziosa su quasi metà del denaro che è effettivamente uscito dalla porta.

Coincideva con ciò che avevo letto entrando. Più di due terzi dei danni da alluvione negli USA avvengono fuori dalle zone ad alto rischio FEMA, e dopo l'uragano Harvey circa il 70% dei sinistri alluvione di Harris County proveniva da fuori quelle zone (ricerca Veriprajna sulla solution-page, 2026). Ci credevo come statistica. Colpisce diversamente quando la vedi accumularsi sul tuo schermo, tratto per tratto, come dollari reali.

La mappa FloodProof commutata sulla vista composita AI, anelli dorati che segnano immobili che FEMA aveva classificato sicuri e che portavano perdite reali ad alto rischio, con $3125.0M e il 45,9% dei dollari di sinistro pagati fuori dalle zone FEMA ad alto rischio.
Commuta la mappa dalla zona FEMA al composito AI e appaiono gli anelli dorati: sinistri reali che FEMA aveva classificato fuori dalle sue linee ad alto rischio e che il composito valuta come ad alto rischio. Il titolo non modellato sta nell'angolo, $3125.0M, 45,9% dei dollari pagati, fuori dalle zone.
La mappa delle zone non era leggermente sbagliata. Era silenziosa su $3,1 miliardi di perdite reali in un singolo libro di contea.

Quindi la mappa è uno strumento grezzo. Chiunque lavori nella tariffazione alluvione lo sa già. La risposta del mercato è stata comprare un modello migliore da un vendor. Volevo sapere se il modello migliore fosse davvero la parte difficile, o se la parte difficile fosse da qualche parte dove non stavo guardando.

Sei semplici attributi dell'edificio potevano battere la mappa delle zone?

Non pensavo che una ordinaria regressione ridge avrebbe spostato molto l'ago. Il cuore dello scoring è deliberatamente poco scintillante: un composito ridge di attributi edificio OpenFEMA reali, età dell'edificio, numero di piani, un flag di elevazione, conformità al codice post-FIRM, destinazione d'uso e ostruzione. Sei feature oneste. Il mio primo istinto era di alimentare anche la copertura assicurativa dell'edificio, perché la copertura correla con il pagamento. Mi sono fermato. Il pagamento è meccanicamente limitato dalla copertura, quindi includerla avrebbe permesso al punteggio di barare sulla risposta e reso il backtest circolare. L'ho tagliata. Quella singola cancellazione è la differenza tra una demo e un trucco di magia.

Il backtest è costruito per essere non circolare. Adatta il composito su uno split di training al 70%. Valutalo sul 30% tenuto fuori che non ha mai visto, cioè 40.615 sinistri reali. Confrontalo con la vera ratedFloodZone come baseline e il vero amountPaidOnBuildingClaim come etichetta. Sia la baseline sia l'etichetta sono indipendenti dal modello, quindi una vittoria è una vera vittoria out-of-sample, non autovalutata.

Il grafico di lift out-of-sample in FloodProof: il composito AI cattura 1,694 volte i dollari di perdita del top-decile della zona FEMA su 40.615 sinistri tenuti fuori, con la barra del composito ben sopra la barra solo-zona-FEMA.
Il risultato sul tenuto fuori: su 40.615 sinistri reali il composito cattura 1,694 volte i dollari di perdita del top-decile della baseline zona FEMA, Gini 0,31 contro lo 0,08 della zona. Adattato sul 70% dei sinistri reali, valutato sul 30% che non ha mai visto.

Ha vinto più di quanto mi aspettassi. Il composito ha catturato 1,694 volte i dollari di perdita del top-decile della zona FEMA sui sinistri tenuti fuori, con un Gini di 0,31 contro lo 0,08 della zona. L'ho rieseguito su seed casuali per assicurarmi di non aver pescato uno split fortunato. Il lift ha tenuto, circa da 1,69 a 1,85 tra i seed. Sei attributi semplici, adattati onestamente, hanno battuto la mappa federale delle alluvioni sul denaro che non avevano mai visto.

Ed è proprio lì che ho quasi fatto l'errore che sta facendo tutto il mercato.

La consapevolezza che ha riformulato l'intero build

Ricordo di aver pensato che a quel punto la demo fosse sostanzialmente finita, e di essermi sbagliato. Un modello migliore che si autovaluta non è evidenza. Se consegno a un chief actuary un fattore e dico «fidati, batte la zona», gli ho consegnato i miei compiti con il mio voto scritto sopra. Il valore non sarebbe mai stato il modello. Vendor come ZestyAI e ICEYE e First Street vendono già modelli alluvione forti. La cosa durevole è l'infrastruttura noiosa intorno a qualsiasi modello: un backtest che uno scettico non può liquidare, un audit di fairness che il modello non può aggirare a parole, e un gate che produce il deposito o rifiuta di farlo. Questo vale a qualsiasi qualità del modello, ed è per questo che non invecchia man mano che i modelli migliorano. Puoi vedere il meccanismo e le disclosure oneste tu stesso su veriprajna.com/it/demos/sottoscrizione-del-rischio-alluvionale-basata-sull-ia.

Un modello migliore che si autovaluta non è evidenza. Sono i tuoi compiti con il tuo voto sopra.

C'è una seconda ragione, più dura, per cui il modello non può essere tutta la storia. Un fattore che classifica bene le perdite può anche portare segnale demografico, e una tariffa che fallisce un test di disparate impact è un deposito che l'esaminatore del Department of Insurance respinge. Classificare bene ed essere depositabile sono due domande diverse. Avevo risposto alla prima. La seconda stava aspettando.

Ho puntato l'audit di fairness sul mio stesso modello e mi aspettavo che fosse il cattivo

Mi sono davvero preparato a che il mio composito fosse il problema. L'audit sottopone a screening ogni variabile tariffata contro la quota reale di minoranza a livello di tratto dall'Indice di vulnerabilità sociale CDC/ATSDR (rilascio 2022), calcola un rapporto di impatto avverso per ciascuna e lo confronta con la regola dei quattro quinti EEOC, la fascia da 0,80 a 1,25 (29 CFR 1607.4(D)). Presumevo che il punteggio AI appariscente fosse quello che portava il proxy demografico.

Non lo era. Il punteggio composito stesso passa con un rapporto di impatto avverso di 0,938. Non ho costruito la demo per far finta che il mio modello sia il cattivo, e non lo è. Ma l'audit sottopone a screening tutto, e 5 delle variabili tariffate falliscono la regola dell'80%. La peggiore è il numero di piani a 0,363. Il valore assicurato fallisce a 0,526. E quella che mi ha davvero sorpreso: il tier di zona della stessa FEMA fallisce a 1,467, peggio sul lato alto di quanto il mio composito lo sia su qualsiasi lato. La baseline che tutti trattano come l'ancora sicura, neutra, benedetta dal regolatore porta più distorsione demografica del fattore AI di cui la gente è nervosa.

Il certificato di compliance FloodProof: il punteggio composito passa la regola dell'80% a AIR 0,938, cinque variabili tariffate falliscono tra cui piani a 0,363, copertura assicurata a 0,526 e tier di zona FEMA a 1,467, con il verdetto NOT FILING-READY.
Ogni variabile tariffata sottoposta a screening contro tratti CDC SVI reali. Il composito passa a 0,938. Cinque falliscono: piani 0,363, copertura assicurata 0,526, il tier di zona della stessa FEMA 1,467. Il gate poi contrassegna il deposito NOT FILING-READY e indirizza i piani a giustificazione attuariale umana.
Il mio fattore AI ha passato il test di fairness a 0,938. Il tier di zona FEMA lo ha fallito a 1,467.

Quella inversione è la cosa su cui più voglio che un attuario rifletta. L'istinto di diffidare del modello e fidarsi della mappa su questo libro ha le cose al contrario.

Si è bloccato da solo prima che potessi depositarlo

Voglio essere preciso su cosa è successo dopo, perché è la parte di cui sono più orgoglioso ed è codice del tutto senza drammi. Il policy gate è Python puro con una regola: il deposito è pronto solo se il campione tenuto fuori è abbastanza grande, il lift sulla zona FEMA supera un minimo richiesto, e ogni variabile sottoposta a screening sta dentro la fascia di fairness. Nega per default. filing_ready se e solo se ci sono zero rilievi bloccanti. Su questo libro una variabile ha fallito, quindi il gate ha restituito NOT FILING-READY, ha nominato i piani come il peggior colpevole e li ha indirizzati a giustificazione attuariale umana invece di spedire la tariffa. Ha anche eseguito una checklist per stato, e il requisito di giustificazione per variabile del Colorado è comparso come incompleto.

La parte opzionale dello stack è un piccolo crew di agent Pydantic-AI, un factor explainer, un fairness justifier accoppiato a un adversarial challenger, e un filing-memo drafter. Consigliano. Redigono la narrativa. Non possono sovrascrivere il gate, e senza API key semplicemente si astengono e il risultato deterministico resta invariato. Ogni numero critico per la fiducia è plain numpy fuori dal framework degli agent. Gli agent consigliano, il codice decide. I feed dei vendor (ZestyAI Z-FLOOD, ICEYE SAR-depth) e il connettore Guidewire in questo build sono stub dietro uno schema reale, lo swap di produzione documentato, non un'integrazione live. Preferisco dirlo chiaramente piuttosto che implicare un tubo che non c'è. Il pacchetto completo, filing artifact incluso, è su veriprajna.com/it/demos/sottoscrizione-del-rischio-alluvionale-basata-sull-ia.

Ciò che il gate produce quando rifiuta non è un vicolo cieco. È un pacchetto di deposito DOI pronto per l'esaminatore: il memorandum attuariale, la tabella di backtest out-of-sample, l'attribuzione delle feature, lo screen di fairness, e l'affermazione esplicita di cosa è stato indirizzato a un umano e perché. È un artefatto di evidenza, non una certificazione, e non una promessa che qualche esaminatore abbia approvato qualcosa. È la traccia cartacea che un esaminatore chiede, assemblata prima che la chieda.

Continuo a chiamarlo così: intercettare il rischio di compliance prima che lo faccia l'esaminatore. Quello è il valore per l'acquirente in una riga. L'alternativa è scoprire che la tua tariffa è discriminatoria dopo averla depositata, in una lettera, in pubblico.

Ciò su cui continuo a riflettere

Sono entrato in questo build presumendo di costruire un modello alluvione migliore, e ne sono uscito convinto che il modello fosse la parte che contava di meno. Le disclosure oneste contano più dell'accuratezza. FEMA censura le geocoordinate dei sinistri approssimativamente al centroide del tratto, quindi questo gira alla risoluzione che i dati pubblici onestamente consentono, e la demo lo dice a schermo. Il lift è un libro di Harris County e uno split tenuto fuori, non una garanzia open-world. Nominare quei limiti non è una debolezza nel pitch. È il pitch.

Mentre più di 24 stati adottano il NAIC AI Model Bulletin, e la New York DFS Circular Letter 2024-7 rende il testing della proxy-discrimination un'aspettativa piuttosto che una cortesia, il codice che rifiuta di depositare smette di essere scartoffie e inizia a essere il prodotto. Il fattore di tariffazione non è mai stato la parte difficile. Provarlo e governarlo sì.

E se preferisci guardarlo decidere piuttosto che fidarti della mia parola, ecco l'intera cosa che gira da un capo all'altro.

Quindi ecco la domanda a cui non ho ancora risposto del tutto per me stesso, e mi piacerebbe davvero sentire il parere di un attuario. Se il tuo stesso audit ti dicesse che il tier di zona FEMA a cui hai ancorato le tariffe per anni fallisce lo stesso test di fairness che stai per applicare a un nuovo fattore AI, di quale smetti di fidarti per primo?

Ricerca correlata

Pubblicato anche su

Costruisci la tua IA con fiducia.

Collabora con un team che vanta una profonda esperienza nella creazione della prossima generazione di IA aziendale. Lascia che ti aiutiamo a progettare, sviluppare e implementare una strategia di IA di cui ti puoi fidare.

Veriprajna società di consulenza Deep Tech è specializzata nella creazione di sistemi di IA safety-critical per i settori sanitario, finanziario e regolamentato. Le nostre architetture sono validate rispetto a protocolli consolidati con una documentazione di conformità completa.