Approccio bayesiano all'apprendimento automatico per la risposta di BernoulliHo un set di dati in cui ho circa 2000 osservazioni di circa 150 funzioni o covariate. Sto provando a prevedere un risultato 0/1. Il risultato è un punteggio di rischio per malattia, R1. Il test genera tutti i valori delle caratteristiche (F1, ..., F150) in un database, nonché un valore di rischio per una malattia correlata (R0). Il pensiero è che R0 è altamente predittivo per R1, e che se usiamo le caratteristiche F1, ..., F150 potremmo avere una sorta di regola di aggiornamento che possiamo applicare a R0. Detto in modo un po 'diverso, sto pensando di usare R0 come parametro di Bernoulli per una precedente distribuzione di R1 e in qualche modo addestrare una formula di aggiornamento da utilizzare su R0 in base ai valori di F1, ..., F150.
L'algoritmo di addestramento dovrebbe consentire di costruire un modello di punteggio di probabilità 0/1 che ci consenta di specificare un valore precedente per il punteggio. Sembra un problema bayesiano piuttosto strabiliante. Ma non l'ho mai fatto prima e non sono sicuro di come le informazioni sulla funzione verranno incorporate nell'espressione di aggiornamento dei parametri.
Saremmo generati un secondo punteggio di probabilità?
Utilizzeremmo il predittore lineare prima di entrare nella trasformazione logit?
Modificheremo R0 in qualche modo additivo o con qualche fattore moltiplicativo?
Chiaramente ho più domande che risposte. Se qualcuno può indicarmi la giusta direzione sarebbe fantastico. Se JMP consente questo tipo di cose, mi piacerebbe sentirne parlare.
Re: approccio bayesiano all'apprendimento automatico per la risposta di BernoulliSì, il 100% delle funzioni viene utilizzato per calcolare p0. Il sistema genera in realtà migliaia di funzionalità, ma dovevamo essere in grado di convalidare l'algoritmo per il calcolo di p0 offline. Così abbiamo trovato (attraverso la lettura del codice) ogni funzionalità che è stata utilizzata per calcolare p0 e salvati. Intendiamoci, il "calcolo" di p0 in funzione delle caratteristiche è troppo complesso e implicito per consentirvi di scriverlo (centinaia di classificatori binari in configurazioni parallele e seriali, non ho costruito il sistema). Ma sappiamo che abbiamo catturato tutte le ferree necessarie e sufficienti per fare una simulazione offline e convalidare il calcolo per p0.
Il mio obiettivo non è modificare nulla sul modello per il calcolo di p0. È per vedere se, per caso, le stesse caratteristiche potrebbero contenere alcune informazioni "magiche" che ci permettono di prevedere altre malattie. Il mio pensiero è improbabile, soprattutto perché le caratteristiche sono state generate specificamente, in modo ottimale e minimo, per prevedere D0. Ci sono probabilmente alcuni modi teorici per testare questo assunto.
Ancora una volta, ho bisogno di inventare un metodo giusto e di principio per dimostrare che il concetto non funzionerà o che funzionerà. È stato facile generare un sacco di bandiere rosse (deriva della covariata come esempio). Il mio tentativo di utilizzare una sorta di approccio "bayesiano" modificato è il mio modo di utilizzare la migliore statistica che le funzionalità sono state progettate per generare, e quindi vedere se ci sono informazioni indipendenti, residue, che potrebbero Aiuto prevedere D1. Sono uno scettico, ma sono in un gruppo in cui gli altri (management) hanno una visione dogmatica che l'apprendimento automatico può magicamente risolvere qualsiasi problema immaginabile. Non apprezzano che la maggior parte di questi modelli (LASSO, cresta, PLS) siano solo, alla fine della giornata, solo semplici modelli lineari (generalizzati) di effetti principali.
Ancora una volta, apprezzo il tuo impegno. È stato molto utile
Re: approccio bayesiano all'apprendimento automatico per la risposta di BernoulliSono un po 'confuso - dici che il tuo modello usa il 100% delle funzionalità (150 di loro!). Praticamente tutti i modelli di apprendimento automatico che ho eseguito non usano mai tutte le funzionalità. Puoi inserirli il più possibile, ma raramente (mai) si abituano tutti. In ogni caso, se ritieni che il tuo modello sia troppo complesso, puoi ritirare ciascuna funzione (noioso, ma qualcuno probabilmente può aiutare lo script) individualmente per vedere quanto diminuisce la performance. Una versione alternativa di questo - che ho visto in altri software ma non ancora in JMP - consiste nel sostituire ciascuna caratteristica (una alla volta) con dati casuali e confrontare le prestazioni.
Sembra anche voler vedere se è possibile ottenere previsioni migliori aggiungendo qualcosa al modello che hai già (cosa è rimasto da aggiungere se tutte le funzioni sono già in esso?). Penso che ci siano molti modi per farlo - ma penso di più a provare diversi modelli e ad usare una sorta di metodo di insieme per combinarli, piuttosto che usare funzionalità aggiuntive. La media dei modelli bayesiani è un modo per farlo. Ma la tua idea originale di usare il tuo primo modello come un precedente e poi di aggiungere funzionalità per produrre un "aggiornamento bayesiano" non ha ancora senso per me.
Re: approccio bayesiano all'apprendimento automatico per la risposta di BernoulliGrazie Dale,
Probabilmente sono abbastanza d'accordo con te. L'intento del progetto è vedere se le caratteristiche, già utilizzate per allenarsi su D0, potrebbero avere alcune informazioni "ortogonali" che possono essere utilizzate per predire D1. Ripetuto, il rumore nel modello originale per p0, che è un modello incredibilmente complesso basato al 100% sulle caratteristiche, contiene tutte le informazioni che possono essere utilizzate per addestrare per p1. Voglio mantenere p0 come stima iniziale dal momento che ha già dimostrato di essere abbastanza utile per D0.
Se continuo a utilizzare qualcosa come LASSO (o cresta o PLS o ...) per addestrare un modello per p1 in base alle caratteristiche, ottengo prestazioni migliori rispetto a predire D1 usando solo p0. Ma sono scettico sul fatto che potrei inconsapevolmente allenarmi sul rumore con tutto il CV in corso. Inoltre, ho prove da esperimenti indipendenti che il modello per p1 soffre di shift covariata mentre p0 è abbastanza resiliente a diversi set di dati.
Naturalmente mi viene in mente di dare un pollice in su o in alto sul concetto di whoe e quindi voglio contestare simultaneamente il cocept e dargli le migliori possibilità. Ecco perché mi sto appoggiando a questo approccio "bayesiano". È un po 'difficile chiamarlo bayesiano, sono d'accordo, perché non arriviamo ad osservare un evento di Bernoulli, possiamo solo osservare i predicati in un modello per il parametro precedente.
Apprezzo i tuoi pensieri.
Re: approccio bayesiano all'apprendimento automatico per la risposta di BernoulliNon sono affatto un esperto bayesiano, ma mi sembra che quello che vuoi fare non sia corretto. L'aggiornamento bayesiano di solito si riferisce all'integrazione di nuove informazioni, ad esempio punti dati aggiuntivi. Perché aggiungere funzionalità aggiuntive? Basta inserirli nel modello originale. Oppure, se si utilizza qualcosa come gli alberi potenziati, l'algoritmo utilizzerà già le funzionalità per "aggiornare" le sue previsioni in base al grado in cui sta facendo classificazioni errate. In altre parole, penso che tu stia suggerendo un apparato che apparirebbe "bayesiano", ma in realtà sta solo esaminando quanto ciascuna caratteristica contribuisca al modello, date le altre caratteristiche del modello. Questo è essenzialmente ciò che fanno tutti i modelli predittivi così com'è - lasciando alcune funzionalità manualmente e aggiungendole per vedere come cambiano le previsioni sembra semplicemente fare manualmente ciò che i modelli predittivi fanno automaticamente.
Per favore, se mi sbaglio, qualcuno mi raddrizza.