2009-06-07 29 views
34

Estoy buscando algunos conjuntos de datos relativamente simples para probar y comparar diferentes métodos de entrenamiento para redes neuronales artificiales. Me gustaría obtener datos que no requieran demasiado preprocesamiento para convertirlo en mi formato de entrada de una lista de entradas y salidas (normalizado a 0-1). Cualquier enlace apreciado.Conjuntos de datos para entrenamiento de red neuronal

Respuesta

28

¿Por qué no probar algo simple como la función sin como los datos de entrenamiento? Como está comparando los métodos de entrenamiento y realmente no le importa para qué está entrenando la red, debería funcionar y ser fácil generar los datos de entrenamiento.

Entrenar la red utilizando sin (x) donde x es la entrada y la salida es el valor de la función. Un beneficio adicional en su caso es que el valor absoluto del resultado ya está en el rango 0-1. Igualmente funcionaría con otras funciones matemáticas.

+0

Sí, ese es un gran punto. Además, sin embargo, todavía me gustaría algunos problemas dimensionales superiores. Aunque creo que podría generarlos a partir de ecuaciones. Gracias. –

+1

@JeffThomas Me gustaría saber si alguien realmente logró la aproximación SIN con NN. Si es así, ¿cuál fue su error final y la configuración de red? –

3

Aprendí RNAs como estudiante al usarlos para realizar OCR (Reconocimiento óptico de caracteres). Creo que este es un buen caso de uso.

Escanee dos páginas de texto, extraiga las letras y forme conjuntos de datos de entrenamiento/prueba (por ejemplo, 8x8 píxeles conduce a 64 nodos de entrada), etiquete los datos. Entrenar la ANN y obtener una puntuación usando el conjunto de datos de prueba. Cambie la topología/parámetros de la red y sintonice la red para obtener el mejor puntaje.

47

https://archive.ics.uci.edu/ml es el repositorio de la Universidad de California Irvine de conjuntos de datos de aprendizaje automático. Es un gran recurso, y creo que todos están en archivos CSV.

+1

Oye, eso es bastante limpio. Exactamente lo que estaba buscando. – Mumbleskates

11

Algunos recursos son

  • La función sinc.

     +---- 
         | sin(x) 
         | -------  when x != 0 
         |  x 
    sinC = | 
         | 
         |  1   otherwise 
         +---- 
    
  • La función sin(x) como dijeron @adrianbanks.

  • Para probar alguna nueva modificación de algún algoritmo, las antiguas y buenas pruebas de paridad.

  • El conjunto de datos de Iris, el conjunto de datos de dígitos escritos a mano, etc., otras funciones y mucho más.

  • La UCI Machine Learning Repositorio: archive.ics.uci.edu/ml/datasets.html

  • Aquí es otro recurso que tiene muchos conjuntos de datos de regresión: www.dcc.fc.up.pt/~ltorgo//Regression/DataSets.html. Obtendrá muchos de estos desde el repositorio UCI ML.
  • Puede obtener conjuntos de datos de https://www.kaggle.com/ para obtener varios conjuntos de datos prácticos.

No creo que requiera mucho preprocesamiento con estos. Al igual que para las variables categóricas, puede reemplazarlas por binarias mediante un editor de texto GUI rápido. Por ejemplo, el conjunto de datos Abalone tiene un atributo categórico, el género, que tiene tres valores "M" para hombre, "F" para mujer, "I" para bebé. Puede presionar Ctrl + R en su editor de texto y reemplazar todas las apariciones de "M" con 1,0,0, todas las apariciones de "F" con 0,1,0 y todas las ocurrencias de "I" con 0,0,1 (considerando que el archivo está en formato CSV). Esto hará reemplazos rápidos de las variables categóricas.

Si se encuentra en R, entonces usted puede utilizar la función normalizeData que viene con el RSNNS package a escala y normalizar los datos en 0 y 1.

Si se encuentra en otro entorno como octave o matlab, puede solo invierta un poco de tiempo para escribir su código. No conozco las funciones disponibles en estos entornos, utilizo mi código para escalar y/o normalizar los datos.

Cuando utiliza funciones, su trabajo es mucho más fácil, y una vez que prepara los datos, guarde los datos modificados en un archivo.

Recuerde una cosa, el objetivo de entrenar una red neuronal no es solo entrenar la red de manera que funcione bien en un determinado conjunto de entrenamiento. El objetivo principal es capacitar a la red de modo que tenga el mejor error para los datos nuevos que la red no haya visto (directa o indirectamente).

+1

¡La mejor respuesta que he encontrado hasta ahora para preguntas sobre conjuntos de datos ...! –

Cuestiones relacionadas