Ho finito il mio precedente post sul blog al punto del mio progetto JMP Discovery Summit quando ho realizzato l'entità della ridondanza dei nomi di prodotti alimentari nei miei quasi quattro anni di registrazioni alimentari raccolte con l'app BodyMedia® Activity Manager. Mentre sapevo di aver mangiato varietà di cibi diversi preparati in modo diverso, la replica era anche un artefatto dell'uso di ricerche di parole chiave per individuare gli elementi giusti da aggiungere al mio diario alimentare. La parola chiave che ho usato per cercare un dato oggetto è variata e anche l'elemento corrispondente che ho scelto di registrare in un determinato pasto è variato, quindi ho spesso selezionato nomi di articoli diversi per alimenti molto simili.
In definitiva, volevo riassumere il numero di calorie che ho mangiato dagli articoli correlati e anche il totale delle calorie consumate dalla categoria di alimenti. Un primo passo sensato è stato quello di ridurre il numero di nomi di prodotti alimentari ridondanti nella mia tabella di dati. Volevo che il processo di ricodifica degli articoli alimentari fosse il più semplice possibile e, naturalmente, riproducibile attraverso lo scripting in modo da poter elaborare nuovi dati con un lavoro minimo.
Ho esplorato usando il JMP 11 Ricodifica della piattaforma per consolidare nomi di prodotti alimentari simili in un singolo valore pulito. Prima di iniziare la ricodifica, la mia tabella di dati conteneva 1.859 nomi di prodotti alimentari unici. Dal momento che i nomi dei prodotti alimentari sono stati visualizzati nella finestra Recode in ordine alfabetico, ho trovato difficile trovare articoli alimentari simili che non fossero elencati in ordine alfabetico. Ad esempio, se volessi cambiare il nome di articoli quasi identici elencati sotto nomi di marchi diversi, ho dovuto prima individuare tutti gli elementi correlati sparsi nel mio elenco di elementi (ad esempio, "CHIPS AHOY! Chewy Chocolate Chip Cookies", "Cookie, Chocolate Chip, Commerciale, 12% -17% di grassi, "" Cookie di biscotti al cioccolato Jason's Deli "," Biscotti con gocce di cioccolato PILLSBURY, pasta refrigerata ") e li rinominano in un valore comune pulito (ad esempio" Cookie, Chocolate Chip "). Per trovare tutti gli elementi correlati, ho cercato la tabella dei dati utilizzando la funzione Trova o usato Trova nel menu triangolo rosso Filtro dati.

