| Oratore |
Trascrizione |
| Mia Stephens |
probabilmente non ci vorranno 45 minuti. |
| |
Bene, tutto bene. |
| |
accidenti, perché è appena apparso quel messaggio? |
| Jason Wiggins, JMP |
Hai visto? Stavo per chiedere che avevo iniziato a registrare, ma che qualcuno sarebbe entrato e avrebbe tagliato l'inizio alla fine. |
| Mia Stephens |
Direi che stai registrando. |
| Jason Wiggins, JMP |
Sì. |
| |
Posso fermarmi se vuoi. |
| |
uno. |
| Jason Wiggins, JMP |
Bene, la registrazione è iniziata. |
| Mia Stephens |
Ciao, mi chiamo MIA Stevens e sono un product manager JMP. |
| |
E oggi parleremo di una nuova funzionalità apparsa per la prima volta in JMPed 16 o JMP pro 16 Model Screen Screening. |
| |
In realtà, lasciami ricominciare da capo. |
| Jason Wiggins, JMP |
La registrazione è ricominciata. |
| Mia Stephens |
Ciao, sono Mia Stephens. |
| |
Sono un product manager di JMP. Oggi parleremo dello screening dei modelli. Lo screening dei modelli è una nuova piattaforma di JMP Pro 16 e consente di adattare più modelli contemporaneamente, semplificando il flusso di lavoro di modellazione predittiva. |
| |
Quindi inizieremo parlando un po' di cosa intendiamo per modellazione predittiva, in contrasto con la modellazione più classica o con la modellazione esplicativa. |
| |
Vedremo i tipi di modelli che è possibile creare in JMP Pro e parleremo brevemente del flusso di lavoro della modellazione predittiva. Infine, vedremo come utilizzare lo screening dei modelli per semplificare questo flusso di lavoro. |
| |
Vedremo diverse metriche per confrontare modelli concorrenti e utilizzeremo due esempi diversi in JMP Pro; io utilizzerò JMP Pro 16.1. |
| |
Innanzitutto, cosa intendiamo per modellazione predittiva? |
| |
La maggior parte di noi ha seguito corsi di statistica all'università, al college o tramite la propria azienda e, in genere, quando... quando impariamo la modellazione statistica, si tratta di una modellazione esplicativa. |
| |
Ciò che intendiamo dire è che sei interessato a studiare una variabile Y, una risposta di interesse, in funzione di diverse X o variabili di input. |
| |
Quindi potremmo essere interessati a identificare variabili importanti, magari ci troviamo in una situazione di risoluzione dei problemi in cui vogliamo provare a identificare le X più importanti, le cause potenziali più importanti. |
| |
Quindi, come risultato della modellazione esplicativa, potremmo essere in grado di identificare, ad esempio, che X1, X3 e X6 sono potenziali cause di variazione in Y, e questo potrebbe indurvi a studiare ulteriormente queste variabili utilizzando un esperimento progettato. |
| |
Potremmo anche essere interessati a quantificare la natura della relazione, quindi, ad esempio, potremmo essere interessati a capire come Y, la nostra risposta, cambia in media, in funzione delle X. |
| |
una variazione di un'unità in X è associata a una variazione di cinque unità in Y. |
| |
Ecco a cosa pensiamo solitamente quando parliamo di modellazione, modellazione statistica o analisi di regressione. |
| |
Al contrario, la modellazione predittiva consiste nel prevedere o classificare con precisione i risultati futuri. |
| |
Quindi, nella modellazione classica, in genere facciamo affermazioni sulla media, la media complessiva. Nella modellazione predittiva, vogliamo sapere cosa succederà in seguito. Quindi, ad esempio, questo cliente abbandonerà il servizio? Questo cliente... |
| |
Accetteremo l'offerta della carta di credito? Il bancomat si romperà? Quindi siamo interessati a prevedere cosa succederà dopo. Quindi siamo interessati all'accuratezza, all'accuratezza delle nostre previsioni. |
| |
Nella modellazione predittiva, tendiamo ad adattare e confrontare molti modelli possibili diversi e ciò implica o può implicare alcune tecniche molto avanzate. |
| |
E alcune di queste tecniche potrebbero non essere molto facili da interpretare. Quindi, se pensiamo alle reti neurali, queste sono tipicamente considerate una sorta di scatola nera. |
| |
E con questi modelli più complessi, l'overfitting può rappresentare un problema, e ciò che intendo per overfitting è che tendiamo... possiamo adattare un modello che è molto più complesso di quanto ci serva. |
| |
Quindi, nella modellazione predittiva, tendiamo a utilizzare la convalida del modello. La utilizziamo per proteggerci dall'overfitting e anche dall'underfitting. La convalida del modello implica la suddivisione dei dati, e un modo tipico per suddividere i dati è quello di tenerne alcuni... |
| |
Bene, alcuni dei nostri dati vengono utilizzati per addestrare il nostro modello, altri sono rimasti invariati, e potremmo averne un terzo insieme che è rimasto invariato. E il modo in cui utilizziamo questi dati è adattare i nostri modelli utilizzando i dati di addestramento. |
| |
e poi vediamo quanto bene il modello si è comportato sui dati di convalida. E potrebbe essere utilizzato il terzo passaggio, spesso chiamato set di test, |
| |
Perché la convalida... i dati di convalida in JMP vengono spesso utilizzati per controllare la dimensione del modello. Quindi lo vedremo in azione tra qualche minuto. |
| |
Non entrerò nei dettagli sulla convalida, ma se questo è un argomento relativamente nuovo per te, alla fine di questo documento troverai alcune diapositive che ho preso in prestito dal nostro corso online gratuito, STIPS, che illustrano perché la convalida è importante. |
| |
In JMP Pro è possibile adattare molti tipi diversi di modelli predittivi. |
| |
Alcuni di questi sono disponibili tramite un modello di adattamento, quindi se si ha una risposta continua, è possibile adattare un modello di regressione lineare. Se si ha una risposta categoriale, è possibile adattare |
| |
Un modello di regressione logistica. Può essere un modello di regressione ordinale, multinomiale o binomiale. È possibile adattare modelli lineari generalizzati o modelli di regressione penalizzati come la regressione elastica a rete e la regressione Lasso e Ridge. |
| |
C'è un menu di modellazione predittiva con molte voci, ad esempio reti neurali. E puoi adattare le reti neurali in JMP Pro con |
| |
due livelli, con più nodi, più funzioni di attivazione, con boosting. E generalmente in JMP, |
| |
È possibile adattare modelli per risposte categoriali o risposte continue utilizzando la stessa piattaforma. È possibile adattare una varietà di diversi tipi di alberi, alberi di classificazione se si dispone di un |
| |
risposta categoriale, alberi di regressione se si ha una risposta continua. È anche possibile adattare tipi di alberi più complessi, come la foresta bootstrap e gli alberi boosted. E come puoi vedere, sono disponibili anche altri metodi. |
| |
Esistono un paio di piattaforme di modellazione predittiva basate su metodi multivariati, come l'analisi discriminante e i minimi quadrati parziali. Questo non è quindi un elenco esaustivo, e vorrei sottolineare che i minimi quadrati parziali sono disponibili anche tramite il modello di adattamento. |
| |
La domanda è: perché abbiamo bisogno di così tanti modelli? Nella modellazione esplicativa classica, in genere impariamo l'analisi di regressione, ma è chiaro che esistono molti, molti altri tipi di modelli che possiamo adattare. |
| |
Beh, il motivo è che non esiste un singolo tipo di modello che sia sempre il migliore. Il modello migliore spesso dipende dalla struttura dei dati. |
| |
Quante variabili hai, se hai X puramente continue o se hai un mix di variabili continue e categoriali, se hai un comportamento non lineare. |
| |
Quindi, nessun tipo di modello è sempre il migliore nel prevedere con precisione. Quindi, in genere, proviamo diversi modelli e scegliamo quello, o la combinazione di modelli, che offre il risultato migliore. |
| |
E pensiamo alla modellazione predittiva nel contesto del più ampio flusso di lavoro analitico. |
| |
Naturalmente c'è un tipo di problema che stiamo cercando di risolvere, un problema aziendale o un problema ingegneristico. |
| |
Ma noi compiliamo dati, che potrebbero provenire da fonti diverse, e dobbiamo abbinarli, dobbiamo curarli. |
| |
Esploriamo e visualizziamo i dati per saperne di più su ciò che abbiamo a disposizione e sulle esigenze di dati aggiuntivi. E l'aspetto della modellazione predittiva è quello di analizzare i dati e costruire modelli e, secondo me, è qui che inizia il vero divertimento. |
| |
Quindi il flusso di lavoro classico in JMP consiste nell'adattare un modello con convalida. |
| |
Quindi salvi la formula di previsione nella tabella dati oppure la pubblichi nel deposito delle formule e lo vedremo tra qualche istante. |
| |
E poi si adatta un altro modello. Quindi si potrebbe iniziare con un modello di regressione e poi adattare un modello ad albero. E poi si ripete questo processo e si adattano diversi tipi di modelli. |
| |
Quindi, utilizziamo il confronto tra modelli per valutare le prestazioni di ciascun modello sui dati di convalida. Quindi, ricordiamo che utilizziamo i dati di training per adattare il modello, ma per confrontare i modelli e vedere quale previsione sia più accurata, utilizziamo i dati di convalida o i dati di test. |
| |
E scegliamo il modello migliore o la migliore combinazione di modelli. |
| |
E poi distribuiamo il modello, quindi questo è un flusso di lavoro tipico. |
| |
Ora, con lo screening dei modelli, ciò che fa è semplificare tutto questo. In questo modo è possibile adattare tutti i modelli desiderati alla piattaforma di screening dei modelli, |
| |
Confrontare i modelli utilizzando i dati di convalida e selezionare il modello migliore. È possibile esplorare i modelli, persino adattare nuovi modelli dallo screening dei modelli e quindi distribuire facilmente il modello migliore. |
| |
Quindi, per analizzare la questione più da vicino, useremo un paio di esempi, e il primo esempio è uno che potresti conoscere, |
| |
i dati sul diabete, che si trovano nella directory dei dati campione. Quindi lo scenario è che i ricercatori vogliono essere in grado di prevedere il tasso di progressione della malattia. |
| |
un anno dopo le misurazioni basali. Quindi ci sono 10 variabili basali e 442 pazienti, e ci sono due tipi di risposte che esamineremo qui. La risposta Y è una misura quantitativa che misura la progressione della malattia in un anno. |
| |
E c'è anche una risposta binaria, alta/bassa, quindi alta significa che c'è un alto...alto tasso di progressione della malattia e bassa significa che c'è stato un basso tasso di progressione. |
| |
L'obiettivo della modellazione in questo caso è prevedere quali siano i pazienti con maggiori probabilità di avere un tasso elevato di progressione della malattia, in modo da poter adottare misure correttive. |
| |
Quindi, in definitiva, ciò che vorremmo essere in grado di fare è costruire un modello che ci permetta di classificare i pazienti futuri, in base alle loro variabili demografiche e alle informazioni di base che abbiamo qui. Quindi vogliamo essere in grado di |
| |
Prevedere con precisione se avranno un alto tasso di progressione della malattia o meno, in modo da poter intervenire. Bene, questo è lo scenario. |
| |
Prima di addentrarci in JMP, vorrei parlare brevemente di come decidiamo quale modello prevede meglio. |
| |
E ho detto che per questo utilizziamo il set di convalida o di test e che possiamo utilizzare diversi tipi di misure. |
| |
Per le risposte continue, utilizziamo RMSE, che è la radice dell'errore quadratico medio, o RASE, che è una misura correlata, la radice dell'errore quadratico medio, e questo è l'errore di previsione, e qui più basso è meglio è. |
| |
Possiamo anche usare AAE (errore assoluto medio), MAD (deviazione assoluta media) o MAE e anche in questo caso, più basso è meglio è. Quindi queste sono... queste sono... queste sono misure di errore medio. |
| |
E poi, R quadrato, e per R quadrato, che è in realtà la misura della bontà di adattamento, più alto è meglio è. |
| |
Quindi tendiamo a usarli per risposte continue; sono disponibili molti altri tipi di misure. |
| |
Poiché le risposte categoriali sono spesso interessate alla classificazione errata, al tasso di errore o ai tassi di accuratezza, potremmo essere interessati alla precisione. |
| |
Esistono altre misure, l'area sotto la curva, che vediamo in una curva ROC, la sensibilità e la specificità, e queste hanno diversi nomi. |
| |
E ci sono un paio di altre misure che abbiamo aggiunto allo screening del modello che sono utili quando abbiamo dati sbilanciati. C'è il punteggio F1 e l'MCC, che è il coefficiente di correlazione di Matthews, e questo è un valore che assume... |
| |
o una metrica che assume valori compresi tra meno uno e più uno, ed è utile per misurare, quando si hanno dati categoriali, quanto bene i dati sono classificati in tutte e quattro le possibili categorie: veri positivi, veri negativi, falsi positivi e falsi negativi. |
| |
Quindi...passiamo a JMP. |
| |
E ora aprirò i dati. |
| |
Quindi questi sono...e li ingrandirò un po', questi sono di nuovo i dati sul diabete. |
| |
Se vuoi sperimentare con questi dati, c'è un blog che li usa e puoi trovarli anche nella sezione Aiuto e poi Dati campione. |
| |
E ancora, abbiamo una risposta Y, lasciatemi ingrandirla un po', che è la nostra misura continua della progressione della malattia. E poi abbiamo una Y binaria con esiti bassi o alti, e la prenderemo... daremo un'occhiata a ciascuno di questi. |
| |
Per iniziare, diamo un'occhiata a come, se avessi JMP 15 o se non utilizzassi lo screening del modello, adatteresti i modelli predittivi per prevedere Y, la risposta continua, se avessi JMP Pro? |
| |
Si noti che abbiamo diverse variabili demografiche. |
| |
Quindi ce ne sono 10, e c'è una colonna di convalida, e la colonna di convalida suddivide i nostri dati in dati di addestramento e dati di convalida. |
| |
Quindi adatteremo il nostro modello utilizzando i dati di addestramento e poi vedremo come si comporta il modello quando lo applicheremo ai dati di convalida. |
| |
Per creare questa colonna, è necessario analizzare l'utilità, modellare in modo predittivo e creare una colonna di convalida, che ci consente di creare una colonna di convalida. |
| |
Potresti avere variabili che vuoi usare come colonne di stratificazione, quindi, ad esempio, vuoi assicurarti che i dati siano bilanciati tra |
| |
set di convalida. Ora clicco semplicemente su OK. |
| |
E questo ci consente di assegnare una certa percentuale dei nostri dati ai diversi set. |
| |
E qui sotto ci sono alcune opzioni aggiuntive che sono utili, quindi la distribuzione casuale è davvero utile se stai insegnando e vuoi che tutti i tuoi studenti abbiano la stessa partizione. |
| |
Quindi questo è stato utilizzato prima di |
| |
Analisi, quindi iniziamo semplicemente dando un'occhiata a questa colonna Y, la risposta continua. Quindi, se dovessi adattare modelli predittivi, un punto di partenza naturale sarebbe adattare un modello di regressione, e la regressione in JMP è un modello di sottoadattamento. |
| |
La mia risposta è Y, e mi limiterò ad adattare...inizierò adattando un modello con soli effetti principali. |
| |
Inserirò la convalida in questo campo e, per impostazione predefinita, la personalità è quella dei minimi quadrati standard. Ma se hai familiarità con JMP e JMP Pro, saprai che ci sono molte opzioni diverse disponibili sotto la voce "personalità". |
| |
Quando clicco su Esegui, |
| |
una modifica in JMP 16 è che se osserviamo il grafico effettivo rispetto a quello previsto o uno qualsiasi degli altri grafici, notiamo che ci sono dei punti...ci sono alcuni punti qui con una V, invece di un punto. |
| |
Questo per indicare che questi punti sono stati effettivamente assegnati al set di convalida, quindi stiamo fondamentalmente esaminando, |
| |
sai, quanto bene il modello prevede il rumore casuale attorno a questo, e puoi vedere che c'è un certo grado di dispersione. E |
| |
Ricordate, stiamo adattando il nostro modello ai dati di training e stiamo valutando le sue prestazioni sui dati di validazione. Ecco alcune statistiche qui sotto. Ogni volta che avremo una validazione, vedrete delle statistiche aggiuntive per i set di training e di validazione. |
| |
E possiamo vedere che ci sono un paio di misure qui. C'è R quadrato e c'è anche RASE. |
| |
E in genere, quando si adatta il modello a un set di dati e poi lo si applica a nuovi dati, non funziona altrettanto bene sui nuovi dati. Possiamo quindi vedere che R al quadrato è inferiore per il set di convalida e il RASE, l'errore, è leggermente più alto. |
| |
Una volta...l'unica cosa che vediamo qui sotto sotto il profiler di previsione |
| |
è quella nota...nota che il colesterolo totale e l'LDL si disperdono alle estremità. |
| |
E mentre trascino |
| |
il valore del colesterolo, nota quanto diventa ampio questo intervallo di confidenza per la media. Quindi, mentre lo trascino verso l'estremità inferiore, |
| |
diventa molto ampio e succede la stessa cosa quando lo trascino verso l'estremità superiore. Infatti, tutti questi intervalli per ciascuno dei predittori diventano molto ampi. |
| |
E questo va oltre lo scopo di questo intervento, ma è perché in realtà non abbiamo dati, o non ne abbiamo molti, in questa regione. Se dessi...dai un'occhiata e... |
| |
prendiamo queste due variabili, colesterolo totale e LDL come esempio...per il colesterolo e l'LDL. |
| |
Nota che c'è una correlazione piuttosto forte tra questi. Non ho dati in questa regione e non ho dati in questa regione. |
| |
Quindi se mai si adatta un modello predittivo o qualsiasi tipo di modello in cui si vedono queste bande che si allargano davvero, |
| |
è un'indicazione che le tue previsioni non saranno molto precise in quella regione. E c'è una nuova funzionalità in JMP Pro, |
| |
chiamato controllo di estrapolazione, che può avvisarti se questo è un problema. Quindi, se lo trascino per le lunghe, |
| |
Nota che mi dice: "Ehi, è possibile un'estrapolazione; le tue previsioni potrebbero essere problematiche qui". E se attivo il controllo dell'estrapolazione, |
| |
Notate che tronca queste bande, e in pratica dice che non è possibile fare previsioni oltre quei limiti. Semplicemente non è valido. |
| |
Quindi questo va un po' oltre lo scopo di questo, ma se mai vedete bande nel vostro profiler di previsione che si allargano, |
| |
Spesso accade perché i tuoi predittori sono correlati tra loro, e potrebbe essere che non hai molti dati per fare previsioni in quelle regioni. Quindi è bene esserne consapevoli. |
| |
Bene, torniamo al nostro compito, vediamo, ho adattato questo modello e l'ho ridotto, e questo è il mio modello finale. |
| |
Salverò questo modello nella mia tabella dati salvando la formula di previsione. E vedrai che aggiunge una nuova colonna alla tabella dati. E ho appena creato un modello lineare, quindi ho salvato quella formula nella tabella dati. |
| |
Un'alternativa è pubblicare questo, e lo pubblicherò nel deposito delle formule. |
| |
Quindi, in definitiva, quello che farò è adattare diversi tipi di modelli (e vado avanti e chiudo) e voglio confrontare quei modelli in modo da poterli usare... |
| |
Posso farlo salvando la formula e andando su analisi, modellazione predittiva, confronto modelli, e lo farò tra un attimo, oppure salvandola nel deposito delle formule. |
| |
E il vantaggio di salvarlo nel deposito delle formule è che ora ho il codice di punteggio. Quindi, ad esempio, se questo fosse il mio modello finale che volessi applicare ai nuovi dati, |
| |
Potrei copiare questo script e applicarlo per valutare nuovi dati |
| |
(e non lo farò qui), oppure posso creare codice in una varietà di linguaggi diversi, se voglio poter utilizzare questo modello in un ambiente di produzione. |
| |
Quindi questo era un semplice modello lineare. Cosa succede se voglio adattare un tipo di modello diverso? |
| |
Potrei adattare un modello più complesso qui nel modello fit. |
| |
Quindi posso adattare un modello di regressione generalizzato e forse voglio adattare un modello Lasso, quindi cliccherò su Vai qui. |
| |
E c'è un confronto tra modelli proprio qui all'interno della regressione generalizzata, ma diciamo che voglio salvare questo modello, giusto? |
| |
E non sto prestando troppa attenzione ai dettagli, ma salverò questo. Salverò la formula di previsione. Magari pubblicherò anche quella. |
| |
Vai qui e pubblica questo. |
| |
E potrei ripetere questo, potrei adattare un modello che ha interazioni. Potrei quindi procedere ad adattare un modello di rete neurale o un modello di partizione, un modello basato su alberi e, se ho una risposta categoriale, questo si adatterà. |
| |
Un albero di classificazione. Se ho una risposta continua, questa si adatterà a un albero di regressione. Potrei adattare una foresta bootstrap, che è una raccolta di alberi più piccoli o un albero boosted, quindi ci sono diversi tipi di modelli che posso adattare. |
| |
Una volta ottenuti i miei modelli e salvate le formule o pubblicate nel deposito delle formule, voglio scoprire quale modello prevede i risultati con la massima accuratezza. |
| |
Quindi userò il confronto tra modelli. |
| |
E aggiungerò semplicemente la convalida come variabile by, |
| |
Perché voglio poter vedere quanto bene il modello si è comportato sui dati di validazione. E usando solo questi due modelli e osservando i dati di validazione (metterò da parte i dati di training), |
| |
Vedo che ho un errore medio inferiore per il modello dei minimi quadrati e il mio RASE è leggermente più alto per il modello dei minimi quadrati. |
| |
E il mio quadrato R è un po' migliore per il Lazo generalizzato. |
| |
Questo è il modo tipico in cui potremmo fare modellazione predittiva se abbiamo JMP 15 Pro o JMP Pro 15, o se non utilizziamo lo screening dei modelli. E lo screening dei modelli ci consente di fare tutto questo in un unico passaggio. Quindi, parlerò della modellazione predittiva e del lancio dello screening dei modelli. |
| |
E lo screening del modello, se guardate in basso nell'angolo qui, ci consente sostanzialmente di lanciare ciascuna delle piattaforme che ha senso per il tipo di dati che abbiamo |
| |
ed eseguiamo automaticamente quei modelli. Quindi non dobbiamo andare a selezionare il modello dal menu, possiamo eseguirlo automaticamente da qui. Quindi inserirò lo stesso tipo di modello, quindi qui sarà un modello solo per gli effetti principali. |
| |
Queste sono le mie X. Userò la stessa convalida. |
| |
Ci sono un sacco di opzioni qui di cui parleremo tra un momento, e cliccherò su OK. Notate che ho un albero decisionale, una foresta bootstrap, un albero boosted e K vicini più prossimi. |
| |
Per impostazione predefinita, Naive Bayes è disattivato, quindi posso adattare un modello neurale. |
| |
Ce ne sono altri qui in basso. Nota che ho XGBoost, quindi XGBoost è disponibile perché ho installato un componente aggiuntivo, il componente aggiuntivo XGBoost. |
| |
Si tratta di un componente aggiuntivo gratuito che accede alle librerie open source e, se installato in JMP Pro, può essere avviato dalla piattaforma di screening dei modelli. Quindi, lo lascerò disattivato e cliccherò semplicemente su OK. |
| |
Quindi sta eseguendo i modelli ed eccolo lì. Quindi è uscito e in realtà ha saltato un passaggio, giusto? Ha eseguito ognuno di questi modelli automaticamente per me. |
| |
E ci sono alcune simulazioni che utilizzi per determinare i migliori valori iniziali per i parametri di ottimizzazione, quindi adattiamo tutti questi modelli. |
| |
E sta riportando l'addestramento di convalida e le statistiche di convalida per ciascuno dei modelli. E ora, per capire quale di questi modelli sia il migliore, |
| |
Seleziona dominante. E ciò che fa fondamentalmente "seleziona dominante" è creare una frontiera tra le metriche disponibili, quindi qui clicco "seleziona dominante". |
| |
E scopre che per questi dati il modello migliore è il modello potenziato neuralmente, e i dettagli per quel modello sono qui sotto neurale. |
| |
Quindi tutti i dettagli consistono semplicemente nel lanciare la piattaforma e nell'acquisire tutte le informazioni, proprio qui, all'interno di questa piattaforma. |
| |
Quindi tutti i dettagli per la rete neurale sono qui, quindi si tratta fondamentalmente di eseguire un TanH, con tre nodi potenziati. E posso vedere le statistiche di addestramento e di convalida e, se voglio, posso vedere il modello effettivamente adattato, |
| |
ecco il modello di base. |
| |
Bene, quindi questo è... questo è il mio modello con le migliori prestazioni. Se voglio analizzare più da vicino questi modelli, posso esplorarli da qui e ci sono alcune opzioni qui, posso confrontare il grafico effettivo con quello previsto. |
| |
E posso confrontare questi modelli, quindi, come previsto, c'è una variazione leggermente inferiore nei nostri... nei nostri dati di training rispetto ai dati di convalida e al grafico effettivo rispetto a quello previsto. Posso disattivare alcuni modelli se voglio poter esplorare questo aspetto. |
| |
Posso anche avviare il profiler e, se hai la versione 16.1, il profiler è un'opzione. In realtà è un'opzione nascosta se hai la versione 16.0, e anche in questo caso sono in modalità Pro. Il profiler è utile perché ci permette di esplorare i modelli che ci interessano, quindi ne ho selezionati tre. |
| |
E lasciatemi rendere tutto un po' più grande. |
| |
Forse non così grande. |
| |
Quindi ho una foresta bootstrap, che è un modello basato su alberi, in cui fondamentalmente somma i risultati di un gruppo di alberi diversi. |
| |
Ho un modello potenziato, e i modelli neurali stanno davvero bene nel rilevare i comportamenti non lineari. E ho il modello Lasso, che è essenzialmente solo un modello lineare. |
| |
E puoi vedere questi modelli abbastanza chiaramente. Nota con il Lasso generalizzato, giusto, ho questa relazione lineare tra BMI |
| |
e la risposta. Con il potenziamento neurologico, vedo che c'è una certa curvatura. La vedo qui con LTG, e con bootstrap forest, vedo che ho questa piccola funzione a gradini, giusto, quindi in realtà approssima questa relazione non lineare che abbiamo qui. |
| |
Quindi se decidiamo che il modello potenziato neuralmente è il migliore, |
| |
quindi possiamo sostanzialmente avviare il modello, avviarlo da qui e salvare le formule nella tabella dati oppure pubblicarle nel deposito delle formule per la distribuzione. |
| |
In questo modo si risparmia molto tempo e si ha comunque la possibilità di esplorare i nostri modelli. |
| |
E se avessimo una risposta categoriale? Ricordate, abbiamo Y binaria. Possiamo usare Y binaria allo stesso modo, quindi andrò ad analizzare, e di nuovo chiamerò screening del modello, e premerò semplicemente recall e invece di Y userò Y binaria. |
| |
Possiamo eseguire gli stessi tipi di modelli. Se un certo tipo di modello non ha senso, non verrà eseguito. Quindi, ad esempio, la regressione dei minimi quadrati non ha senso in questo caso, quindi non verrà eseguita. |
| |
Ci sono alcune opzioni qui. Se seleziono un seed casuale, come 1, 2, 3, 4, 5, questo mi darà ripetibilità e se lancio un modello dai dettagli, |
| |
avrà...avrà gli stessi risultati. Ho alcune opzioni aggiuntive per la convalida. |
| |
Quindi risulta che in molti casi, utilizzando la partizione classica di addestramento, convalida e test |
| |
In realtà non è la soluzione migliore, soprattutto con set di dati di piccole dimensioni. Quindi potrei usare la convalida incrociata K-fold, e abbiamo anche la convalida incrociata annidata. |
| |
Ed è possibile effettuare ripetute validazioni K fold. Questa è quindi un'opzione interessante, soprattutto se si dispone di un set di dati di piccole dimensioni. |
| |
E in basso ci sono altre opzioni. Potresti voler aggiungere interazioni bidirezionali o quadratiche. |
| |
Se sai che mancano dei valori, potresti voler usare la funzione "mancanza informativa". Altri metodi si applicano ad altri metodi di regressione generalizzata. E se sei nel programma "early adopter" di JMP 17, noterai che questa parte della finestra di dialogo del menu |
| |
Oppure la finestra di dialogo di avvio del modello è stata leggermente riorganizzata per renderla un po' più fluida. Bene, quindi userò le impostazioni predefinite con un seed casuale e cliccherò su OK. |
| |
Quindi esegue tutti questi modelli. Di nuovo, è molto, molto veloce. Bene, e ora, poiché ho una risposta binaria, ho alcune metriche aggiuntive. Ne ho due |
| |
Misura R al quadrato, ho il tasso di classificazione errata, l'area sotto la curva, RASE. Ricorda che questo è correlato all'errore quadratico medio. Di nuovo, clicco su "seleziona dominante" e di nuovo trovo un aumento neurale, e non è sempre così. |
| |
Se seleziono quelli che ritengo siano i modelli migliori, le opzioni sotto il triangolo rosso, puoi guardare le curve ROC per questi e, ancora una volta, ci sono segni di spunta che posso attivare e disattivare i modelli. Lasciami |
| |
seleziona questo. E una delle mie nuove funzionalità preferite, disponibile anche nella piattaforma di confronto modelli e che in JMP 17 verrà aggiunta a qualsiasi piattaforma di modellazione che esegue la modellazione della classificazione, è questa cosa chiamata soglia di decisione. |
| |
Penso che questa sia una delle...una delle...una delle novità più potenti che abbiamo aggiunto in JMP 16. |
| |
Quindi, una volta selezionati questi tre modelli, ho ottenuto un riepilogo delle classificazioni per quei tre modelli. |
| |
E ora lo ingrandirò un po', così potremo vederlo un po' meglio. |
| |
Quindi, il modo in cui lo leggiamo è che, se diamo un'occhiata a "neural boosted", ci mostra due categorie per "neural boosted" e stiamo prevedendo la probabilità di "alto". Quindi queste sono le probabilità adattate per "alto". |
| |
Il limite è 0,5, quindi qualsiasi valore inferiore a 0,5 è classificato come basso; qualsiasi valore superiore a 0,5 è classificato come alto. |
| |
Quindi, se osserviamo questo blocco rosso qui, questi sono tutti i punti che sono stati classificati come bassi, ma in realtà erano alti, e possiamo vedere quel numero qui. Ce n'erano 29, quindi questi erano i falsi negativi. |
| |
La casella rossa inferiore, queste sono state classificate come alte, |
| |
Ma in realtà erano bassi. Quindi questi sono i falsi positivi, questi ragazzi qui. |
| |
E in basso ci sono alcune metriche, alcuni grafici che ci aiutano a dare un senso a tutto questo, e ci aiutano a prendere alcune decisioni. E ci sono anche alcune metriche, quindi possiamo vedere gli stessi valori qui, i 29 falsi negativi, i 17 falsi positivi. |
| |
E possiamo anche vedere i veri aspetti positivi e negativi. E ciò che mi piace davvero è che mi permette di esplorare diversi limiti. |
| |
Quindi, a seconda degli obiettivi di modellazione, ad esempio, potremmo essere interessati ad avere un tasso di sensibilità elevato, ma non vogliamo avere un tasso di specificità basso. |
| |
Tasso di sensibilità, e questa legenda qui è davvero utile, la sensibilità è il tasso di veri positivi; la specificità è il tasso di veri negativi. |
| |
Sapete, possiamo trovare un limite che sia effettivamente un po' più efficace in entrambi i casi? E cliccando e trascinando, è possibile modificare il limite per la classificazione. |
| |
e cercare di trovare un valore soglia che funzioni meglio. Ad esempio, a 0,26 (e qui aggiungo un numero arrotondato), con un valore soglia di 0,25, la sensibilità è maggiore, pur mantenendo un'elevata specificità. |
| |
I grafici che ho messo da parte sono davvero utili anche per interpretare questi numeri, quindi ci danno un quadro generale della falsa classificazione |
| |
per soglia, per porzione e poi per classificazione vera e propria. Quindi, se sto cercando di trovare un punto che bilanci specificità e sensibilità, posso guardare questo grafico. |
| |
Quindi queste linee superiori rappresentano la sensibilità, le linee tratteggiate rappresentano la specificità e c'è un punto in cui sono ancora al di sopra di un certo valore di sensibilità in cui... |
| |
sensibilità, dove la mia specificità rimane alta? E possiamo... possiamo bilanciare le due cose. Quindi, se guardo qui, vedo che questo è il punto in cui entrambe le linee si incrociano. |
| |
E questo diventa davvero importante se ci troviamo in un caso in cui i dati non sono bilanciati. Quindi diamo un'occhiata a un altro esempio. Concludo e |
| |
Non salvare questo. E lasciatemi chiudere il deposito delle formule, e a proposito, il deposito delle formule è autonomo, quindi sostanzialmente non è legato al set di dati che stavamo usando. Quindi rende davvero facile prendere un modello e poi applicarlo a nuovi dati. Procedo e chiudo. |
| |
Quindi lo scenario qui per questo prossimo set di dati, i dati chiamati marketing delle carte di credito, e lo scenario è che |
| |
Stiamo conducendo una ricerca di mercato sull'accettazione delle offerte di carte di credito. E la risposta è "offerta accettata". Un'avvertenza: solo il 5,5% delle offerte, |
| |
utilizzando dati storici, sono stati accettati. Si tratta in realtà di un esperimento progettato in cui stiamo esaminando diverse ricompense, diversi tipi di mailer, |
| |
informazioni finanziarie diverse, ma l'esperimento progettato riguarda la tipologia di ricompensa e di mailing. Ci concentreremo su questo specifico obiettivo di modellazione. Vogliamo identificare i clienti più propensi ad accettare l'offerta della carta di credito. |
| |
E facendo questo cercheremo di |
| |
applicheremo il modello ai nuovi clienti e, in base alla classificazione di questi nuovi clienti, decideremo se inviare loro l'offerta oppure no. |
| |
Quindi, se è poco probabile che i clienti accettino l'offerta, non gliela invieremo. Se è molto probabile che accettino, allora gliela invieremo. |
| |
Quindi questo è lo scenario, e tornando a JMP, l'offerta è stata accettata. E ora vado avanti ed eseguo uno script salvato qui mentre parlo dei dati. |
| |
Abbiamo 10.000 osservazioni, quindi ci vorrà un po' più di tempo, e al momento stiamo eseguendo quei modelli, e qui sto usando solo le impostazioni predefinite. Quindi ho accettato l'offerta, |
| |
Il tipo di premio è costituito da miglia aeree, cashback o punti. Il tipo di spedizione è lettera o cartolina. E poi il resto sono dati bancari... informazioni bancarie storiche e alcune informazioni demografiche. |
| |
Come vedi, sta eseguendo macchine a vettori di supporto. Le macchine a vettori di supporto possono essere un po' lente, soprattutto con grandi set di dati, e infatti, di default, non funzionano se abbiamo più di 10.000 osservazioni. |
| |
Possiamo vedere che abbiamo un saldo medio. E i dati vengono sottoposti a training e validazione, e JMP riconoscerà automaticamente gli zeri come training e gli 1 come validazione. Bene, quindi esegue tutti i modelli. |
| |
E se seleziono dominante, possiamo vedere che ha selezionato l'adattamento graduale e l'albero decisionale. |
| |
Ma vorrei sottolineare questo tasso di classificazione errata. |
| |
Quindi questo è... questo è davvero qualcosa che vediamo molto spesso quando cerchiamo l'ago nel pagliaio, giusto? Se do un'occhiata a questi dati e ne eseguo una distribuzione... |
| |
Lasciatemi ingrandire un po', così possiamo vederlo un po' meglio, giusto. Sto solo guardando i dati di convalida, notate che |
| |
6,25, 6,2, 6,3% |
| |
dei valori era sì, hanno risposto all'offerta, ed è esattamente ciò che stiamo ottenendo qui per il tasso di classificazione errata. |
| |
Per capire meglio questo concetto, attiverò la soglia decisionale. |
| |
E rendilo un po' più grande. |
| |
Si noti che il sì previsto è tutto zero, e questo perché le probabilità previste erano tutte relativamente basse. |
| |
Ricorda che in una matrice di confusione classica il valore limite è 0,5 e, se hai dati non bilanciati, è molto improbabile che tu riesca a classificare molte osservazioni come sì, in questo caso. |
| |
Mentre clicco e trascino, |
| |
e arrivo a questa prima serie di punti, poi inizio a vedere alcuni sì previsti. Infatti, attiverò le metriche. |
| |
Quando si hanno dati fortemente sbilanciati, le probabilità previste potrebbero essere molto basse. |
| |
Quindi, avere questo cursore ti consente di esplorare i tagli |
| |
che può avere un impatto sia sulla sensibilità che sulla specificità. Quindi, in un caso come questo, potremmo dire qualcosa del tipo: "Beh, se dovessimo inviare..." |
| |
Inserirò solo 0,05 qui... se dovessimo inviare un'offerta di carta di credito alle probabilità previste, il 5% più alto delle probabilità previste di sì, giusto, la nostra sensibilità |
| |
La differenza tra i due modelli è di circa 0,72, 0,75 e la nostra specificità è ancora piuttosto elevata. Quindi, avere questo... questo limite, questo cursore, consente di ottenere informazioni più utili dal modello. |
| |
Quindi, se... a 0,5, vedo che sto ottenendo alcuni veri positivi. Sto ottenendo anche molti falsi positivi, giusto? Quindi c'è un compromesso. |
| |
Ora, in un caso come questo, potresti avere anche delle conseguenze finanziarie. Giusto. Quindi ha senso rifletterci... |
| |
matrice dei profitti. E c'è un pulsante. |
| |
Clicco qui. |
| |
La matrice di profitto è una proprietà di colonna per una colonna particolare e possiamo impostare |
| |
Quel valore, quel limite rispetto alla soglia di probabilità, come proprietà di colonna, oppure possiamo anche inserire dei valori. Sai, nello scenario classico, forse costa 5 dollari. |
| |
se scegliamo di inviare un'offerta a qualcuno. |
| |
E se rispondono all'offerta, |
| |
Forse vale 100 $. Quindi se decidiamo di inviare un'offerta a qualcuno e questa persona non risponde, perdiamo 5 $. |
| |
Se decidiamo di inviare un'offerta a qualcuno e questa persona risponde, potremmo guadagnare in media 100 dollari. E forse perdiamo qualche opportunità, e potremmo dire di aver perso 100 dollari. |
| |
Se non rispondono. E spesso il costo di questo è che questo campo viene lasciato vuoto, noi inseriamo semplicemente i valori per i sì. Se applico questo e clicco su OK, |
| |
Poi vengono aggiunti nuovi valori, giusto. Quindi, ora abbiamo una matrice dei profitti e se osserviamo le nostre metriche, possiamo vedere i profitti previsti. Quindi |
| |
in media, giusto, per ogni cliente in questo set di dati, si dice che guadagnerà $ 1,50 se applichiamo il modello ad albero decisionale e un po' meno se applichiamo il modello graduale. |
| |
Quindi, in una situazione come questa con dati sbilanciati e costi sottostanti, ha senso utilizzare la matrice dei profitti. Se non abbiamo costi sottostanti, |
| |
Quindi questo cursore ci aiuta a scegliere un valore soglia che ci permetterà di raggiungere il nostro obiettivo di modellazione. Potrebbe essere quello di massimizzare la sensibilità, massimizzare la specificità o altro. |
| |
Quindi questo è essenzialmente uno screening del modello. |
| |
Vorrei concludere e tornare alle diapositive. |
| |
Abbiamo parlato un po' della modellazione predittiva e di cosa intendiamo per modellazione predittiva. |
| |
Abbiamo visto che è possibile adattare e confrontare facilmente molti modelli utilizzando la convalida, e lo screening dei modelli consiste proprio nel semplificare questo flusso di lavoro. |
| |
Se vuoi, puoi sempre provare a montare singoli modelli, ma lo screening dei modelli ti consente di montare tutti i modelli contemporaneamente in un'unica piattaforma e poi confrontarli. |
| |
Per maggiori informazioni, sono disponibili molti tipi diversi di metriche e moltissime metriche per la classificazione dei dati. C'è un esempio davvero interessante |
| |
pagina su Wikipedia sulla sensibilità e specificità e tutte le varie metriche, e l'ho trovata davvero utile mentre cercavo di approfondire e capire come interpretare le metriche fornite. |
| |
Ci sono molte risorse sulla modellazione predittiva in generale e anche sullo screening dei modelli in JMP Pro |
| |
nella nostra...nella nostra Community di utenti. Farò di nuovo riferimento a STIPS. STIPS è il nostro corso di pensiero statistico per la risoluzione di problemi industriali. |
| |
Il settimo modulo è un'introduzione alla modellazione predittiva, quindi se sei alle prime armi con la modellazione predittiva, ti consiglio di dargli un'occhiata. C'è anche un blog che utilizza i dati sul diabete pubblicati sulla nostra Community. E infine, per qualsiasi nuova funzionalità,... |
| |
tenderà a subire miglioramenti iterativi. Lo screening dei modelli è stato introdotto in JMP Pro 16. Stiamo già lavorando su JMP Pro 17 e ci sono già molti miglioramenti in cantiere. |
| |
Quindi, se sei interessato a dare un'occhiata a ciò che sta arrivando, ti dà l'opportunità di fornire un feedback, |
| |
Contattateci per partecipare al programma Early Adopter e vi aiuteremo a organizzare tutto. Grazie per il tempo che ci avete dedicato e spero che il resto della conferenza vi piaccia. |