2009-06-07 24 views
34

Sto cercando alcuni set di dati relativamente semplici per testare e confrontare diversi metodi di allenamento per reti neurali artificiali. Mi piacerebbe che i dati non richiedessero troppa pre-elaborazione per trasformarlo nel mio formato di input di un elenco di input e output (normalizzato a 0-1). Qualsiasi link apprezzato.Set di dati per la formazione sulla rete neurale

risposta

28

Perché non provare qualcosa di semplice come la funzione sin come i dati di allenamento? Dal momento che stai confrontando i metodi di allenamento e non ti interessa molto per cosa stai allenando la rete, dovrebbe funzionare ed essere facile da generare i dati di addestramento.

addestrare la rete utilizzando sin (x) dove x è l'ingresso e l'uscita è il valore della funzione. Un ulteriore vantaggio nel tuo caso è che il valore assoluto del risultato è già nell'intervallo 0-1. Funzionerebbe ugualmente con altre funzioni matematiche.

+0

Sì, questo è un grande punto. Inoltre, mi piacerebbe ancora qualche problema di dimensione superiore. Suppongo che potrei anche generarli dalle equazioni. Grazie. –

+1

@JeffThomas Mi piacerebbe sapere se qualcuno ha effettivamente compiuto l'approssimazione del SIN con NN. In tal caso, qual è stato il tuo errore finale e la configurazione di rete? –

3

Ho imparato ANNs come studente universitario usandole per eseguire l'OCR (Optical Character Recognition). Penso che questo sia un caso d'uso piacevole.

scansione in due pagine di testo, estrarre le lettere e formano gruppi di dati formazione/prova (ad esempio 8x8 pixel porta a 64 nodi di ingresso), etichettare i dati. Allenare la RNA e ottenere un punteggio utilizzando il set di dati di test. Modificare la topologia/i parametri di rete e ottimizzare la rete per ottenere il punteggio migliore.

47

https://archive.ics.uci.edu/ml è l'Università della California Irvine repository di set di dati di machine learning. È una risorsa davvero eccezionale e credo che siano tutti in file CSV.

+1

Ehi, è molto carino. Esattamente quello che stavo cercando. – Mumbleskates

11

Alcune risorse sono

  • La funzione sinc.

     +---- 
         | sin(x) 
         | -------  when x != 0 
         |  x 
    sinC = | 
         | 
         |  1   otherwise 
         +---- 
    
  • La funzione sin(x) come @adrianbanks detto.

  • Per testare qualche nuova modifica qualche algoritmo buone prove vecchie n-parità.

  • L'Iris set di dati, mano Semeion insieme di dati cifre scritte ecc, altre funzioni e molto altro ancora.

  • L'UCI Machine Learning Repository: archive.ics.uci.edu/ml/datasets.html

  • Ecco un'altra risorsa che ha molti set di dati di regressione: www.dcc.fc.up.pt/~ltorgo//Regression/DataSets.html. Otterrete molti di questi dal UCI ML Repository.
  • È possibile ottenere set di dati da https://www.kaggle.com/ per vari set di dati pratici.

Non penso che sia necessario un sacco di pre-elaborazione con questi. Come per le variabili categoriali, è possibile sostituirle con binario usando rapidamente un editor di testo della GUI. Ad esempio il set di dati Abalone ha un attributo categoriale, il Sesso, che ha tre valori "M" per il maschio, "F" per la femmina, "I" per il neonato. È possibile premere Ctrl + R nel vostro editor di testo e sostituire tutte le occorrenze di "M" con 1,0,0, tutte le occorrenze di "F" con 0,1,0 e tutte le occorrenze di "I" con 0,0,1 (considerando il file è in formato CSV). Ciò consentirà di sostituire rapidamente le variabili categoriali.

Se siete in R, quindi è possibile utilizzare la funzione normalizeData che viene fornito con il RSNNS package per scalare e normalizzare i dati in 0 e 1.

Se si è in altro ambiente come octave o matlab, è possibile investi del tempo per scrivere il tuo codice. Non sono a conoscenza delle funzioni disponibili in questi ambienti, utilizzo il mio codice per ridimensionare e/o normalizzare i dati.

Quando si utilizzano le funzioni, il lavoro è reso molto più semplice e una volta preparati i dati, salvare i dati modificati in un file.

Ricordare una cosa, l'obiettivo di formazione di una rete neurale non è solo quello di addestrare la rete in modo tale che funzioni bene su un determinato set di allenamento. L'obiettivo principale è addestrare la rete in modo tale da avere il miglior errore per i nuovi dati che la rete non ha visto (direttamente o indirettamente).

+1

La migliore risposta che ho trovato fino ad ora alle domande sui set di dati ...! –

Problemi correlati