Modi migliori per aggregare e analizzare i dati


13

Avendo appena iniziato a insegnare a me stesso l'apprendimento automatico e l'analisi dei dati, mi ritrovo a colpire un muro di mattoni sulla necessità di creare e interrogare grandi serie di dati. Vorrei prendere i dati che ho aggregato nella mia vita professionale e personale e analizzarli, ma non sono sicuro del modo migliore per fare quanto segue:

  1. Come devo conservare questi dati? Eccellere? SQL? ??

  2. Qual è un buon modo per un principiante di iniziare a provare ad analizzare questi dati? Sono un programmatore di computer professionista, quindi la complessità non è nella scrittura di programmi ma più o meno specifica nel dominio dell'analisi dei dati.

EDIT: Scuse per la mia vaghezza, quando inizi a conoscere qualcosa è difficile sapere cosa non sai, lo sai? ;)

Detto questo, il mio obiettivo è quello di applicare questo a due argomenti principali:

  1. Metriche del team del software (si pensi alla velocità Agile, alla quantificazione del rischio, alla probabilità di un'iterazione completata con successo dato x numero di punti della storia)

  2. Apprendimento automatico (ad esempio si sono verificate eccezioni di sistema in un determinato set di moduli qual è la probabilità che un modulo lanci un'eccezione sul campo, quanto costerà, cosa possono dirmi i dati sui moduli chiave per migliorare che otterranno il miglior rapporto qualità-prezzo, prevedere quale parte del sistema l'utente dovrà utilizzare per iniziare a caricare i dati, ecc.).


Questo mi sembra molto vago. Che tipo di dati e che tipo di analisi? Inoltre, questo dovrebbe essere wiki della comunità se è soggettivo.
Shane,

Risposte:


19

Se hai set di dati di grandi dimensioni, quelli che fanno caricare lentamente Excel o Blocco note, allora un database è un buon modo per andare. Postgres è open-source e molto ben fatto, ed è facile connettersi con JMP, SPSS e altri programmi. In questo caso potresti voler provare. Non è necessario normalizzare i dati nel database. Altrimenti, CSV è favorevole alla condivisione.

Prendi in considerazione Apache Hive se hai più di 100 milioni di righe.

In termini di analisi, ecco alcuni punti di partenza:

Descrivi una variabile:

  • Istogramma
  • Statistiche riassuntive (media, intervallo, deviazione standard, min, max, ecc.)
  • Ci sono valori anomali? (maggiore di 1,5 volte l'intervallo quartile)
  • Che tipo di distribuzione segue? (normale, ecc.)

Descrivere la relazione tra le variabili:

  • Grafico a dispersione
  • Correlazione
  • Valori anomali? controlla la distanza di Mahalanobis

  • Trama mosaico per categorico

  • Tabella di emergenza per categoriale

Prevedi un numero reale (come il prezzo): regressione

  • Regressione OLS o tecniche di regressione di apprendimento automatico

  • quando la tecnica usata per predire è comprensibile dagli umani, questo si chiama modellazione. Ad esempio, una rete neurale può fare previsioni, ma generalmente non è comprensibile. È possibile utilizzare la regressione per trovare anche gli indicatori chiave di prestazione.

Prevedere l'appartenenza alla classe o la probabilità di appartenenza alla classe (come superato / fallito): classificazione

  • regressione logistica o tecniche di apprendimento automatico, come SVM

Metti le osservazioni in gruppi "naturali": raggruppamento

  • Generalmente si trovano osservazioni "simili" calcolando la distanza tra loro.

Inserisci gli attributi in gruppi "naturali": factoring

  • E altre operazioni a matrice come PCA, NMF

Quantificare il rischio = Deviazione standard o percentuale di volte in cui accadono "cose ​​cattive" x quanto sono cattive

Probabilità di una iterazione completata con successo dato x numero di punti trama = Regressione logistica

In bocca al lupo!


È stato fantastico. Grazie mille per questa risposta Mi hai dato un ottimo punto di partenza. Tutti i libri che consigli perché sembri "arrivare" dove sono.
Justin Bozonier,

sei il benvenuto. libri: per iniziare le statistiche in inglese semplice. Successivamente, analisi dei dati multivariati per capelli. Queste sono buone risorse web: itl.nist.gov/div898/handbook , statsoft.com/textbook
Neil McGuigan

4

Se stai osservando i guasti del sistema, potresti essere interessato al seguente documento che utilizza tecniche di apprendimento automatico per la diagnosi dei guasti su eBay. Può darti un'idea del tipo di dati da raccogliere o di come un team ha affrontato un problema specifico in un dominio simile.

Se hai appena iniziato, qualcosa come RapidMiner o Orange potrebbe essere un buon sistema software per iniziare a giocare con i tuoi dati abbastanza rapidamente. Entrambi possono accedere ai dati in vari formati (file csv, database, tra gli altri).


3

La tua domanda è così ampia che la risposta è: dipende. Tuttavia, per dare una risposta più utile, indicherò cosa penso sia comune nella ricerca.

La memorizzazione dei dati avviene molto spesso in file di testo. Quando si eseguono analisi statistiche, si lavora principalmente con una raccolta di un tipo di vettori. Questo può essere visto come una tabella e scritto in formato CSV. Il motivo per cui questi sono spesso memorizzati in testo semplice è perché semplicemente tutti gli strumenti sono in grado di leggerli ed è facile trasformarli.

Per quanto riguarda l'analisi, è un po 'più difficile essere specifici. Se è di 2 dimensioni, crea un grafico a dispersione. Se è ad alta dimensione, esegui PCA e vedi dove esistono i primi componenti principali per scoprire variabili importanti. Se si dispone di dati temporali, tracciarli. Tutto ciò è così generale che per essere utile devi davvero indicare meglio quali sono i tuoi dati.


Peter, mi hai battuto sul pugno! Sono completamente d'accordo con l'archiviazione dei dati come testo, anche se a seconda delle dimensioni (centinaia di milioni di obs) potrebbe essere necessario spostarsi in un database ridimensionabile della mappa (ad esempio, Pig, Cassandra o una delle opzioni NoSQL).
DrewConway,

Oh ok interessante! Quindi basta prendere i dati per ogni variabile e disporli in formato riga-colonna e arrivare al numero scricchiolio eh? Ci sono strumenti che dovrei guardare o dovrei semplicemente programmare qualcosa?
Justin Bozonier,

R è un toolkit / linguaggio di programmazione / libreria molto ampio (e gratuito) per le statistiche. Il mio preferito per la maggior parte delle cose è tuttavia Python con SciPy / NumPy
Peter Smit,

0

L'unica cosa in cui ROOT è veramente bravo è l'archiviazione di enormi quantità di dati. ROOT è una libreria C ++ utilizzata nella fisica delle particelle; viene inoltre fornito con i collegamenti Ruby e Python, quindi è possibile utilizzare i pacchetti in queste lingue (ad esempio NumPy o Scipy) per analizzare i dati quando si scopre che ROOT offre poche possibilità predefinite.

Il formato di file ROOT può archiviare alberi o tuple e le voci possono essere lette in sequenza, quindi non è necessario conservare tutti i dati contemporaneamente. Ciò consente di analizzare petabyte di dati, cosa che non vorresti provare con Excel o R.

La documentazione I / O ROOT può essere raggiunta da qui .

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.