|
Altoparlante
|
Trascrizione
|
| Russ Wolfinger |
Va bene. Bene, ciao a tutti. |
| |
Benvenuti nella mia casa qui a Holly Springs, nella Carolina del Nord. |
| |
Con la follia del Covid in corso, organizzare una conferenza virtuale online è una specie di nuova esperienza, ma sono davvero entusiasta di parlare con voi oggi e di offrire un tutorial su una nuovissima aggiunta che abbiamo per JMP Pro |
| |
che implementa la popolare funzionalità XGBoost. |
| |
Quindi oggi, per questo tutorial, vi guiderò attraverso ciò che abbiamo. Quello che ho qui è un diario di JMP |
| |
che saranno disponibili nei materiali della conferenza. E cosa ti incoraggio a fare, se volessi seguirlo tu stesso, |
| |
potresti mettere in pausa il video adesso e andare ai materiali della conferenza, prendere questo diario. Puoi aprirlo nella tua versione di JMP Pro, |
| |
e inoltre c'è un collegamento per l'installazione. Devi installare un componente aggiuntivo, se vai avanti e lo installi sarai in grado di riprodurre tutto quello che faccio qui esattamente a casa, e anche fare qualcosa di tuo giocando. Quindi ti incoraggio a farlo se puoi. |
| |
Ho il mio cane Charlie, è lì sullo sfondo. Spero che non faccia nulla di imbarazzante. Non sembra molto eccitato in questo momento, ma ama XGBoost tanto quanto me, quindi entriamo nel vivo. |
| |
XGBoost è una libreria C++ open source davvero incredibile che esiste ormai da parecchi anni. |
| |
E la teoria originale è stata elaborata da un paio di famosi statistici negli anni '90, ma poi il team dell'Università di Washington ha raccolto l'idea e l'ha implementata. |
| |
E... penso che il momento in cui ha preso veramente il sopravvento è stato nel contesto di alcune competizioni di Kaggle. |
| |
Da dove è iniziato... una volta che la gente ha iniziato a usarlo ed è diventato disponibile, ha letteralmente iniziato a vincere quasi tutte le competizioni tabulari che Kaggle ha organizzato negli ultimi anni. |
| |
E in realtà ora ci sono diverse centinaia di esempi online, se vuoi fare qualche ricerca in giro, li troverai. |
| |
Quindi la considererei probabilmente la metodologia di modellazione predittiva dei dati tabulari più popolare e forse la più potente al mondo in questo momento. |
| |
Ovviamente ci sono concorrenti e per ogni particolare set di dati potresti vedere alcune differenze, ma nel complesso è davvero impressionante. |
| |
In effetti, ora ci sono pacchetti competitivi là fuori che fanno cose molto simili LightGBM di Microsoft e Catboost di Yandex. Non li approfondiremo oggi, ma sono abbastanza simili. |
| |
Dato che non abbiamo molto tempo oggi, non voglio dilungarmi sulle motivazioni. Ma ancora una volta, hai questo diario se vuoi esaminarli più attentamente. |
| |
Quello che voglio fare è darvi i punti salienti di questo diario e in particolare darvi alcune dimostrazioni dal vivo in modo che abbiate un'idea di cosa c'è qui. |
| |
E poi sarai libero di esplorare e provare queste cose da solo, col passare del tempo. Avrai bisogno... avrai bisogno di una copia funzionante di JMP Pro 15 |
| |
al più presto, ma se riesci a mettere le mani sul JMP 16 early adopter, il JMP 16 ufficiale non verrà spedito fino al prossimo anno, 2021, |
| |
ma puoi ottenere subito la tua versione early adopter e stiamo apportando miglioramenti. Quindi ti incoraggio a procurarti l'ultimo JMP 16 Pro early adopter |
| |
per ottenere la funzionalità più recente di questo componente aggiuntivo...di questa funzionalità. Ecco, questa è una specie di nuova e insolita configurazione del frame per JMP Pro. |
| |
Abbiamo scritto molto codice C++ direttamente all'interno di Pro per integrarlo e ottenere l'API XGBoost C++. Ed è per questo che... svolgiamo la maggior parte del nostro lavoro in C++ |
| |
ma c'è un componente aggiuntivo che lo accompagna che installa la libreria dinamica e fa un piccolo aggiornamento del menu per te, quindi hai bisogno... hai bisogno sia di Pro che di installare il componente aggiuntivo per eseguirlo. |
| |
Quindi, se puoi, prendi JMP 16 pro Early Adopter per ottenere le novità ed è quello che mostrerò oggi. |
| |
Immergiamoci subito per fare un esempio. E questo è nuovo di zecca che ha appena attirato la mia attenzione. Ha una storia molto interessante alle spalle. |
| |
Il ricercatore dietro questi dati è un professore di nome Jaivime Evarito. È un esperto scienziato ambientale, un dottorato di ricerca, professore, assistente professore |
| |
ora all'Università di Utrecht nei Paesi Bassi e ha gentilmente fornito questi dati con il suo permesso, così come la storia dietro di essi, per aiutare gli altri che erano così... un po' drammatici riguardo a questi dati. L'ho fatto suo il collega Jeffrey McDonnell |
| |
raccolto tutti questi dati. Questi sono dati. Lo scopo è studiare il deflusso dei corsi d’acqua nelle aree deforestate di tutto il mondo. |
| |
E potete vedere, abbiamo 163 posti qui, la maggior parte dei quali almeno la metà negli Stati Uniti e poi in tutto il mondo, posti diversi in cui sono riusciti a raccogliere |
| |
regioni che sono state ripulite dagli alberi e poi sono state effettuate 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 del cambiamento climatico, quindi è abbastanza tempestivo. |
| |
E fortunatamente per Jaivime in quel momento, furono in grado di pubblicare un articolo sulla rivista Nature, una delle migliori riviste scientifiche al mondo, davvero carino |
| |
esperienza per farcela entrare. Sfortunatamente, quello che accadde dopo, sebbene ci fosse un laboratorio concorrente che divenne davvero molto critico nei confronti di ciò che avevano fatto in questo articolo. |
| |
E dopo un sacco di avanti e indietro e di dibattiti, si è scoperto che il documento è stato ritirato, |
| |
che ovviamente è stata un'esperienza davvero difficile per Jaivime. Voglio dire, è stato molto gentile e ha permesso di condividere una storia e speranze. |
| |
per evitare questo. E si scopre che alla radice della controversia c'erano molte, molte altre cose, ma qual era il problema principale da parte dei critici è... |
| |
Potrei aver fatto un'analisi potenziata dell'albero. Ed è un modello piuttosto semplice. C'è solo... forse abbiamo solo una manciata di predittori, ognuno dei quali è importante ma, e uno dei loro obiettivi principali era determinare quali fossero i più importanti. |
| |
Ha eseguito un modello di albero potenziato con un singolo set di convalida di controllo e ha pubblicato un blocco di convalida di circa 0,7. Sembrava tutto a posto, |
| |
ma poi sono arrivati i critici, hanno rianalizzato i dati con un diverso set di resistenze e hanno ottenuto una validazione su R quadrato |
| |
inferiore a .1. Quindi un cambiamento davvero enorme. Stanno andando da 0,7 a meno di 0,1 e, e questo, è stato utilizzato, i critici si sono lanciati su tutto questo e hanno cercato di screditare davvero quello che stava succedendo. |
| |
Ora, Jaivime, a questo punto, Jaivime, questo è successo l'anno scorso e il documento è stato ritirato all'inizio qui nel 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 eseguire effettivamente piegature K ripetute, |
| |
invece di una sola resistenza, per cercare di andare a fondo di questa discrepanza tra due diverse resistenze. E quello che ho fatto, abbiamo una nuova routine |
| |
fornito con il componente aggiuntivo XGBoost che crea colonne K fold. E se vedi il set di dati qui, li ho creati. Per motivi di tempo, non entreremo nel dettaglio di come farlo. Ma c'è |
| |
ora c'è un nuovo modulo che viene fornito con l'intestazione chiamata crea colonne piega K che ti permetterà di farlo. E l’ho fatto in modo stratificato. E, cosa interessante, sotto il cofano si chiama JMP DOE. |
| |
E il vantaggio di farlo in questo modo è che puoi effettivamente creare pieghe ortogonali, il che non è molto comune. Ecco, lasciami fare una rapida distribuzione. |
| |
Che questo era il set di resistenza che Jaivime aveva originariamente fatto e che ha stratificato, il che è una buona idea, penso, dato che la risposta è un po' distorta. E poi questo era il set di resistenza utilizzato dal critico, |
| |
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 piuttosto ortogonali, |
| |
dove otteniamo il massimo guadagno di informazioni eseguendo K piega tre volte separate con una sorta di tre serie ortogonali. |
| |
Quindi, e poi si scopre, poiché stava già utilizzando alberi potenziati, quindi la prossima cosa da provare è il componente aggiuntivo XGBoost. E quindi sono stato davvero felice di scoprire questo set di dati e parlarne qui. |
| |
Ora, cosa è successo... lasciatemi fare un'altra analisi qui dove sto eseguendo un'analisi unidirezionale sui set di convalida. Si scopre che mi sono perso quello che sto facendo qui sono le risposte, questa resa d'acqua è stata corretta. |
| |
E lo sto tracciando rispetto ai set di convalida. si è scoperto che Jaivime nel suo set da allenamento, |
| |
le prime quattro o cinque misurazioni sono finite tutte nel suo set di allenamento, e penso che questo sia un po' alla radice del problema. |
| |
Mentre nel set della critica lo hanno fatto... era equilibrato, un po' di più, e in particolare la cosa peggiore... che la posizione con il punteggio più alto era nel set di convalida. E quindi questa è una naturale fonte di errore perché va oltre tutto ciò che stava facendo la formazione. |
| |
E penso che questo sia davvero un caso in cui il K fold, un'analisi di tipo K fold, è più convincente che eseguire semplicemente un singolo set di controllo. |
| |
Direi che entrambi questi set di resistenze singole hanno qualche pregiudizio ed è meglio fare più pieghe in cui stratifichi...distribuisci le cose |
| |
ogni volta in modo diverso e poi vedere cosa succede dopo più adattamenti. Quindi puoi vedere come appaiono le pieghe che ho creato qui in termini di distribuzione e quindi ora eseguiamo XGBoost. |
| |
Quindi il componente aggiuntivo ha in realtà molte funzionalità e non voglio sovraccaricarti oggi, ma ancora una volta, ti incoraggio a seguire e mettere in pausa il video in alcuni punti se stai cercando di seguirlo tu stesso |
| |
assicurarsi. Ma quello che abbiamo fatto qui, ho semplicemente eseguito una sceneggiatura. E comunque, tutto nel diario ha... le tabelle JMP sono carine, dove puoi salvare gli script. E quindi quello che ho fatto qui è stato eseguire XGBoost da quello script. |
| |
Lasciatemi solo per l'illustrazione, lo rieseguirò di nuovo direttamente dal menu. Questo sarà il modo in cui potresti voler farlo. Quindi, quando installi il componente aggiuntivo, |
| |
premi la modellazione predittiva e poi XGBoost. Quindi l'abbiamo aggiunto proprio qui al menu di modellazione predittiva. E quindi il modo in cui lo configureresti |
| |
è specificare la risposta. Ecco Y. Ci sono sette predittori, che inseriremo qui come x e poi inserirai le relative colonne di piegatura e convalida. |
| |
Volevo sottolineare un punto qui per quelli di voi che sono utenti esperti di JMP Pro, XGBoost gestisce le colonne di convalida in modo leggermente diverso rispetto ad altre piattaforme JMP. |
| |
È una specie di struttura sperimentale a questo punto, ma in base alla mia esperienza, trovo che la piegatura a K ripetuta sia un modo molto avvincente da fare e volevo impostare l'aggiunta per renderlo più semplice. |
| |
E quindi qui inserisco di nuovo queste colonne di piegatura che abbiamo creato con l'utilità, e XGBoost eseguirà automaticamente K piegate ripetute semplicemente specificandole come abbiamo qui. |
| |
Se desideri eseguire un singolo controllo come le analisi originali, puoi impostarlo come di consueto, ma devi creare la colonna |
| |
continuo. Questo è un problema. E so che alcuni dei nostri primi utilizzatori sono rimasti inciampati in questo ed è una convenzione diversa dalle altre |
| |
Altri XGBoost o altre routine di modellazione predittiva all'interno di JMP Pro, ma questo mi è sembrato il modo più pulito per farlo. E ancora, il modo consigliato sarebbe correre |
| |
piega a K ripetuta in questo modo, o almeno una piega a K singola e poi puoi semplicemente premere OK. Otterrai questa finestra di lancio iniziale. |
| |
E il bello di XGBoost è che ha molti parametri di ottimizzazione. Quelli chiave sono elencati qui in questa casella e puoi giocare con questi. |
| |
E poi si scopre che ce ne sono molti altri, e sono nascosti sotto queste opzioni avanzate, per le quali non abbiamo tempo per oggi. |
| |
Ma abbiamo provato a... questi sono i più importanti che in genere farai... nella maggior parte dei casi puoi semplicemente preoccuparti di loro. E quindi... eseguiamo... andiamo avanti ed eseguiamolo di nuovo, solo da qui puoi fare clic sul pulsante Vai e quindi XGBoost verrà eseguito. |
| |
Ora sto solo utilizzando un semplice laptop qui. Si tratta di un set di dati relativamente piccolo. E quindi giusto.... abbiamo semplicemente ripetuto, ripetuto cinque volte |
| |
tre cose diverse, nel giro di pochi secondi. XGBoost è abbastanza ben ottimizzato e funzionerà bene per set di dati più grandi, ma per questo piccolo esempio vediamo cosa è successo. |
| |
Ora si scopre che questo grafico iniziale che emerge solleva un segnale immediato. |
| |
Quello che stiamo guardando qui è... oltre al numero di iterazioni, le iterazioni adatte, abbiamo una curva di allenamento che è fondamentalmente la funzione di perdita che vuoi abbassare. |
| |
Ma poi la curva solida è la curva di convalida. E puoi vedere cosa è successo qui. Subito dopo che si sono verificate alcune iterazioni, questa curva ha toccato il fondo e poi le cose sono peggiorate molto. |
| |
Quindi questo è in realtà un caso in cui non vorresti utilizzare questo modello predefinito. XGBoost è già sovradimensionato, |
| |
cosa che spesso accade per set di dati più piccoli come questo e richiede la necessità di ottimizzazione. |
| |
Ci sono molti altri risultati in fondo, ma ancora una volta non li considererei affidabili. A questo punto, avresti bisogno...vorresti fare una piccola messa a punto. |
| |
Per oggi, facciamo solo un po' di regolazione manuale, ma ti incoraggio. Abbiamo effettivamente implementato un intero framework per la creazione di un progetto di ottimizzazione, |
| |
dove è possibile specificare una serie di parametri ed effettuare ricerche nello spazio di progettazione e di nuovo utilizziamo effettivamente JMP DOE. |
| |
Quindi è... abbiamo già due modi diversi in cui utilizziamo DOE, entrambi i quali hanno davvero migliorato la funzionalità. Per ora, eseguiamo solo un po' di regolazione manuale in base a questo grafico. |
| |
Puoi vedere se possiamo... ingrandire questo grafico e vediamo che la curva sta toccando il fondo. Lasciatemi dare un'occhiata letteralmente subito dopo tre o quattro iterazioni, quindi una cosa, una cosa davvero semplice che possiamo fare è letteralmente semplicemente, fermiamoci, ovvero smettiamo di allenarci dopo quattro passaggi. |
| |
E guarda cosa succede. A proposito, nota cosa è successo per il nostro overfitting, il nostro R quadrato di convalida era in realtà negativo, quindi piuttosto negativo. Sicuramente non è un modello consigliato. Ma se corriamo, eseguiamo questo nuovo modello in cui faremo solo quattro... solo quattro passi, |
| |
guarda cosa succede. |
| |
R quadrato di convalida molto migliore. Adesso siamo sopra .16 e infatti ne proviamo tre solo per divertimento. Guarda cosa succede. |
| |
Un po' peggio. Quindi puoi vedere che questo è il genere di cose con cui puoi giocare. Abbiamo provato a impostare questo dialogo laddove fosse favorevole a ciò. |
| |
E puoi fare alcuni confronti tra modelli su questa tabella qui all'inizio ti aiuta. Puoi ordinare in base a diverse colonne e trovare il modello migliore e poi, in basso, puoi approfondire vari dettagli di modellazione. |
| |
Restiamo qui con il Modello 2, e quello che possiamo fare è... |
| |
Manteniamo solo quello e potrai ripulire...puoi ripulire i modelli che non vuoi, rimuoverà quelli nascosti. |
| |
E così ora siamo giù, torniamo al modello che vogliamo esaminare più in profondità. Nota qui che il nostro quadrato R di convalida è 0,17 o giù di lì. |
| |
Quindi, ricorda, questo è in realtà una via di mezzo tra ciò che Jaivime aveva ottenuto originariamente e ciò che aveva ottenuto il critico. |
| |
E lo considererei una misura molto più affidabile di R quadrato perché, ancora una volta, viene calcolato nel complesso, in realtà abbiamo eseguito 15 diversi adattamenti di modellazione, |
| |
cinque volte tre volte diverse. Quindi questa è una media rispetto a quelle. Quindi penso che sia una misura molto più pulita e affidabile per le prestazioni del modello. |
| |
Se scorri verso il basso per trovare qualsiasi modello che si adatta, c'è un bel po' di risultati da esaminare. Ancora una volta... ancora una volta, JMP è molto bravo... cerchiamo sempre di avere grafici vicini alle statistiche il più possibile |
| |
entrambi vedono cosa sta succedendo e vi allegano dei numeri e questi grafici sono live normalmente, piacevolmente interattivi. |
| |
Ma puoi vedere qui, abbiamo una formazione effettiva rispetto a prevista e convalida. E le cose quasi sempre peggiorano dopo la convalida, ma questa è davvero la realtà. |
| |
E potete vedere di nuovo dove vengono commessi gli errori, e questo è che questo è il punto veramente alto, spesso arriva... questa è la linea di 45 gradi. |
| |
Quindi le misurazioni elevate tendono... e tutte quelle elevate tendono a essere sottostimate, il che è abbastanza normale. Penso che qualsiasi tipo di metodo come questo tenderà a ridursi |
| |
valori estremi verso il basso e solo per essere conservatori. In questo modo è possibile vedere esattamente dove vengono commessi gli errori e in che misura. |
| |
Ora, l'interesse principale di Jaivime era che... era interessato soprattutto a vedere quali variabili influenzavano davvero |
| |
questo effetto corretto dell'acqua. E possiamo vedere quello che salta fuori come il numero uno è questo chiamato PET. |
| |
Esistono diversi modi per valutare l'importanza delle variabili in XGBoost. Puoi guardare il numero diretto di divisioni, come misura del guadagno, che penso sia |
| |
forse il migliore con cui iniziare. Si tratta di quanto il modello migliora con ciascuno, ogni volta che dividi una determinata variabile. Ce n'è un altro chiamato copertura. |
| |
In questo caso, per ognuno dei tre, questo PET sta emergendo come il più importante. E quindi, fondamentalmente, questa rapida analisi sembra essere il punto in cui si svolge l'azione per questi dati. |
| |
Ora, con JMP, possiamo fare molto di più. E potete vedere qui sotto il triangolo rosso modellante che abbiamo abbellito alcune cose nuove. È possibile salvare valori e formule predittivi, |
| |
puoi pubblicare nel deposito modelli o nel deposito formule e fare più cose lì. |
| |
Abbiamo anche routine per generare codice Python, che non serve solo per il punteggio, ma serve in realtà per fare tutto il training e l'adattamento, che è una specie di cosa nuova, ma aiuterà quelli di voi che vogliono passare da JMP Pro passa a Python. Per qui, però, diamo un'occhiata al profiler. |
| |
E devo offrire una breve parola di scusa al mio amico Brad Jones in un video precedente, avevo dimenticato di riconoscere che era lui l'inventore del profiler. |
| |
Quindi questo è, questo è in realtà un caso e una sorta di merito per lui, dove siamo lo stiamo usando ora in un altro modo, ovvero per valutare l'importanza della variabile e come funziona ciascuna variabile. Quindi per me è davvero avvincente |
| |
quadro in cui possiamo... possiamo guardarlo. E Charlie…Charlie si è alzato dal divano quando gliel'ho detto. È proprio qui accanto a me adesso. |
| |
E quindi, guarda cosa succede... possiamo vedere che la cosa interessante è che con questa variabile PET, possiamo vedere il momento chiave, sembra essere non appena PET |
| |
arriva proprio sopra i 1200 o giù di lì è quando le cose decollano davvero. E quindi è davvero una bella illustrazione 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 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 davvero un bel modo, penso, un bel modo di fare l'analisi e lo incoraggerei... e ti incoraggio a provarlo con i tuoi dati. |
| |
Passiamo ora ad un altro esempio e torniamo al nostro diario. |
| |
Come puoi vedere, c'è molto qui. Non abbiamo tempo naturalmente per affrontare tutto. |
| |
Ma lo abbiamo fatto, solo per motivi di tempo, volevo mostrarti cosa succede quando abbiamo un obiettivo binario. Ciò che abbiamo appena visto era continuo. |
| |
A tale scopo verrà utilizzato il vecchio set di dati sul diabete, che esiste da un po' di tempo ed è disponibile nella libreria di campioni JMP. E questo set di dati sono gli stessi dati ma li abbiamo abbelliti con alcuni nuovi script. |
| |
E quindi se prendi il diario e lo scarichi, otterrai questo tipo di versione migliorata che ha |
| |
parecchie esecuzioni di XGBoost con diversi sia con un target ordinale binario che, come ricorderete, questo qui abbiamo misurazioni basse e alte che derivano da questa variabile Y originale, |
| |
cercando una risposta per il diabete. E qui andremo ancora un po' oltre. Immaginiamo di trovarci in una sorta di contesto medico in cui vogliamo effettivamente utilizzare una matrice di profitto. E il nostro obiettivo è prendere una decisione. Prevediamo 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 il nostro profitto o perdita, a seconda che lo stato attuale sia alto. E naturalmente, |
| |
questo è il modo in cui funziona in genere è corretto... le decisioni corrette sono qui e qui. |
| |
E poi ci sono quelli sbagliati, e quelli sono quelli... vuoi pensare a tutte e quattro le celle quando imposti una matrice come questa. |
| |
E qui ne farò uno semplice. E sta raddoppiando e non so se sia possibile attribuire a questi valori monetari reali oppure no. In realtà è una buona cosa se ti trovi in quel tipo di scenario. |
| |
Chissà, forse possiamo considerarli ciascuno come un BitCoic, forse intorno ai $ 10.000 ciascuno o qualcosa del genere. |
| |
Non importa troppo. È più una questione di, vogliamo prendere una decisione ottimale in base alla nostra |
| |
le nostre previsioni. Quindi terremo conto di questa matrice di profitto quando noi, quando faremo la nostra analisi ora. In realtà viene fatto solo dopo l'adattamento del modello. Non viene utilizzato direttamente nel raccordo stesso. |
| |
Quindi eseguiremo XGBoost ora qui e abbiamo un obiettivo binario. Se noterai il |
| |
la funzione obiettivo è ora cambiata in una logistica della perdita di log e questo è ciò che si riflette qui: questa è la probabilità del log logistico. |
| |
E puoi vedere... possiamo guardare ora con un obiettivo binario che i parametri che utilizziamo per valutarlo sono leggermente diversi. |
| |
Tuttavia, se noti, abbiamo colonne dei profitti calcolate dalla matrice dei profitti che abbiamo appena esaminato. |
| |
Ma se ti trovi in uno scenario, magari in cui non vuoi preoccuparti tanto della matrice dei profitti, ma solo di una sorta di regressione binaria diretta, puoi guardare parametri comuni come |
| |
solo l'accuratezza, che è l'opposto del tasso di errata classificazione, queste correlazioni F1 o Matthews sono utili da guardare, così come un'analisi ROC, che ti aiuta a bilanciare specificità e sensibilità. Quindi sono tutti disponibili. |
| |
E puoi approfondire. Una cosa nuova di zecca su cui volevo mostrarti, stiamo ancora lavorando per un po', è che ora abbiamo un modo per farti giocare con la soglia decisionale. |
| |
E ora puoi farlo davvero in modo interattivo. E abbiamo una nuova... una nuova cosa che traccia il tuo profitto in base alla soglia. |
| |
Questo è un grafico nuovo di zecca che stiamo appena iniziando a introdurre in JMP Pro e per ottenerlo dovrai procurarti l'ultimissimo JMP 16 early adopter, ma supporta la matrice decisionale... |
| |
o la matrice del profitto. E poi un'altra cosa su cui stiamo lavorando è che puoi ricavare una soglia ottimale basata direttamente su questa matrice. |
| |
Credo che in questo caso sia ancora .5. E quindi questo aggiunge ulteriori informazioni sul tipo di cose che potresti voler fare se il tuo vero obiettivo è massimizzare il profitto. |
| |
Altrimenti, probabilmente vorrai bilanciare specificità e sensibilità fornendo il tuo contesto, ma hai le tipiche matrici di confusione, che sono mostrate qui, così come qui insieme ad alcuni grafici sia per l'addestramento che per la convalida. |
| |
E poi le curve ROC. |
| |
Ottieni anche lo stesso tipo di cose che abbiamo visto prima in termini di importanza variabile. E andiamo avanti e ripetiamo il profiler dato che in realtà è un bel... |
| |
è bello anche in questo, in questo caso. Possiamo vedere esattamente cosa sta succedendo con ciascuna variabile. |
| |
Possiamo vedere ad esempio qui che LTG e BMI sono le due variabili più importanti e sembra che entrambe tendano ad aumentare man mano che la risposta aumenta, quindi possiamo vedere direttamente quella relazione. E infatti, a volte con gli alberi, si possono ottenere non linearità, come in questo caso con il BMI. |
| |
Non è chiaro se sia una cosa reale qui, potremmo voler fare di più, più analisi o guardare più modelli per essere sicuri, forse c'è qualcosa di reale qui con quel piccolo |
| |
urto che vediamo. Ma queste sono cose che puoi tirar fuori, davvero divertenti e interessanti da guardare. |
| |
Quindi, è lì per giocare con il set di dati sul diabete. Il diario ha molto di più. Ci sono altri due esempi che non mostrerò oggi per motivi 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 ti guida passo dopo passo attraverso questi due esempi. Quindi, ti incoraggio a controllarli. |
| |
E poi, il diario contiene anche diversi confronti che sono stati fatti. |
| |
Hai visto questa matrice viola viola che abbiamo osservato. Questo è stato uno studio condotto presso l'Università della Pennsylvania, |
| |
dove confrontano un'intera serie di metodi di apprendimento automatico tra loro su una serie di set di dati diversi, e quindi confrontano quante volte uno supera l'altro. E XGBoost |
| |
è uscito come il modello di punta e questo confronto non è stato sempre dei migliori, ma mediamente tendeva a surclassare tutti gli altri che vedete qui. Quindi, ancora qualche prova in più del |
| |
potenza e capacità di questa tecnica. Ora ce ne sono alcune, ci sono alcune altre cose qui in cui non entrerò. |
| |
Questo 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 aiutarti a capire cosa sta succedendo. |
| |
Abbiamo anche effettuato alcuni test piuttosto approfonditi internamente all'interno del reparto di ricerca e sviluppo di JMP e molti di questi risultati sono disponibili su diversi set di dati. |
| |
E ancora una volta, per motivi di tempo, non entrerò in questi argomenti, ma ti incoraggio a verificarli. Lo fanno... tutti i nostri risultati vengono forniti con il diario qui e puoi giocarci su diversi domini e dimensioni di dati diversi. |
| |
Quindi controlla quelli. Lo dirò solo per divertimento, la nostra conclusione in termini di velocità è riassunta qui in questo piccolo meme. Abbiamo due auto diverse. |
| |
In realtà, questo è davvero strepitoso ed è sintonizzato per utilizzare tutti... tutti i thread che hai nella tua GPU... nella tua CPU. |
| |
E se utilizzi Windows, con una scheda NVIDIA, puoi anche attingere alla tua GPU, che spesso offrirà forse un ulteriore aumento di velocità quintuplicato. Quindi molto divertente lì. |
| |
Vorrei quindi concludere il tutorial a questo punto. E ancora, ti incoraggiamo a verificarlo. Volevo offrire molti ringraziamenti. Molte persone sono state coinvolte |
| |
e temo che in realtà, probabilmente ne ho trascurato alcuni qui, ma almeno volevo riconoscere queste persone. Abbiamo avuto un fantastico gruppo di early adopter. |
| |
E hanno fornito un feedback davvero positivo da parte di Marie, Diedrich e questi ragazzi di Villanova hanno già iniziato a utilizzare XGBoost in classe con successo. |
| |
Quindi è stato davvero bello sentirlo. E molte persone all'interno di JMP ci hanno aiutato. |
| |
Naturalmente, tutto ciò si basa sull'intera infrastruttura JMP. Quindi prima o poi sarà necessario elencare l'intera divisione JMP con l'aiuto di questo, è stato così divertente lavorarci. |
| |
E poi voglio riconoscere il nostro team di scienze della vita che mi ha mantenuto onesto su varie cose. E ci hanno aiutato con molti suggerimenti. |
| |
E Luciano in realtà ha implementato un componente aggiuntivo XGBoost, un componente aggiuntivo diverso che va con JMP Genomics, quindi ti incoraggio a verificarlo anche se stai utilizzando JMP Genomics. Puoi anche chiamare XGBoost direttamente all'interno del framework di modellazione predittiva lì. |
| |
Quindi grazie mille per l'attenzione e spero che tu possa provare XGBoost. |