La mia classe preferita al liceo era Scienze della Terra. Ricordo di aver preso le letture meteorologiche quotidiane durante la nostra sezione di meteorologia. Ogni mattina uscivamo, misuravamo la temperatura del bulbo secco e umido, la velocità e la direzione del vento e stimavamo la copertura nuvolosa. Una volta o due, siamo tornati in classe solo per renderci conto che una lettura era sbagliata o non aveva senso. Nessun problema, siamo tornati fuori e abbiamo rifatto la misurazione: non è stato un grosso problema fare i 50 passi e rifare la misurazione.
Il problema
Avanti veloce di circa 18 anni, e sto lavorando al Elica Q4000 , cercando di acquisire campioni di idrato di metano da sedimenti a più di un miglio sotto i miei piedi. Ci sono volute più di 24 ore per acquisire il nostro primo core. Quando è arrivato in superficie, nulla aveva funzionato correttamente: il campione era depressurizzato e il 10% circa di sedimento recuperato era solo zuppa. A differenza delle mie letture della temperatura al liceo, non potevamo tornare indietro e riprovare: quel campione di sedimento era sparito per sempre.
Questa è la sfida che geologi e ingegneri affrontano regolarmente lavorando nei difficili ambienti del sottosuolo. I dati sono costosi da acquisire e ottieni solo una possibilità. Quindi cosa fai quando i dati non tornano come dovrebbero? Forse lo strumento si guasta in profondità o, peggio ancora, si blocca e l'intero pozzo deve essere abbandonato? Come possiamo prendere le poche informazioni che abbiamo e dargli un senso utile? Possiamo usare JMP Pro i potenti strumenti predittivi, ovviamente!
L'esperimento
Parametri di input di Gamma (blu), Densità di formazione (rosso), Velocità di compressione (verde) e Velocità di taglio (viola). L'intervallo uno è >2064 ftkb ed è al di sopra della linea nera superiore nera, l'intervallo due è tra le due linee nere (2065-2127 ftkb) e l'intervallo tre è al di sotto della linea nera (2128-2206 ftkb).
Confrontiamo alcuni metodi diversi per predire una variabile scarsamente acquisita da altri più robusti. In questo caso, stiamo cercando di capire la saturazione di idrocarburi (idrato di metano), che è scarsamente disponibile in questo particolare pozzo ( Mt Elbert well, North Slope, AK ). Quello che abbiamo sono insiemi completi di quattro variabili: raggio gamma, densità di formazione, velocità di compressione e velocità di taglio. Nel sottosuolo ci sono tre intervalli di sabbie contenenti idrati e vogliamo usare il primo intervallo (2003-2064 piedi sotto la boccola di kelly, ftkb) per prevedere la saturazione di idrati nei due intervalli inferiori, 2065-2127 ftkb e 2128- 2206 piedi kb, rispettivamente. Verificheremo diversi modelli predittivi: minimi quadrati standard, regressione generalizzata, rete neurale e XGBoost. Utilizzeremo i valori R2 come primo passaggio della qualità del modello, ma poi valuteremo qualitativamente i log dei pozzi effettivi rispetto a quelli previsti per valutare la qualità complessiva di ciascun modello.
Risultati
Saturazione degli idrati effettiva (blu) rispetto alla saturazione degli idrati prevista per i minimi quadrati standard (rosso), regressione generalizzata (verde), rete neurale (viola) e XGBoost (arancione bruciato).
I minimi quadrati standard semplicemente non lo tagliano. Modella in modo robusto l'intervallo 1 ma non riesce completamente a prevedere con precisione la saturazione di idrocarburi nei due intervalli inferiori. La regressione generalizzata (adattativa; rete elastica) è leggermente migliore ma generalmente sovraprevede i due intervalli inferiori di 0,1-0,2 unità di saturazione. I modelli di apprendimento automatico fanno un lavoro molto più robusto, ma io do il vantaggio a XGBoost. Neural Network produce un segnale molto più "rumoroso" in quanto ci sono numerosi kick che rappresentano il 10-20% sopra e sotto la previsione, mentre XGBoost fornisce una previsione molto più stabile a saturazioni di idrocarburi sia basse che alte.
Questo è un tema comune che osservo quando lavoro con dati geologici e/o di fondo pozzo: i sistemi naturali sono incredibilmente complessi, pieni di eterogeneità e i modelli di apprendimento automatico (Bootstrap Forest, Neural Network e XGBoost, ecc.) tendono a fornire una migliore previsione modelli in generale.

