| Oratore |
Trascrizione |
| Russ Wolfinger |
Bene. Bene, ciao a tutti. |
| |
Benvenuti a casa mia a Holly Springs, nella Carolina del Nord. |
| |
Con la follia del Covid in corso, questa è una sorta di nuova esperienza per una conferenza virtuale online, ma sono davvero entusiasta di parlare con voi oggi e offrirvi un tutorial su un nuovissimo componente aggiuntivo che abbiamo per JMP Pro |
| |
che implementa la popolare funzionalità XGBoost. |
| |
Quindi, oggi, in questo tutorial, vi spiegherò cosa abbiamo. Quello che ho qui è un journal JMP. |
| |
che saranno disponibili nei materiali della conferenza. E quello che vi incoraggio a fare, se volete seguirci voi stessi, è |
| |
Potresti mettere in pausa il video adesso e andare ai materiali della conferenza, prendere questo diario e aprirlo nella tua versione di JMP Pro, |
| |
E c'è anche un link per l'installazione. Devi installare un componente aggiuntivo, e se lo installi potrai riprodurre esattamente tutto quello che faccio qui a casa, e persino fare qualche esperimento tuo. Quindi ti consiglio di farlo, se puoi. |
| |
Ho il mio cane Charlie, è lì sullo sfondo. Spero che non faccia niente di imbarazzante. Non sembra molto emozionato in questo momento, ma adora XGBoost tanto quanto me, quindi iniziamo. |
| |
XGBoost è una libreria C++ open source davvero incredibile, presente sul mercato ormai da diversi anni. |
| |
La teoria originale fu in realtà elaborata da un paio di famosi statistici negli anni '90, ma poi il team dell'Università di Washington raccolse le idee e le mise in pratica. |
| |
E...penso che abbia davvero trovato il suo posto nel contesto di alcune competizioni di Kaggle. |
| |
Tutto è iniziato... una volta che la gente ha iniziato a usarlo ed è diventato disponibile, ha letteralmente iniziato a vincere praticamente ogni competizione tabulare organizzata da Kaggle negli ultimi anni. |
| |
E in effetti ormai online ce ne sono diverse centinaia: se vuoi fare qualche ricerca, li troverai. |
| |
Pertanto, considererei questa la metodologia di modellazione predittiva dei dati tabellari più diffusa e forse la più potente al mondo in questo momento. |
| |
Naturalmente ci sono concorrenti e per ogni set di dati specifico si possono notare delle differenze, ma nel complesso è davvero impressionante. |
| |
In effetti, esistono già pacchetti competitivi che offrono funzionalità molto simili: LightGBM di Microsoft e Catboost di Yandex. Non ne parleremo oggi, ma sono piuttosto simili. |
| |
Diciamo che, visto che oggi non abbiamo molto tempo, non voglio dilungarmi sulle motivazioni. Ma ripeto, se vuoi approfondire l'argomento, hai questo diario. |
| |
Ciò che vorrei fare è in un certo senso illustrarvi i punti salienti di questo diario e in particolare fornirvi alcune dimostrazioni dal vivo, così da darvi un'idea di ciò che contiene. |
| |
E poi sarai libero di esplorare e provare queste cose da solo, col passare del tempo. Avrai bisogno... di una copia funzionante di JMP Pro 15. |
| |
al più presto, ma se riesci a mettere le mani su JMP 16 early adopter, la versione ufficiale di JMP 16 non verrà spedita prima del prossimo anno, 2021, |
| |
Ma puoi ottenere la tua versione early adopter già da ora e stiamo apportando dei miglioramenti. Quindi ti consiglio di scaricare l'ultima versione early adopter di JMP 16 Pro. |
| |
Per ottenere le funzionalità più recenti di questo componente aggiuntivo... di questa funzionalità. Ora, questa è una nuova configurazione di frame piuttosto insolita per JMP Pro. |
| |
Abbiamo scritto molto codice C++ direttamente in Pro per integrarlo e ottenere l'API C++ di XGBoost. Ed è per questo che... svolgiamo la maggior parte del nostro lavoro in C++. |
| |
ma c'è un componente aggiuntivo che lo accompagna e che installa la libreria dinamica ed esegue un piccolo aggiornamento del menu, quindi hai bisogno...hai bisogno di entrambe le versioni di Pro e devi installare il componente aggiuntivo per poterlo eseguire. |
| |
Quindi, se potete, procuratevi JMP 16 pro early adopter per ottenere le ultime novità. È proprio quello che vi mostrerò oggi. |
| |
Andiamo subito a fare un esempio. Questo è un caso nuovo di cui ho appena sentito parlare. Ha una storia molto interessante alle spalle. |
| |
Il ricercatore dietro questi dati è il professore Jaivime Evarito. È un esperto di scienze ambientali, dottore di ricerca, professore e assistente. |
| |
Ora lavora all'Università di Utrecht, nei Paesi Bassi, e ha gentilmente fornito questi dati con il suo permesso, così come la storia che li ha generati, per aiutare altre persone che si trovavano... un po' in difficoltà a causa di questi dati. Ho fatto presente il suo collega Jeffrey McDonnell. |
| |
Abbiamo raccolto tutti questi dati. Questi sono dati. Lo scopo è studiare il deflusso dei corsi d'acqua nelle aree disboscate di tutto il mondo. |
| |
E potete vedere, abbiamo 163 posti qui, la maggior parte dei quali negli Stati Uniti e poi in tutto il mondo, posti diversi in cui sono stati in grado di raccogliere |
| |
regioni che sono state ripulite dagli alberi e poi hanno preso alcune misurazioni critiche |
| |
In termini di ciò che è accaduto con il deflusso delle acque. E questo tipo di studio è molto importante per studiare gli impatti ambientali del disboscamento e della deforestazione, così come i cambiamenti climatici, quindi è piuttosto attuale. |
| |
E fortunatamente per Jaivime in quel momento, riuscirono a pubblicare un articolo sulla rivista Nature, una delle riviste scientifiche più importanti al mondo, un articolo davvero bello |
| |
esperienza per riuscirci. Sfortunatamente, quello che è successo dopo, nonostante ci fosse un laboratorio concorrente che si è mostrato molto critico nei confronti di ciò che avevano scritto in questo articolo. |
| |
E si è scoperto che dopo molti avanti e indietro e dibattiti, il documento è stato ritirato, |
| |
Il che è stata ovviamente un'esperienza davvero difficile per Jaivime. Voglio dire, è stato molto gentile e mi ha lasciato condividere una storia e delle speranze. |
| |
Per evitare questo. E a quanto pare, alla radice della controversia c'erano diverse, diverse altre cose, ma la critica principale da parte dei critici è... |
| |
Potrei aver fatto un'analisi ad albero potenziata. Ed è un modello piuttosto semplice. Ci sono solo... abbiamo forse solo una manciata di predittori, ognuno dei quali è importante, ma uno dei loro obiettivi principali era determinare quali fossero i più importanti. |
| |
Ha eseguito un modello ad albero potenziato con un singolo set di convalida holdout e ha pubblicato un valore di convalida holdout di circa 0,7. Tutto sembrava a posto, |
| |
ma poi sono arrivati i critici, hanno rianalizzato i dati con un set di holdout diverso e hanno ottenuto un holdout di convalida R quadrato |
| |
Di meno di 0,1. Quindi un cambiamento piuttosto significativo. Passano da 0,7 a meno di 0,1 e questo, questo è stato usato, i critici si sono davvero scagliati su questo e hanno cercato di screditare davvero quello che stava succedendo. |
| |
Ora, Jaivime, a questo punto, Jaivime, questo è accaduto l'anno scorso e il documento è stato ritirato all'inizio del 2020... |
| |
Jaivime ha condiviso i dati con me quest'estate e il mio pensiero era di fare un'analisi di convalida incrociata un po' più rigorosa e di fare effettivamente K volte ripetute, |
| |
Invece di un singolo holdout, per cercare di arrivare in fondo a questa discrepanza tra due holdout diversi. E quello che ho fatto è che abbiamo una nuova routine. |
| |
che viene fornito con il componente aggiuntivo XGBoost che crea colonne K-fold. E se vedete il set di dati qui, li ho creati io. Per motivi di tempo, non spiegheremo come farlo. Ma c'è |
| |
Ora c'è un nuovo modulo con l'intestazione "Crea colonne K-fold" che ti permetterà di farlo. E l'ho fatto in modo stratificato. E, cosa interessante, chiama JMP DOE in background. |
| |
E il vantaggio di farlo in questo modo è che si possono effettivamente creare pieghe ortogonali, cosa non molto comune. Ecco, lasciatemi fare una rapida distribuzione. |
| |
Che questo fosse il set di controllo che Jaivime aveva creato originariamente e che aveva stratificato, il che è una buona idea, credo, dato che la risposta è un po' distorta. E poi questo era il set di controllo che il critico ha usato, |
| |
E poi ecco le pieghe che ho finito per usare. Ho fatto tre schemi diversi. E poi il punto che volevo sottolineare qui è che queste pieghe sono piacevolmente ortogonali, |
| |
dove otteniamo una sorta di guadagno di informazioni massimo eseguendo K volte tre volte separate con tre insiemi ortogonali. |
| |
Quindi, si è scoperto che, poiché stava già utilizzando alberi potenziati, la cosa successiva da provare è il componente aggiuntivo XGBoost. Quindi sono stato davvero felice di scoprire questo set di dati e di parlarne qui. |
| |
Ora, cosa è successo... lasciatemi fare un'altra analisi qui, dove faccio un'analisi unidirezionale sui set di convalida. A quanto pare, mi è sfuggito quello che sto facendo qui, ovvero le risposte, questa resa idrica corretta. |
| |
E sto tracciando un grafico in confronto ai set di convalida. Si è scoperto che Jaivime nel suo set di addestramento, |
| |
le prime quattro o cinque misurazioni sono tutte finite nel suo set di allenamento, e penso che questa sia in un certo senso la radice del problema. |
| |
Mentre nel set dei critici, invece, lo hanno fatto... era equilibrato, un po' più elaborato, e in particolare il peggiore... il fatto che la posizione con il punteggio più alto fosse nel set di convalida. E quindi questa è una fonte naturale di errore perché va oltre qualsiasi cosa facesse parte dell'addestramento. |
| |
E penso che questo sia davvero un caso in cui l'analisi di tipo K fold è più convincente rispetto al semplice utilizzo di un singolo set di holdout. |
| |
Sostengo che entrambi questi set di holdout singoli hanno una certa parzialità ed è meglio fare più pieghe in cui stratifichi...distribuisci le cose |
| |
In modo diverso ogni volta e poi vediamo cosa succede dopo diversi adattamenti. Quindi puoi vedere come appaiono le pieghe che ho creato qui in termini di distribuzione e ora eseguiamo XGBoost. |
| |
Quindi il componente aggiuntivo ha in realtà molte funzionalità e non voglio sopraffarti oggi, ma ancora una volta, ti incoraggio a seguire e mettere in pausa il video nei punti in cui stai cercando di seguirlo da solo |
| |
Per esserne sicuri. Ma quello che abbiamo fatto qui, ho semplicemente eseguito uno script. E a proposito, tutto nel journal ha... Le tabelle JMP sono utili, perché permettono di salvare gli script. Quindi quello che ho fatto qui è stato eseguire XGBoost da quello script. |
| |
Per illustrare meglio, rieseguirò questa operazione direttamente dal menu. Questo è il modo in cui potresti volerlo fare. Quindi, quando installi il componente aggiuntivo, |
| |
Si va su "Modellazione predittiva" e poi su "XGBoost". Quindi l'abbiamo aggiunto proprio qui al menu "Modellazione predittiva". Ecco come si imposta questo... |
| |
serve a specificare la risposta. Ecco Y. Ci sono sette predittori, che inseriremo qui come x, e poi inserirete le loro colonne di ripiegamento e la convalida. |
| |
Vorrei sottolineare una cosa, per gli utenti esperti di JMP Pro: XGBoost gestisce le colonne di convalida in modo leggermente diverso rispetto ad altre piattaforme JMP. |
| |
Al momento si tratta di un framework sperimentale, ma in base alla mia esperienza, ritengo che il metodo K-fold ripetuto sia un metodo molto interessante e ho voluto impostare il componente aggiuntivo per semplificarlo. |
| |
Quindi eccomi qui a inserire nuovamente queste colonne di piegatura che abbiamo creato con l'utilità, e XGBoost eseguirà automaticamente la piegatura K ripetuta semplicemente specificandola come abbiamo fatto qui. |
| |
Se si desidera eseguire un singolo holdout come le analisi originali, è possibile impostarlo come di consueto, ma è necessario creare la colonna |
| |
continuo. Questo è un problema. E so che alcuni dei nostri primi utilizzatori sono rimasti spiazzati da questo, ed è una convenzione diversa dalle altre. |
| |
Altre routine di XGBoost o di modellazione predittiva all'interno di JMP Pro, ma questo mi è sembrato il modo più pulito per farlo. E ancora una volta, il metodo consigliato sarebbe quello di eseguire |
| |
Ripeti K-fold in questo modo, o almeno un singolo K-fold e poi puoi semplicemente premere OK. Otterrai questa finestra di avvio iniziale. |
| |
E la cosa bella di XGBoost è che ha molti parametri di ottimizzazione. Quelli principali sono elencati qui in questo riquadro e puoi giocarci. |
| |
E poi si scopre che ce ne sono molte di più, nascoste sotto queste opzioni avanzate, per le quali oggi non abbiamo tempo. |
| |
Ma abbiamo cercato di... questi sono i più importanti, che in genere... nella maggior parte dei casi puoi semplicemente preoccuparti di loro. E quindi... eseguiamo... eseguiamo di nuovo, da qui puoi cliccare sul pulsante "Go" e XGBoost verrà eseguito. |
| |
Ora, sto usando un semplice portatile. Si tratta di un set di dati relativamente piccolo. E quindi... abbiamo appena ripetuto l'operazione per cinque volte. |
| |
tre cose diverse, in pochi secondi. XGBoost è piuttosto ben ottimizzato e funzionerà bene anche con set di dati più grandi, ma per questo piccolo esempio, vediamo cosa è successo. |
| |
Ora, a quanto pare, questo grafico iniziale solleva immediatamente un problema. |
| |
Ciò che stiamo osservando qui è che, in base al numero di iterazioni, alle iterazioni di adattamento, abbiamo una curva di addestramento che è fondamentalmente la funzione di perdita che si desidera ottenere. |
| |
Ma poi la curva continua è la curva di convalida. E potete vedere cosa è successo qui. Dopo poche iterazioni, questa curva ha toccato il fondo e poi le cose sono peggiorate notevolmente. |
| |
Quindi questo è in realtà un caso in cui non si vorrebbe utilizzare questo modello predefinito. XGBoost è già sovradimensionato, |
| |
cosa che spesso accade per set di dati più piccoli come questo e che richiede la necessità di ottimizzazione. |
| |
Ci sono molti altri risultati in fondo, ma, ripeto, non... non li considererei affidabili. A questo punto, avresti bisogno... dovresti fare qualche piccola modifica. |
| |
Per oggi, facciamo solo un po' di messa a punto manuale, ma vi consiglio di farlo. Abbiamo implementato un intero framework per la creazione di un progetto di messa a punto, |
| |
dove è possibile specificare un intervallo di parametri ed effettuare ricerche nello spazio di progettazione e in realtà utilizziamo ancora una volta JMP DOE. |
| |
Quindi... abbiamo già due modi diversi in cui utilizziamo DOE, ed entrambi hanno migliorato notevolmente la funzionalità. Per ora, facciamo solo un po' di ottimizzazione manuale basandoci su questo grafico. |
| |
Potete vedere se ci riusciamo... ingrandite questo grafico e vedete che la curva sta toccando il fondo. Date un'occhiata, letteralmente, subito dopo tre o quattro iterazioni, quindi una cosa, una cosa davvero semplice che possiamo fare è semplicemente fermarci, ovvero interrompere l'allenamento dopo quattro passaggi. |
| |
E vediamo cosa succede. A proposito, notate cosa è successo per il nostro overfitting: il nostro R quadrato di validazione era in realtà negativo, quindi piuttosto negativo. Sicuramente non è un modello consigliato. Ma se eseguiamo questo nuovo modello, eseguiamo solo quattro... solo quattro passaggi. |
| |
guarda cosa succede. |
| |
Validazione R al quadrato molto migliore. Ora siamo a circa 0,16 e in effetti ne proviamo tre, giusto per divertirci. Vediamo cosa succede. |
| |
Un po' peggio. Quindi, come potete vedere, questo è il tipo di cosa con cui si può giocare. Abbiamo cercato di impostare questo dialogo in modo che sia accettabile. |
| |
Puoi anche fare dei confronti tra modelli usando questa tabella qui all'inizio, che ti sarà d'aiuto. Puoi ordinare per colonne e trovare il modello migliore, e poi, più in basso, puoi approfondire vari dettagli della modellazione. |
| |
Restiamo sul Modello 2 e quello che possiamo fare è... |
| |
Teniamo solo quello e tu puoi ripulire...puoi ripulire i modelli che non ti interessano, quelli nascosti verranno rimossi. |
| |
E ora siamo tornati al modello che vogliamo analizzare più approfonditamente. Notate che il nostro R quadrato di convalida è circa 0,17. |
| |
Quindi, ricordiamoci che questa è in realtà una via di mezzo tra ciò che Jaivime aveva inizialmente capito e ciò che aveva capito il critico. |
| |
E considererei questo come una misura molto più affidabile di R quadrato perché, ancora una volta, è calcolato su tutti i fronti, in realtà abbiamo eseguito 15 diversi adattamenti di modellazione, |
| |
Cinque volte tre volte in tempi diversi. Quindi questa è una media. Penso che sia una misura molto più precisa e affidabile delle prestazioni del modello. |
| |
Se scorri verso il basso per trovare un modello che si adatti, c'è un bel po' di output da esaminare. Ancora una volta... JMP è molto bravo in questo... cerchiamo sempre di avere grafici vicino alle statistiche che puoi |
| |
entrambi vedono cosa sta succedendo e associano dei numeri; i grafici sono in tempo reale, come di consueto, e piacevolmente interattivi. |
| |
Ma come potete vedere qui, abbiamo un training effettivo rispetto a quello previsto e alla convalida. E le cose peggiorano quasi sempre con la convalida, ma questa è la realtà. |
| |
E si può vedere ancora una volta dove vengono commessi gli errori, e questo è il punto veramente alto, che spesso diventa... questa è la linea a 45 gradi. |
| |
Quindi quella misurazione elevata tende... e tutte quelle elevate tendono a essere sottostimate, il che è abbastanza normale. Penso che per qualsiasi metodo di questo tipo, tenderà a ridursi. |
| |
valori estremi verso il basso, giusto per essere prudenti. In questo modo si può vedere esattamente dove vengono commessi gli errori e in quale misura. |
| |
Ora, per quanto riguarda l'interesse principale di Jaivime, erano... era soprattutto interessato a vedere quali variabili stavano realmente guidando |
| |
Questo effetto corretto dall'acqua. E possiamo vedere che quello che salta all'occhio, in un certo senso, è questo chiamato PET. |
| |
Ci sono diversi modi per valutare l'importanza delle variabili in XGBoost. Si può considerare il numero diretto di split, come misura del guadagno, che credo sia |
| |
Forse è il migliore da cui iniziare. Si tratta di quanto il modello migliora ogni volta che si divide su una certa variabile. Ce n'è un altro chiamato copertura. |
| |
In questo caso, per ognuno dei tre, questo PET emerge come il più importante. Quindi, in sostanza, questa rapida analisi sembra indicare dove si concentra l'azione per questi dati. |
| |
Ora con JMP, possiamo fare di più. E potete vedere qui, sotto il triangolo rosso di modellazione, che abbiamo arricchito diverse novità. Potete salvare valori predittivi e formule, |
| |
Puoi pubblicare su Model Depot o Formula Depot e lì fare altre cose. |
| |
Abbiamo persino delle routine per generare codice Python, che non servono solo per il calcolo del punteggio, ma anche per eseguire l'addestramento e il fitting, il che è una novità, ma sarà utile per chi desidera passare da JMP Pro a Python. Per ora, però, diamo un'occhiata al profiler. |
| |
E devo porgere velocemente le mie scuse al mio amico Brad Jones, di cui ho parlato in un video precedente: avevo dimenticato di specificare che era lui l'inventore del profiler. |
| |
Quindi questo è, questo è in realtà un caso e in un certo senso un merito suo, dove lo stiamo usando ora in un altro modo, ovvero per valutare l'importanza delle variabili e come funziona ciascuna variabile. Quindi per me è davvero avvincente. |
| |
un quadro in cui possiamo... possiamo dare un'occhiata a questo. E Charlie... Charlie si è alzato subito dal divano quando gliel'ho detto. È proprio qui accanto a me ora. |
| |
E quindi, guarda cosa succede... possiamo vedere la cosa interessante con questa variabile PET, possiamo vedere il momento chiave, sembra essere non appena PET |
| |
Arriva appena sopra i 1200 o giù di lì, ed è allora che le cose decollano davvero. Ed è un'ottima dimostrazione di come funziona il profiler. |
| |
E per quanto ne so, questa è la prima volta...questa è la prima...questo è l'unico software che offre |
| |
grafici come questo, che in un certo senso vanno oltre queste semplici misure statistiche di importanza e ti mostrano esattamente cosa sta succedendo e ti aiutano a interpretare |
| |
Il modello ad albero potenziato. Quindi, penso, è davvero un bel modo di fare analisi e lo incoraggerei... e vi incoraggio a provarlo con i vostri dati. |
| |
Passiamo ora a un altro esempio e torniamo al nostro diario. |
| |
Come puoi vedere, c'è molto da fare qui. Non abbiamo tempo di esaminare tutto in modo naturale. |
| |
Ma, giusto per una questione di tempo, volevo mostrarvi cosa succede quando abbiamo un bersaglio binario. Quello che abbiamo appena visto era continuo. |
| |
Per questo useremo il vecchio set di dati sul diabete, che esiste da un bel po' ed è disponibile nella libreria di esempi JMP. Questo set di dati è lo stesso, ma lo abbiamo arricchito con alcuni nuovi script. |
| |
E quindi se ottieni il diario e lo scarichi, otterrai questo tipo di versione migliorata che ha |
| |
un bel po' di esecuzioni XGBoost con diversi obiettivi sia ordinali binari che, come ricorderai, qui abbiamo misurazioni basse e alte che derivano da questa variabile Y originale, |
| |
Stiamo esaminando una risposta per il diabete. E andremo ancora un po' oltre. Immaginiamo di trovarci in un contesto medico in cui vogliamo effettivamente utilizzare una matrice di profitto. E il nostro obiettivo è prendere una decisione. Faremo una previsione per ogni persona, |
| |
che siano alti o bassi, ma poi ci penso, ci siamo resi conto che se una persona è effettivamente alta, la posta in gioco è un po' più alta. |
| |
E quindi raddoppieremo i nostri profitti o le nostre perdite, a seconda che la situazione attuale sia alta o meno. E ovviamente, |
| |
questo è un modo in cui funziona ed è solitamente corretto...le decisioni corrette sono qui e qui. |
| |
E poi ci sono quelli sbagliati, e sono quelli... quando si imposta una matrice come questa, bisogna considerare tutte e quattro le celle. |
| |
Ed ecco qui una cosa semplice. Sta raddoppiando e non so se si possano attribuire valori monetari reali o meno. In realtà, è una buona cosa se ci si trova in questo tipo di scenario. |
| |
Chissà, forse potremmo considerarli tutti come dei BitCoic, con un valore intorno ai 10.000 dollari l'uno o qualcosa del genere. |
| |
Non importa molto. È più una questione di voler prendere una decisione ottimale in base al nostro |
| |
le nostre previsioni. Quindi terremo conto di questa matrice dei profitti quando faremo la nostra analisi. In realtà, lo facciamo solo dopo l'adattamento del modello. Non viene utilizzato direttamente nell'adattamento stesso. |
| |
Quindi ora eseguiamo XGBoost qui e abbiamo un target binario. Se notate il |
| |
la funzione obiettivo è ora cambiata in una logistica della perdita logaritmica e ciò che si riflette qui è la verosimiglianza logistica del logaritmo. |
| |
E come potete vedere... ora possiamo osservare con un obiettivo binario che le metriche che utilizziamo per valutarlo sono un po' diverse. |
| |
Tuttavia, come potete notare, abbiamo delle colonne relative ai profitti che vengono calcolate dalla matrice dei profitti che abbiamo appena esaminato. |
| |
Ma se ti trovi in uno scenario in cui non vuoi preoccuparti troppo di una matrice di profitto, ma solo di una regressione binaria diretta, puoi guardare metriche comuni come |
| |
Solo per quanto riguarda l'accuratezza, che è l'inverso del tasso di classificazione errata, queste correlazioni F1 o di Matthews sono utili da considerare, così come un'analisi ROC, che aiuta a bilanciare specificità e sensibilità. Quindi sono tutte disponibili. |
| |
E puoi approfondire ulteriormente. Una novità su cui volevo mostrarti e su cui stiamo ancora lavorando è che ora abbiamo un modo per giocare con la soglia decisionale. |
| |
E ora puoi farlo in modo interattivo. E abbiamo una novità... una novità che traccia i tuoi profitti in base alla soglia. |
| |
Si tratta di un grafico completamente nuovo che stiamo appena iniziando a introdurre in JMP Pro e per ottenerlo è necessario avere l'ultima versione early adopter di JMP 16, ma supporta la matrice decisionale... |
| |
o la matrice dei profitti. Un'altra cosa su cui stiamo lavorando è che si può ricavare una soglia ottimale direttamente da questa matrice. |
| |
Credo che in questo caso sia ancora 0,5. Questo fornisce un'ulteriore panoramica sulle cose che potresti voler fare se il tuo vero obiettivo è massimizzare il profitto. |
| |
Altrimenti, probabilmente vorrai bilanciare specificità e sensibilità fornendo il contesto, ma hai le tipiche matrici di confusione, che sono mostrate qui, così come qui sopra insieme ad alcuni grafici sia per l'addestramento che per la convalida. |
| |
E poi le curve ROC. |
| |
Si ottengono anche le stesse cose che abbiamo visto prima in termini di importanza delle variabili. E andiamo avanti e ripetiamo il profiler, visto che in realtà è un bel... |
| |
È anche utile in questo caso. Possiamo vedere esattamente cosa succede con ogni variabile. |
| |
Ad esempio, possiamo vedere qui che LTG e BMI sono le due variabili più importanti e sembrano entrambe tendere ad aumentare all'aumentare della risposta, quindi possiamo osservare direttamente questa relazione. E in effetti, a volte con gli alberi si possono ottenere non linearità, come qui con l'IMC. |
| |
Non è chiaro se si tratti di una cosa reale, potremmo voler fare più analisi o esaminare più modelli per essere sicuri che forse c'è qualcosa di reale in corso qui con quel piccolo |
| |
protuberanza che vediamo. Ma queste sono cose che si possono individuare, davvero divertenti e interessanti da guardare. |
| |
Quindi, ecco qui come giocare con il set di dati sul diabete. La rivista offre molto di più. Ci sono altri due esempi che non mostrerò oggi per mancanza di tempo, ma sono documentati in dettaglio nella documentazione di XGBoost. |
| |
Questo è solo un documento PDF che fornisce molti dettagli scritti sul componente aggiuntivo e vi guida passo passo attraverso questi due esempi. Quindi, vi consiglio di dargli un'occhiata. |
| |
E poi la rivista contiene anche diversi confronti diversi che sono stati fatti. |
| |
Avete visto questa matrice viola che abbiamo esaminato. Si tratta di uno studio condotto presso l'Università della Pennsylvania, |
| |
dove confrontano un'intera serie di metodi di apprendimento automatico tra loro su un gruppo di set di dati diversi, e poi confrontano quante volte uno supera l'altro. E XGBoost |
| |
è risultato il modello di punta e questo confronto non è sempre stato il migliore, ma in media tendeva a superare tutti gli altri che vedete qui. Quindi, ancora qualche prova del |
| |
potenza e capacità di questa tecnica. Ora, ci sono alcune altre cose di cui non parlerò. |
| |
Questo caso di Hill Valley è interessante. È un caso in cui gli alberi non hanno funzionato affatto bene. È una situazione un po' patologica, ma interessante da studiare, giusto per capire cosa sta succedendo. |
| |
Abbiamo anche eseguito alcuni test piuttosto approfonditi internamente nel reparto R&S di JMP e molti di quei risultati sono qui, distribuiti su diversi set di dati. |
| |
E ancora una volta, per una questione di tempo, non mi dilungherò su questi aspetti, ma vi invito a darci un'occhiata. Tutti i nostri risultati sono allegati alla rivista qui e potete sperimentarli su diversi domini e con diverse dimensioni di dati. |
| |
Date un'occhiata. Lo dico solo per divertimento: la nostra conclusione in termini di velocità è riassunta in questo piccolo meme. Abbiamo due auto diverse. |
| |
In realtà, questo sistema è davvero potente ed è ottimizzato per utilizzare tutti... tutti i thread presenti nella GPU... nella CPU. |
| |
E se usi Windows e hai una scheda NVIDIA, puoi persino sfruttare la tua GPU, che spesso offre un aumento di velocità di cinque volte. Quindi, un gran divertimento. |
| |
Quindi, lasciatemi concludere il tutorial a questo punto. E vi incoraggio ancora una volta a dargli un'occhiata. Volevo ringraziarvi di cuore. Molte persone sono state coinvolte. |
| |
E temo che, in realtà, probabilmente ne ho trascurato qualcuno, ma almeno volevo ringraziare queste persone. Abbiamo avuto un ottimo gruppo di early adopter. |
| |
E hanno fornito un feedback davvero positivo da parte di Marie, Diedrich e i ragazzi di Villanova hanno già iniziato a utilizzare XGBoost in classe con successo. |
| |
Quindi, è stato davvero fantastico sentirne parlare. E molte persone di JMP ci hanno dato una mano. |
| |
Ovviamente, questo si basa sull'intera infrastruttura JMP. Quindi, prima o poi, dovrò elencare l'intera divisione JMP con l'aiuto di questo progetto, è stato molto divertente lavorarci. |
| |
E poi voglio ringraziare il nostro team di Scienze della Vita che mi ha aiutato a essere onesto su diverse questioni. E mi hanno aiutato con molti suggerimenti. |
| |
E Luciano ha effettivamente implementato un componente aggiuntivo per XGBoost, un componente aggiuntivo diverso che funziona con JMP Genomics, quindi vi consiglio di provarlo anche voi se usate JMP Genomics. Potete anche richiamare XGBoost direttamente all'interno del framework di modellazione predittiva. |
| |
Grazie mille per l'attenzione e spero che tu possa provare XGBoost. |