Valori di Shapley per i modelli predittiviComprendere il contributo delle singole variabili indipendenti in un modello predittivo sarebbe inestimabile. Al momento, possiamo dedurre il contributo e/o l'effetto di una variabile su un modello tramite il profilatore di predizione, il che è ottimo, ma per poter quantificare il contributo e per poter quantificare il contributo su una riga -base di riga, sarebbe il livello successivo. Questa caratteristica è stata specificatamente richiesta dai clienti del settore O&G, ma la sua applicazione è onnipresente. Questi valori sono facilmente acquisibili utilizzando strumenti come Python e R. Renderli disponibili nell'ambiente point and click di JMP ci separerebbe ulteriormente dai nostri concorrenti. Ho avuto diversi clienti che mi hanno chiesto come ottenere contributi individuali di variabili indipendenti in modo quantificabile e molti hanno chiesto specificamente i valori di Shapley.
Statistiche e analisiRe: Valori Shapley per modelli predittivi@mia_stephens l'account con cui ho lavorato più di recente è Continental Resources (Kendall Sizemore sarebbe più che disposto a parlarne) ma ho ricevuto richieste simili da altri clienti O&G (Murphy, Oxy) che sono un po' più riservati . Citano molto lavoro di Novi Labs, una società di servizi di riciclaggio nel settore O&G. Il metodo che possiamo attualmente eseguire in JMP è stato sviluppato da @kemal_oflus --dove si utilizzano le stime in scala di un modello lineare che prevede la divergenza di un modello ML (la differenza tra la risposta media prevista dal modello ML e le risposte effettive) utilizzando predittori standardizzati. Puoi tracciare le stime in scala in GB per darti un "peso" di un dato fattore su una risposta. Questo in definitiva ti dice se un dato fattore influisce positivamente o negativamente sul modello (il che è ottimo), ma non può essere suddiviso in un effetto riga per riga né può essere applicato direttamente al modello ML perché le stime in scala non sono disponibili in NN, BS, ecc.
Un ottimo esplicativo che include la matematica: https://christophm.github.io/interpretable-ml-book/shapley.html
Spiegazione di Shapley: https://www.youtube.com/watch?v=-taOhqkiuIo&ab_channel=MicrosoftDeveloper
Alcuni screenshot della procedura di Kemal:
stime in scala da un modello basato su fattori standardizzati che predicono la divergenza media del modello ML
divergenza di un singolo fattore (un parametro Frac Fluid)
Re: Valori Shapley per modelli predittivi@Pietro_Polito e @nick_shelton , abbiamo clienti/account nominativi da elencare o clienti con cui possiamo parlare (se necessario)?
Peter, puoi condividere il metodo che hai sviluppato e il tuo esempio di output? Inoltre, riferimenti preferiti sull'argomento, se ne hai.
Aggiungerò queste informazioni al Jira.
Grazie!
Mia
Re: Valori Shapley per modelli predittiviI valori di Shapley stanno rapidamente diventando lo standard per interpretare l'importanza delle caratteristiche e la dimensione dell'effetto nei modelli di apprendimento automatico (ML). Una tendenza emergente nel ML è quella di allontanarsi dalla loro reputazione di scatola nera e creare modelli interpretabili e affidabili. Strumenti come i valori di Shapley offrono la possibilità di essere più trasparenti e sicuri nelle previsioni del modello. Questa funzionalità dovrebbe essere disponibile per tutti i modelli di apprendimento automatico di JMP Pro.
Re: Valori Shapley per modelli predittiviUn esempio di come verrebbe utilizzato: un cliente utilizza la rete neurale potenziata di JMP Pro per costruire un modello ML. Dove sono limitati è la loro capacità di quantificare l'effetto di una data variabile indipendente sulla risposta. Ad esempio, se si analizzano i valori di produzione di tre pozzi, si potrebbe scoprire che uno sta funzionando bene perché è in una posizione privilegiata e hanno costruito un grande pozzo, un secondo funziona così così perché si trova in una posizione mediocre ma hanno progettato il pozzo in modo molto efficiente e un terzo sta andando male perché ha scelto una posizione sbagliata e non ha progettato il pozzo in modo efficiente. In un programma come Python si potrebbero calcolare i valori di Shapley, che forniscono queste informazioni granulari, ma JMP non è in grado di farlo. Un collega SE ed io abbiamo sviluppato un metodo per calcolare ciò che chiamerò pseudo-Shapley ma questa procedura, sebbene funzioni molto bene, è applicabile solo ai modelli lineari e manca della capacità di scomporre i risultati su un singolo pozzetto (riga per -riga). Nel settore O&G questa capacità sarebbe distribuibile in modo onnipresente e aprirebbe JMP all'espansione in questo settore.