Risultati del modello per set di dati di convalida di XGBoost (in alto) e Neural Network (in basso).
Andando avanti
La maggior parte delle persone che lavorano nel settore avrà sostanzialmente più dati a portata di mano rispetto a un singolo pozzo. Una pratica valida consiste nell'utilizzare il clustering per raggruppare i pozzi utilizzando parametri geologici (litologia, porosità, permeabilità, ecc.) e costruire modelli predittivi per cluster. Questo metodo può consentire di ottenere risultati migliori perché il modello è costruito appositamente per un particolare gioco, o anche un particolare bacino all'interno di un particolare gioco. Oltre a ciò, un'ottima pratica è fare una passeggiata visiva con i tuoi dati in Graph Builder: cerca di avere un'idea di cosa sta succedendo con i singoli parametri per identificare un percorso migliore.
Infine, la democratizzazione dell'analisi dei dati nella tua organizzazione ti consentirà di raggiungere obiettivi maggiori più rapidamente: ottieni potenti strumenti nelle mani degli utenti, mostra loro come costruire e interpretare modelli e poi rilassati e divertiti!
Fonte di dati
Questi dati sono stati raccolti attraverso un accordo di cooperazione di perforazione tra DOE e BP Exploration Alaska (BPXA), in collaborazione con l'US Geological Survey (USGS) e diverse università e partner industriali, per valutare se l'idrato di gas naturale dall'Alaska North Slope potrebbe essere prodotto in modo praticabile tecnicamente o commercialmente. Il pozzo Mt. Elbert è stato perforato nel 2007 e i dati sono disponibili tramite il Osservatorio della Terra Lamont Doherty alla Columbia University. Ho sottoinsieme i dati, li ho puliti e li ho resi disponibili in una tabella JMP su Pubblico JMP (Nota: senza JMP Pro , gli script GenReg, Neural w/ KFold e XGBoost non verranno eseguiti. Inoltre, lo script XGBoost richiede JMP Pro e il Componente aggiuntivo XGBoost ).
Grazie per un post così informativo e scritto in modo completo! Bene, mi occupo anche di chimica utilizzando JMP Pro per le rispettive attività.
Bene, la mia domanda riguarda la rete neurale (NN). In JMP per i casi di regressione, anche al seme casuale fisso, i valori previsti da NN differiscono con tutte le loro metriche (RMSE, R2 ecc.) se rilanciamo un modello identico. Per la classificazione, tutto è ripetibile mantenendo le metriche. Hai giocato a riorganizzare il tuo modello NN mantenendo condizioni identiche?
Grazie!
Michael
Grazie mille per la domanda @Nazarkovskij , questo è un argomento molto importante che hai sollevato. Mi sono imbattuto in casi in cui la ricerca seminale è stata ritrattata alla fine perché l'autore aveva trovato correlazioni molto robuste usando NN ma quando altri utenti hanno eseguito gli stessi NN sugli stessi dati ma utilizzando un diverso inizio casuale hanno trovato correlazioni drasticamente inferiori. È qui che i modelli di insieme possono davvero dare una mano (es. Bootstrap Forest, Boosted NN's, ecc.). Detto tutto questo e sottolineando l'importanza di farlo, devo ammettere che non l'ho fatto originariamente. MA non ho potuto trattenermi e dopo aver letto il tuo commento sono tornato indietro e ho eseguito nuovamente una serie di NN utilizzando impostazioni identiche con semi casuali diversi. Il set di convalida medio R^2 era 0,92 +/- 0,01, appena un po' più basso di quello che avevo trovato inizialmente.
Grandi cose, Peter! E dimmi, per favore, come erano gli RMSE. Perché, per le regressioni, RMSE è il KPI principale. Speriamo che questo parametro non cambi drasticamente. Ora per favore fammi sapere come crei gli ensemble su JMP Pro. Il mio è 15.0, quindi il tuo potrebbe essere 16, poiché gli ensemble non si incontrano nella 15a versione. te ne sarei molto grato!
Michael, l'errore quadratico medio della radice (seconda misura di adattamento nel report JMP NN) per questo particolare set di dati cambia in sei avvii casuali varia di ~0,01, piuttosto lieve. Per quanto riguarda i modelli ensemble, in JMP Pro puoi utilizzare la foresta Bootstrap o utilizzare potenziamento in NN o alberi decisionali. Tutte queste funzionalità sono disponibili in JMP 15 Pro. Spero che questo possa essere d'aiuto!
Congratulazioni, caro collega! Hai svolto un lavoro brillante. E per favore ricevi un ringraziamento speciale per i tuoi consigli riguardo agli approcci ai modelli d'insieme. Passa un buon fine settimana!
Cordiali saluti,
Michael