Contabilità delle prove e dei risultati dell'esperimento


11

Sono un ricercatore e mi piace testare soluzioni praticabili, quindi tendo a fare molti esperimenti. Ad esempio, se sto calcolando un punteggio di somiglianza tra documenti, potrei voler provare molte misure. In effetti, per ciascuna misura potrebbe essere necessario eseguire diverse corse per testare l'effetto di alcuni parametri.

Finora, ho monitorato gli input delle esecuzioni e i loro risultati scrivendo i risultati in file con altrettante informazioni sugli input. Il problema è che il recupero di un risultato specifico a volte diventa una sfida, anche se provo ad aggiungere le informazioni di input al nome del file. Ho provato a utilizzare un foglio di calcolo con collegamenti ai risultati, ma questo non sta facendo una grande differenza.

Quali strumenti / processi usi per la contabilità dei tuoi esperimenti?


1
Volevo aggiungere le migliori pratiche del tag, ma non posso poiché non ho 150 punti reputazione. Ad essere sincero, non capisco come un nuovo arrivato possa effettivamente contribuire al sito con tutte queste regole. Vedo molte domande per le quali conosco le risposte, ma non posso rispondere o anche votare la risposta se è già lì.
saggezza delle macchine il

Penso che questa sia più una domanda di programmazione generica, quindi StackOverflow potrebbe essere migliore. Puoi includere uno snippet di ciò che stai cercando di fare e perché è lento e chiedere ottimizzazioni suggerite.
Sean Owen,

In realtà penso che opendata.stackexchange.com sarebbe una soluzione migliore.
Emre,

1
Di recente ho dato una rapida occhiata al mercato per i prodotti che mi avrebbero aiutato e voglio condividere le mie scoperte. Esistono due prodotti SAAS che possono aiutare un team di Data Science a condividere le analisi fatte in Python e R. Entrambi hanno un notebook IPython come IDE ed entrambi creano molte funzionalità per l'esecuzione e la condivisione di lavori. Li trovo entrambi quasi identici: [Domino Data Lab] [1] e [Sense.io] [2] [1]: dominodatalab.com [2]: sense.io
machine

C'è anche un ambiente di Machine Learning per Hadoop, che tiene traccia delle esecuzioni di lavoro; [h2o.ai] [3]. Non è pensato per essere uno strumento per semplificare il lavoro del team di dati, ma con alcune convenzioni di denominazione attente può aiutare molto. Questo si adatta maggiormente a [3]: h2o.ai
saggezza della macchina

Risposte:



5

Di recente ho riscontrato un problema simile: come gestire l'estrazione di una varietà di funzionalità da un set di dati di grandi dimensioni, senza sapere in anticipo quali sarebbero tutte. (Anche il calcolo ripetuto dei valori medi sarebbe costoso dal punto di vista computazionale.) Inoltre, come gestirò le previsioni in base a diversi set di funzionalità? Se avessi aggiunto una nuova funzionalità, come avrei potuto sapere quali modelli addestrare su nuove funzionalità? Potrebbe rapidamente nevicare in un enorme casino.

La mia soluzione attuale è di rintracciare tutto in un database NoSQL locale (MongoDB). Ad esempio, potrei avere una raccolta features, ciascuna delle quali ha un nome, una descrizione di come è stata calcolata la funzione, il file python che ha eseguito l'estrazione, ecc.

Allo stesso modo, una raccolta modelsinclude modelli eseguiti sui dati. Ogni voce potrebbe avere un nome, un elenco di funzioni utilizzate per addestrare il modello, i suoi eventuali parametri, i valori previsti su un set di test tenuto, le metriche su come il modello ha funzionato, ecc.

Dal mio punto di vista, questo ha una serie di vantaggi:

  • Salvando le previsioni, posso usarle in seguito nelle previsioni dell'ensemble.
  • Poiché tengo traccia di quali funzionalità sono state utilizzate, so quali devono essere riqualificate mentre estraggo più funzionalità.
  • Salvando le descrizioni dei modelli, mi assicuro di sapere sempre cosa ho provato. Non devo mai chiedermi: "Ho provato LASSO con i parametri di regolarizzazione impostati dal CV di ricerca della griglia?" Posso sempre cercarlo e vedere quanto successo ha avuto.

Dalla tua domanda, sembra che potresti adattare questo approccio al flusso di lavoro del tuo problema. Installa Mongo o un altro database di tua scelta, quindi salva ogni esecuzione sperimentale, i suoi input, i suoi risultati e qualsiasi altra cosa tu possa voler tracciare nel corso del progetto. Questo dovrebbe essere molto più facile da interrogare rispetto a un foglio di calcolo, almeno.


vorrei votare ma non mi è permesso.
saggezza della macchina
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.