Una volta individuati tutti gli elementi correlati, ho fatto scorrere la loro posizione nella finestra Recode e incollato il nome dell'elemento pulito. Ad un certo punto mentre lavoravo al mio set di dati, ho chiuso accidentalmente la finestra Recode senza salvare le mie modifiche. Invece di ripetere il mio lavoro, ho deciso di esplorare una strategia alternativa che speravo mi avrebbe permesso di classificare i miei articoli più rapidamente e facilmente assegnare nuovi articoli ai miei gruppi alimentari.
Ho usato la funzione Testo libero (che si trova nella scheda Multipla della finestra di dialogo di avvio della piattaforma Categoriale JMP) per estrarre l'elenco di parole uniche dai nomi dei miei prodotti alimentari. Ho rivisto l'elenco per rimuovere parole comuni o non specifiche e ho inserito le restanti parole in categorie di prodotti alimentari. Quindi, ho usato un loop JSL per cercare queste parole chiave nei nomi degli alimenti usando la funzione PatMatch in JMP. Se ho trovato una parola chiave, ho aggiunto la categoria di quella parola a un elenco delimitato da virgole in una colonna salvata con una proprietà di colonna a risposta multipla.
Mentre inizialmente pensavo che questo approccio avrebbe reso più semplice la classificazione di nuovi elementi, è risultato che il mio script ha richiesto molto tempo per cercare tutti gli elementi per tutte le parole chiave. Mi ci è voluto ancora più tempo per rivedere tutti gli alimenti classificati e verificare che fossero stati inseriti in categorie sensibili basate sulle parole chiave che contenevano. Mentre esaminavo la mia tabella elaborata, sono rimasto sbigottito nel notare molte corrispondenze di parole chiave non specifiche. In un esempio, "Chicken of the Sea Chunk Light Tuna" corrisponde a entrambe le categorie di prodotti Carne (parola chiave: pollo) e Pesce (parola chiave: pesce). Il creatore di latte non latte ha incluso la parola chiave caffè, causandone l'errata assegnazione al gruppo CoffeeMilk. Mi sono reso conto che avrei dovuto correggere alcuni dei nomi originali prima del pattern match e ripulire gli altri elenchi di categorie dopo la partita. Dato che avevo bisogno di riprodurre ogni passaggio attraverso lo scripting, avrei bisogno di scrivere JSL personalizzato o generare un JSL di pulizia dei dati con Recode, così ho deciso di tornare alla mia strategia di ricodifica originale.
Proprio in quel periodo, James Preiss, lo sviluppatore JMP recentemente assunto, ha iniziato a rinnovare Recode per JMP 12. Ho condiviso il mio caso di uso del Recode del registro degli alimenti con James e molte delle mie sfide si sono allineate con le richieste dei clienti già nella sua lista delle cose da fare. Non appena gli aggiornamenti di Recode iniziarono a emergere nelle build giornaliere di JMP 12, li ho testati con i miei file di registro degli alimenti e condiviso un sottoinsieme del mio elenco di articoli con il tester James and Recode Rosemary Lucas. Sono stato felice di vedere che molti dei passaggi che ho fatto manualmente in JMP 11 con una combinazione di Ricodifica, Filtro dati, Trova / Sostituisci e script JSL sono integrati in Recode in JMP 12.
Infatti, molto prima che gli aggiornamenti della piattaforma di Ricodifica fossero completati, sono stato in grado di creare una tabella di nomi di articoli puliti e raggruppati dalla mia lista di prodotti alimentari, in molto meno tempo di quanto avessi impiegato a cercare di creare script attorno al problema di corrispondenza delle parole chiave. Ho quindi aggiunto delle categorie per ogni nome di prodotto alimentare pulito e le ho unite nella tabella dei dati del registro degli alimenti unendomi al nome dell'elemento originale. Usare Recode mi ha aiutato a ridurre il numero originale di nomi unici nella mia tabella (1.859) a metà! Ora, quando importare i nuovi file di registro degli alimenti, torno brevemente a Recode per classificare eventuali nuovi articoli, aggiornare la mia tabella nome / categoria, unirla con i miei dati e sono pronto a procedere.
JMP 12 non sarà disponibile fino a marzo 2015, quindi ammetto di essere intenzionalmente vago riguardo alle molte nuove funzionalità della piattaforma Recode. Adoro gli aggiornamenti Recode e so che lo farai anche tu! (Cerca post più dettagliati su Recode con il metodo March e dopo che il software è disponibile.)
Nei miei prossimi post, presenterò alcuni dei grafici che ho creato per il mio poster Discovery Summit e mostrerò come li ho migliorati con l'aiuto di Xan Gregg , creatore della piattaforma Graph Builder e leader del gruppo Data Discovery in JMP.
Per ulteriori informazioni sul mio poster e sui miei interessi nell'analisi dei dati quantificati (QS), dai un'occhiata a primo post sul blog in questa serie. Post successivi condividono dettagli su come io esportato i miei file di riepilogo delle attività in formato Excel e File di registro alimentare dal software BodyMedia® Activity Manager e importati in JMP. Ho usato script JSL personalizzati per creare due tabelle di dati JMP, una con 1.316 righe di dati di attività e l'altra con 34.432 file di prodotti alimentari registrati in quasi quattro anni. Ho scritto un JMP aggiungere supporto di questi tipi di dati e file di registro degli alimenti in formato CSV dal sito Web MyFitnessPal gratuito.