| Oratore |
Trascrizione |
| Clay Barker |
Grazie, mi chiamo Clay Barker. Sono uno sviluppatore statistico nel gruppo JMP e oggi vi parlerò di una nuova funzionalità di JMP Pro 16. Si chiama selezione dei termini e ci ho lavorato insieme ai miei colleghi Paris Faison ed Ernest Pasour. |
| |
I dati testuali stanno quindi diventando sempre più comuni nella pratica. Potremmo avere recensioni dei clienti su un prodotto che realizziamo, descrizioni di eventi o registri di manutenzione per alcune delle nostre apparecchiature. |
| |
E in questo esempio qui sulle mie diapositive, questo è tratto da |
| |
incidenti aerei...insieme di dati sugli incidenti che abbiamo nei dati di esempio. |
| |
E ogni riga di dati è la descrizione di un incidente aereo, un incidente o un altro tipo di malfunzionamento. |
| |
Se non avete mai utilizzato la piattaforma Text Explorer, sappiate che è stata introdotta in JMP 13 e viene utilizzata principalmente per riassumere e analizzare i dati testuali. |
| |
In questo modo, è facile svolgere attività comuni come individuare le parole e le frasi più frequenti o più comuni, e si possono facilmente raggruppare i documenti o ricercare temi, ad esempio tramite un'analisi tematica. Il tutto è gestito da quella che viene chiamata matrice termine-documento. |
| |
Quindi, cos'è la matrice dei termini dei documenti? Il modo più semplice per immaginarla è come una matrice di variabili indicatrici che segnalano se ciascun documento include o meno una determinata parola o frase. |
| |
E possiamo ponderare questo valore in base alla frequenza con cui la parola compare in ciascun documento. Quindi ogni documento rappresenta una riga nella nostra matrice termine-documento e ogni colonna rappresenta una parola. |
| |
Quindi, per un esempio davvero semplice, la prima riga è "la confezione della pizza era frustrante". Quindi abbiamo 1 per la confezione, |
| |
Un 1 per pizza, un 1 per frustrante e 0 per tutte le altre parole. Allo stesso modo, per la seconda riga, abbiamo un 1 per odore, ottimo, gusto e pizza e 0 altrove. È semplicemente un riepilogo delle parole presenti in ciascun documento. |
| |
Ho anche accennato al fatto che esistono un paio di varianti della matrice documento-termine. La più semplice è quella binaria; è composta solo da uno e zero. |
| |
Ma potremmo voler includere informazioni sulla frequenza con cui ricorre ogni parola, quindi ecco un'altra frase leggermente più lunga in cui la parola pizza compare più volte. |
| |
Nella matrice binaria dei termini del documento, la colonna "pizza" è ancora 1 perché non ci interessa la frequenza con cui compare. Per il sistema ternario è 2, perché il ternario è composto da zeri, uno e due. È 0 se la parola non compare, è 1 se compare una volta e è 2 se compare più di una volta. |
| |
Indipendentemente dal fatto che compaia quattro volte, l'abbiamo comunque codificato come 2. E poi la frequenza è davvero semplice. È semplicemente il numero di volte in cui ogni parola compare in quel documento. |
| |
Questi sono tre davvero semplici, offriamo anche la ponderazione TF-IDF, che è una sorta di frequenza relativa, ma puoi saperne di più su questi schemi di ponderazione in |
| |
Piattaforma Text Explorer. |
| |
Qual è dunque il passo successivo? Cos'altro potresti voler utilizzare? |
| |
Potresti voler usare il testo per aiutarti a raggiungere un determinato risultato. Quindi qui ho creato alcune recensioni di mobili, e a ogni recensione è associata una valutazione in stelle, giusto? |
| |
Quindi potremmo pensare che queste recensioni ci diano degli indizi sul perché qualcuno potrebbe valutare un prodotto in modo più o meno positivo. Ad esempio, in questa prima riga, "le istruzioni erano frustranti" e l'utente ci ha assegnato solo un punteggio di 3. Se... se questo schema si ripete spesso e molte persone danno un punteggio... |
| |
Molte delle valutazioni più basse sono legate alle istruzioni, il che potrebbe indicarci che dobbiamo migliorare le istruzioni che forniamo con i nostri mobili. |
| |
Quindi l'idea semplice è di usarli come modello di regressione. Prenderemo... prenderemo la nostra matrice documento-termine, |
| |
Combineremo questi dati con le informazioni relative alle nostre risposte e procederemo con un'analisi di regressione. |
| |
E questo ci aiuterà a capire perché i clienti apprezzano o non apprezzano i nostri mobili, o qualsiasi altro prodotto che realizziamo. |
| |
Può aiutarci a classificare gli oggetti in base alle descrizioni, come vedremo in seguito, oppure potremmo voler capire perché alcune macchine si guastano o meno in base ai loro registri di manutenzione. |
| |
E il modo in cui lo facciamo è davvero semplice. |
| |
Stiamo semplicemente creando un modello di regressione, in cui ciascuna delle nostre X, o variabili predittive, è una delle colonne della matrice dei termini. Quindi, se stiamo modellando le valutazioni dei prodotti, si tratta di una semplice regressione lineare e se stiamo |
| |
se stiamo modellando un risultato binario, come ad esempio se un cliente consiglierebbe o meno il nostro prodotto |
| |
Potrebbe trattarsi di centinaia di parole e sarebbe opportuno non utilizzarle tutte. Non tutti i dati saranno utili, quindi applicheremo una tecnica di selezione delle variabili al nostro modello di regressione e otterremo un modello più semplice, facile da interpretare e che si adatti bene ai dati. |
| |
E qui in basso è facile visualizzare la combinazione di queste variabili indicatrici con il nostro punteggio di risposta, il nostro punteggio a stelle. |
| |
La nostra soluzione, che sarà inclusa in JMP 16, consiste nell'integrare i modelli di regressione nella piattaforma Text Explorer. Se avete mai utilizzato la piattaforma di regressione generalizzata per la selezione delle variabili, in pratica stiamo integrando tale piattaforma all'interno di Text Explorer. |
| |
Quindi, se hai JMP Pro, vedrai la voce di selezione dei termini nel menu a triangolo rosso di Esplora testo. |
| |
Questo è ciò che ci entusiasma davvero. Rende facile e veloce costruire e perfezionare questo tipo di modelli di regressione. |
| |
Quindi, quando lancerete questa piattaforma, e tra un minuto vedremo alcune demo, ma velocemente, |
| |
All'inizio del lancio, si tratta semplicemente di chiedere informazioni sulla nostra risposta e sul tipo di modello che volevamo adottare. |
| |
Quindi può gestire sia risposte continue, come una valutazione a stelle, sia, quando si specifica una risposta continua, fornisce un filtro che consente di escludere alcune righe in base alla risposta. |
| |
E quando abbiamo una colonna di risposta nominale, selezioniamo il livello target. Quindi in questo caso, consiglieresti il nostro prodotto, sì o no. Modelleremo il... |
| |
modelleremo la raccomandazione uguale a no. |
| |
E se abbiamo una risposta a più livelli come blu, verde, giallo, sceglieremo il livello che vogliamo modellare e vedremo un esempio di questo tra un minuto. |
| |
Quindi, dopo aver specificato la risposta, forniremo alla piattaforma alcune informazioni sul tipo di modello che vogliamo adattare. |
| |
Quindi, quando effettuiamo la selezione delle variabili, useremo l'elastic net o il lasso? Entrambe sono tecniche di selezione delle variabili integrate nella regressione generalizzata. E come effettueremo la validazione? Vogliamo usare l'AIC o il BIC? |
| |
Inoltre, possiamo specificare i dettagli relativi alla matrice dei termini del nostro documento. Possiamo selezionare la ponderazione e anche il numero massimo di termini che desideriamo considerare. Quindi, se vogliamo considerare le 200 parole più frequenti, il valore è attualmente impostato a 200. |
| |
Quindi cosa succede quando lo avvii e premi il pulsante "Esegui"? In pratica fa tutto |
| |
devi farlo. Imposta correttamente i dati dietro le quinte in modo che tu non debba preoccuparti. Esegue la selezione delle variabili, quindi ora abbiamo un piccolo sottoinsieme di parole che riteniamo utili per prevedere la nostra risposta e presenta i risultati in un modo semplice |
| |
per interpretare il report, ed è abbastanza interattivo, come vedremo tra un attimo. Quindi prima era possibile farlo tramite |
| |
salvando la matrice termine-documento nel tuo set di dati, avviando tu stesso una piattaforma di regressione generalizzata, |
| |
ma non devi più farlo. È tutto, è tutto in termini di selezione ora. |
| |
Quindi, come facciamo a sapere cosa selezionare in base alle specifiche del modello? |
| |
I metodi di stima disponibili sono la rete elastica e il lazo. Il modo più semplice per ricordare la differenza tra questi |
| |
è che la rete elastica tende a selezionare gruppi di predittori correlati. Quindi in questo contesto, quando i nostri predittori sono tutte parole, |
| |
ciò significa che tenderà a selezionare gruppi di parole che tendono a comparire insieme. Quindi, se pensi a istruzioni e manuali, |
| |
Queste parole ricorrono spesso insieme a causa dei manuali di istruzioni. Pertanto, questi due predittori sarebbero altamente correlati e l'elastic net probabilmente li selezionerebbe entrambi, mentre il lasso probabilmente selezionerebbe "istruzioni" o "manuale", ma non necessariamente entrambi. |
| |
Tra i metodi di validazione, abbiamo l'AIC e il BIC. |
| |
Quindi, in linea di massima, l'AIC tende a selezionare eccessivamente i modelli e il BIC tende a selezionarli insufficientemente. Pertanto, nelle nostre specifiche, |
| |
Semplicemente, l'AIC tenderà a selezionare un insieme più ampio di parole, mentre il BIC ne selezionerà uno più ristretto. |
| |
Personalmente tendo a usare molto l'AIC nell'impostazione perché preferisco avere più parole del necessario piuttosto che meno, ma in realtà è una questione di preferenze. |
| |
E la ponderazione dei termini del documento... |
| |
intendo la ponderazione della matrice dei termini del documento. |
| |
Dipende davvero dal tuo problema. Quindi in questo esempio, |
| |
La parola "vernice" compare più volte nella recensione. Ciò potrebbe significare che il recensore era molto... |
| |
La vernice era molto importante per quel recensore e questo potrebbe essere significativo nel nostro modello di regressione, quindi vorremmo usare una ponderazione come la frequenza invece che binaria. |
| |
Quindi, una volta avviata la selezione dei termini, ti ritroverai in un posto come questo, dove abbiamo |
| |
Un riepilogo di tutti i documenti a sinistra e di tutte le parole che abbiamo selezionato a destra. Per ora tralascerò questa parte; sarà più facile da capire quando inizieremo la dimostrazione. |
| |
Un'altra cosa che riteniamo molto utile è la funzione di riepilogo: è possibile utilizzare la selezione dei termini per adattare una sequenza di modelli, che verranno poi riepilogati in alto, e si potrà passare da uno all'altro con facilità. E lo vedremo tra un attimo. |
| |
Diamo quindi un'occhiata alla piattaforma. |
| |
Quindi per prima cosa daremo un'occhiata a questo |
| |
Set di dati sugli incidenti aerei presente nella cartella dei dati di esempio di JMP. |
| |
Ogni riga della nostra tabella rappresenta un incidente. Sappiamo quanti danni ha subito l'aereo, che tipo di feriti ci sono stati e ne abbiamo una descrizione. Quest'ultima colonna descrive esattamente cosa è successo durante l'incidente. |
| |
Quindi avvieremo Text Explorer e, se non l'avete mai usato prima, a sinistra troverete i termini che ricorrono più frequentemente, e a destra le frasi che ricorrono più frequentemente, ovvero i gruppi di parole. |
| |
Quindi vogliamo usare queste parole per forse capire |
| |
che...cosa fa sì che un incidente provochi più, sai, più danni o forse lesioni più gravi. Quindi andremo al menu del triangolo rosso e chiederemo la selezione del termine. |
| |
Quindi ora vediamo questo lancio che stavamo osservando poco fa, e vorrei saperne di più sui danni, giusto? In particolare vorrei... potrei voler distinguere tra incidenti in cui l'aereo è stato distrutto e incidenti con danni minori, quindi selezioneremo il livello di danno da distruggere. |
| |
Vorrei precisare che questo arresto anticipato è una sorta di funzione che consente di risparmiare tempo. Quindi |
| |
quando eseguiamo la selezione delle variabili, può richiedere molto tempo per problemi molto più grandi. E se lasci questa casella di controllo selezionata, in un certo senso dirà |
| |
Pensiamo di avere un modello sufficientemente valido; quindi, procediamo e interrompiamo il processo in anticipo. Di solito disattivo questa opzione a meno che non sappia di avere un problema molto più grave. |
| |
Quindi lascerò il modello con elastic net, AIC e avvieremo l'esecuzione. |
| |
Quindi ora quello che sta succedendo in background è che ha creato i dati di cui avevo bisogno per adattare questo modello di regressione, e sta adattando il modello di regressione dietro le quinte, e ora ho il mio riepilogo. Quindi ogni |
| |
Ogni documento è riassunto in questo pannello di sinistra, quindi questo è il primo incidente aereo, questo è il secondo, che è vuoto. |
| |
Quindi, nel primo caso, l'aereo ha urtato un cumulo di neve a lato della pista. |
| |
E abbiamo evidenziato tutte le parole importanti, quindi le parole blu hanno coefficienti negativi, le parole arancioni hanno coefficienti positivi. |
| |
E se siamo interessati alle parole, possiamo guardare questo pannello a destra. Di solito preferisco ordinare per coefficiente, quindi basta cliccare in alto. |
| |
Quindi, in questo caso, è meno probabile che le parole con coefficienti negativi siano state distrutte. Quindi se |
| |
il documento contiene la parola atterraggio, se l'aereo è arrivato al punto in cui sta atterrando, probabilmente non si tratta di un incidente molto grave. Quindi è meno probabile che siano |
| |
distrutto. D'altro canto, possiamo considerare i termini più positivi, ovvero le parole che sono maggiormente associate alla distruzione dell'aereo. |
| |
E queste sono parole come fuoco, testimoni. Se stanno intervistando i testimoni per descrivere l'incidente, probabilmente significa che chi era sull'aereo non è stato in grado di rilasciare un'intervista. |
| |
Quindi fuoco, radar, rotazione, notte, queste sono tutte parole altamente associate a |
| |
con la distruzione. |
| |
Ora, forse ci interessa anche il livello di infortuni e, nello specifico, analizzeremo i livelli di infortuni più gravi. |
| |
E ripeteremo la selezione dei termini. |
| |
E per farla breve, accetterò questa risposta. |
| |
Quindi ora possiamo fare le stesse cose, ma concentrandoci sul livello di infortunio. |
| |
Quindi, se l'intervista include il capitano o l'atterraggio, probabilmente non si tratta di lesioni molto gravi. |
| |
Ma se, se di nuovo, menziona il radar, la notte, le montagne, queste sono parole molto più serie. Quindi possiamo passare rapidamente da una risposta all'altra e vedere quali parole sono predittive di queste due |
| |
livello di lesioni e livello di danni. |
| |
Vediamo quindi un altro esempio. |
| |
Questo è un argomento che mi sta particolarmente a cuore. Prima ho parlato di pizza come esempio, ora parleremo di birra. Si tratta ovviamente di cose che mi stanno molto a cuore. |
| |
Quindi quello che ho qui è che ho... ho scaricato una descrizione di ogni stile di birra, secondo alcune recensioni di birra |
| |
corpo. |
| |
Quindi ogni singola birra ha una descrizione. |
| |
E dice da dove proviene la birra. Quindi abbiamo... |
| |
Stati Uniti, Germania, Irlanda. |
| |
Utilizzare la selezione dei termini per visualizzare |