View
11
Download
0
Category
Preview:
Citation preview
Víctor Rubio Torroba
Angel Luis Rubio García
Facultad de Ciencias, Estudios Agroalimentarios e Informática
Grado en Ingeniería Informática
2014-2015
Título
Director/es
Facultad
Titulación
Departamento
TRABAJO FIN DE GRADO
Curso Académico
Inteligencia Artificial: estudio comparativo de herramientas y entornos de simulación existentes con
aplicación en el ámbito empresarial
Autor/es
© El autor© Universidad de La Rioja, Servicio de Publicaciones, 2015
publicaciones.unirioja.esE-mail: publicaciones@unirioja.es
Inteligencia Artificial: estudio comparativo de herramientas y entornos de simulación existentes con aplicación en el ámbito empresarial , trabajo fin de
gradode Víctor Rubio Torroba, dirigido por Angel Luis Rubio García (publicado por la
Universidad de La Rioja), se difunde bajo una LicenciaCreative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.
Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los ᬁ
titulares del copyright.
INTELIGENCIA ARTIFICIAL: ESTUDIO COMPARATIVO DE
HERRAMIENTAS Y ENTORNOS DE SIMULACIÓN
EXISTENTES CON APLICACIÓN EN EL ÁMBITO
EMPRESARIAL
VICTOR RUBIO TORROBA 2
Resumen La ciudad de Sevilla dispone de un servicio de alquiler de bicicletas denominado SEVICI. Este
servicio busca poner a disposición de todos los habitantes y visitantes de Sevilla la posibilidad
de desplazarse a través de un medio de transporte que proporciona numerosas ventajas tanto
para el medio ambiente como para la salud del usuario. La gran cantidad de población y turistas
en Sevilla puede llegar a proporcionar problemas para atender a tal demanda de usuarios, por
lo que resultaría de gran ayuda disponer de algún mecanismo para gestionar dicha demanda.
El Big Data, y más concretamente el Machine Learning o aprendizaje automático, permite crear
programas capaces de generalizar comportamientos a partir de información suministrada en
forma de ejemplos también denominado como un proceso de inducción de conocimiento.
Gracias a esta rama de la inteligencia artificial podemos entrenar un modelo al cual
suministraremos información tanto del servicio de alquiler ya mencionado, como de otros
agentes externos que se crean que pueden ser influyentes en el alquiler de bicicletas por parte
de usuarios, para así poder conseguir predicciones sobre la demanda en tiempo real de dicho
servicio.
Para ello, en primer lugar ha sido necesario recoger todos estos datos lo cual no se ha
conseguido de manera directa en todos los casos. Tanto para almacenar dichos datos como para
adecuarlos correctamente a los intereses del proyecto se ha utilizado la distribución Cloudera
CDH de Hadoop. Una vez estos datos han sido adaptados al problema a resolver, se ha realizado
un estudio en profundidad de cada uno de ellos, analizando la influencia que podían tener para
nuestro problema a resolver; lo cual se ha realizado con el lenguaje de programación para
análisis estadístico R.
Finalmente, tras la selección de los datos relevantes para el proyecto, se ha creado y entrenado
una red neuronal capaz de aprender de dichos datos y llegar a predicciones reales sobre la
demanda de alquileres. Para ello ha sido necesario realizar análisis y pruebas sobre las múltiples
posibilidades de ajustes de dicha red, de forma que esta genere predicciones lo más precisas
posibles para este problema concreto. Todo este trabajo se ha realizado mediante tareas de
programación utilizando el lenguaje Python y la librería de aprendizaje automático PyBrain.
VICTOR RUBIO TORROBA 3
Abstract Seville city has bicycle rental service called SEVICI. This service aims to make available to all
residents and visitors of Seville the possibility of travelling through a conveyance which provides
a lot of benefits to both the environment and the health of the user. The large population and
tourists in Seville could provide problems to meet this demand of users, that is why it would be
helpful to have some mechanism to manage this demand.
Big Data and more concretely Machine Learning, can create programs able to generalize
behaviors from information provided as examples, also referred as a knowledge induction
procedure. Thanks to this branch of artificial intelligence we are able to train a model whom we
will provide information of the rental service already mentioned, as other external agents that
could be influential in the rental of bicycles by users, so we can get predictions about the real-
time demand of this service
To be able to get this done, firstly it was necessary to collect all this data which has not been
achieved directly in all cases. Both for storing this data as for properly adapt them to the
interests of the project, Hadoop´s distribution Cloudera CDH has been used. Once all this data
has been adapted to the problem to be solved, a thorough study of all this data has been done,
analyzing the impact they could have on the problem to be solved; which was carried out with
the statistical analysis programming language R.
Finally, after the selection of the relevant data for the project, a neural network has been created
and trained to be able to learn from all this data and come up with realistic predictions of bicycle
rental demand. To get this done it has been necessary to make analysis and testing of all the
multiple possibilities of the different settings of this network, so it generates predictions as
accurate as possible for this particular problem. All this work was performed using the Python
language and machine learning library PyBrain.
VICTOR RUBIO TORROBA 4
Índice de contenido 1. Introducción .............................................................................................................................. 7
1.1 Contexto .............................................................................................................................. 7
1.2 ¿Qué es el Big Data? ............................................................................................................ 7
1.3 ¿Qué tipos de datos puedo explorar y qué técnicas puedo utilizar? .................................. 7
1.4 Problema a resolver ............................................................................................................ 9
2. Alcance del proyecto ................................................................................................................. 9
2.1 Hitos del proyecto ............................................................................................................. 14
2.2 Reuniones ......................................................................................................................... 14
3. Problema detallado ................................................................................................................. 14
4. Tecnologías a utilizar ............................................................................................................... 17
4.1 Cloudera CDH .................................................................................................................... 17
4.2 HDFS (Hadoop Distributed File System) ............................................................................ 18
4.3 MapReduce ....................................................................................................................... 18
4.4 Otras herramientas ........................................................................................................... 19
5. Selección de variables ............................................................................................................. 20
5.1 Obtención de eventos: MapReduce .................................................................................. 20
5.2 Transformación de eventos: Parser Java .......................................................................... 20
6. Preprocesado .......................................................................................................................... 25
6.1 ETAPAS DEL A.E.D. ............................................................................................................. 25
6.2 Variable RENTS (alquileres de bicicletas) .......................................................................... 26
6.2.1 Medidas descriptivas .................................................................................................. 26
6.2.2 Histograma ................................................................................................................. 27
6.2.3 Gráfico de densidad .................................................................................................. 27
6.2.4 Diagramas de dispersión ............................................................................................ 28
6.2.5 Matriz de covarianzas................................................................................................. 30
6.2.6 Correlaciones .............................................................................................................. 32
7. Transformación de variables ................................................................................................... 34
8. Algoritmos de Data Mining ..................................................................................................... 36
8.1 Estructura de una red neuronal ........................................................................................ 36
8.1.1. Capas de una red neuronal ....................................................................................... 37
8.1.2 Función de errores ..................................................................................................... 37
8.2 Metodología a utilizar ...................................................................................................... 39
8.3 Pruebas iniciales ................................................................................................................ 39
8.4 Elección de las funciones de activación de las capas ................................................... 43
VICTOR RUBIO TORROBA 5
8.5 Elección del número de capas y neuronas de la red neuronal .................................... 43
8.6 Ajuste de parámetros del modelo ..................................................................................... 46
9. Seguimiento ........................................................................................................................... 51
10. Conclusiones.......................................................................................................................... 53
11. Agradecimientos ................................................................................................................... 54
12. Bibliografía ............................................................................................................................ 55
Índice de tablas
Tabla 1: Estimación temporal de tareas ...................................................................................... 10
Tabla 2: Medidas descriptivas de la variable RENTS ................................................................... 26
Tabla 3: Cuantiles de la variable RENTS ...................................................................................... 26
Tabla 4: Matriz de covarianzas de la variable RENTS 1/2 ........................................................... 31
Tabla 5: Matriz de covarianzas de la variable RENTS 2/2 ........................................................... 31
Tabla 6: Matriz de correlaciones de la variable RENTS 1/2 ......................................................... 33
Tabla 7: Matriz de correlaciones de la variable RENTS 2/2 ......................................................... 33
Tabla 8: Comparación de errores en red neuronal arbitraria 1/2 .............................................. 41
Tabla 9: Comparación de errores en red neuronal arbitraria 2/2 .............................................. 42
Tabla 10: Comparativa de los errores con diferentes funciones de activación .......................... 44
Tabla 11: Resultados de las funciones de activación escogidas .................................................. 44
Tabla 12: Evaluación de resultados de la estructura de red 1 .................................................... 45
Tabla 13: Evaluación de resultados de la estructura de red 2 .................................................... 45
Tabla 14: Evaluación de resultados de la estructura de red 3 .................................................... 46
Tabla 15: Tabla de evaluación de resultados del parámetro deltamax ...................................... 47
Tabla 16: Tabla de evaluación de resultados del parámetro etaminus ...................................... 47
Tabla 17: Tabla de evaluación de resultados del parámetro deltamin ....................................... 47
Tabla 18: Contraste entre la estimación inicial y el coste real de tareas .................................... 52
VICTOR RUBIO TORROBA 6
Índice de figuras Figura 1: Tipos de datos más comunes en Big Data ...................................................................... 8
Figura 2: Estructura de descomposición de tareas del proyecto ................................................ 11
Figura 3: Diagrama Gantt 1/2 ...................................................................................................... 12
Figura 4: Diagrama Gantt 2/2 ...................................................................................................... 13
Figura 5: Infraestructura de CDH ................................................................................................ 17
Figura 6: Distribución de datos de HDFS ..................................................................................... 18
Figura 7: Distribución de la computación en MapReduce .......................................................... 19
Figura 8: Gráfico de la variable RENTS ........................................................................................ 26
Figura 9: Histograma de la variable RENTS ................................................................................. 27
Figura 10: Función de densidad de la variable RENTS ................................................................ 28
Figura 11: Gráfico de dispersión fragmentado de la variable RENTS .......................................... 29
Figura 12: Gráfico de dispersión de todas las variables .............................................................. 30
Figura 13: Ejemplo de datos normalizados ................................................................................. 35
Figura 14: Estructura de una red neuronal ................................................................................. 36
Figura 15: Diferencias entre distintos ratios de aprendizaje ...................................................... 39
Figura 16: Tabla clasificatoria del proyecto de alquiler de bicicletas de Kaggle ......................... 48
Figura 17: Contraste entre valores estimados y predichos de alquileres ................................... 50
Índice de fragmentos de código Código 1: Clases Map y Reduce utilizadas para la obtencion de eventos ................................... 21
Código 2: Código utilizado para obtener el número de eventos por día .................................... 22
Código 3: Código utilizado para parametrizar los eventos 1/2 ................................................... 23
Código 4: Código utilizado para parametrizar los eventos 2/2 ................................................... 24
Código 5: Implementación de la red neuronal arbitraria............................................................ 40
VICTOR RUBIO TORROBA 7
1. Introducción 1.1 Contexto
Big Data es desde hace algo más de un año el término de moda dentro del mundo de la
informática. Dicho de otra manera, durante 2012 y parte de 2013 el 60% de los artículos de
opinión de tecnología avanzada hablan de Big Data como la nueva estrategia indispensable para
las empresas de cualquier sector, declarando que aquéllos que no se sumen a este nuevo
movimiento se quedarán “obsoletos” en cuanto a la capacidad de reacción en sus decisiones,
perdiendo competitividad y oportunidades de negocio contra su competencia.
1.2 ¿Qué es el Big Data?
Es un término que hace referencia a una cantidad de datos tal que supera la capacidad del
software habitual para ser capturados, gestionados y procesados en un tiempo razonable. El
volumen de los datos masivos crece constantemente. En 2012 se estimaba su tamaño de entre
una docena de terabytes hasta varios petabytes de datos en un único conjunto de datos. Para
entenderlo correctamente, se suele describir mediante 5 Vs:
Volumen: Se generan enormes cantidades de datos cada segundo, por ejemplo mensajes de
twitter, fotos, videoclips…
Velocidad: Referida a la velocidad a la que se generan los datos y son distribuidos.
Variedad: Estos datos corresponden a diferentes tipos de datos, tanto estructurados como no
estructurados.
Veracidad: referida a la autenticidad o fidelidad de los datos, lo cual no siempre se cumple.
Valor: Si somos capaces de acceder a todos estos datos, pero no somos capaces de
transformarlos en algo significativo, estos perderán toda su utilidad.
1.3 ¿Qué tipos de datos puedo explorar y qué técnicas puedo
utilizar?
Realmente, uno se debería preguntar ¿qué problema estoy tratando de resolver? Realmente no
se puede decir con total certeza que datos son útiles y cuáles no lo son, pero siempre viene bien
tener un “framework” base, como se recoge en la Figura 1.
VICTOR RUBIO TORROBA 8
Figura 1: Tipos de datos más comunes en Big Data
Uno de los métodos más utilizados en el Big Data es el aprendizaje automático (Machine
Learning). En ciencias de la computación el aprendizaje automático o aprendizaje de máquinas
es una rama de la inteligencia artificial cuyo objetivo es desarrollar técnicas que permitan a las
computadoras aprender. De forma más concreta, se trata de crear programas capaces de
generalizar comportamientos a partir de una información no estructurada suministrada en
forma de ejemplos. Es, por lo tanto, un proceso de inducción del conocimiento.
Dentro del aprendizaje automático hay distintos tipos de algoritmos; en este proyecto nos
centraremos en el aprendizaje no supervisado. En este algoritmo todo el proceso de modelado
se lleva a cabo sobre un conjunto de ejemplos formado solo por entradas, se desconoce el
resultado, por lo que el sistema tiene que ser capaz de reconocer patrones para los datos de
entrada suministrados y así poder “etiquetarlas”.
Finalmente, el paradigma de aprendizaje y procesamiento que se quiere utilizar para obtener
resultados tangibles va a ser el de redes neuronales artificiales, las cuales están inspiradas en el
comportamiento del sistema nervioso.
VICTOR RUBIO TORROBA 9
1.4 Problema a resolver
Sevilla es una ciudad con gran población y turismo, por lo que es importante que servicios como
el alquiler de bicicletas urbano funcionen correctamente. En este proyecto nos centraremos más
concretamente en la demanda de dicho alquiler; es primordial que siempre haya bicicletas
disponibles para aquellas personas que quieran contratar el servicio, pero el problema no acaba
ahí, ya que la solución más obvia seria aumentar dicho número de vehículos hasta una cantidad
desmesurada, sino en que dicha suma no difiera del alquiler real en una gran medida.
La demanda del servicio no depende únicamente de factores tan evidentes como la población
de Sevilla, sino que existen otras circunstancias que afectan a la demanda no tan evidentes como
pueden ser la meteorología, el calendario de eventos de la ciudad…
El objetivo final de este proyecto es conseguir estimar el volumen de bicicletas alquiladas en la
ciudad de Sevilla a partir de los factores ya mencionados, y para ello se utilizaran tecnologías
relacionadas con los términos Big Data y Machine Learning ya definidos previamente.
Este problema se ha planteado en la empresa Dimartel donde he realizado las prácticas
curriculares y he investigado acerca de los campos de desarrollo e investigación de la inteligencia
artificial, y más concretamente del Big Data. Esta disciplina es capaz de obtener conocimiento a
partir del análisis y el descubrimiento de patrones recurrente dentro de cantidades inmensas de
datos, por lo que la empresa estaba interesada en abordar un problema real y ver qué era capaz
de obtener a partir de únicamente un conjunto de datos. Únicamente faltaba el problema a
resolver u optimizar, y ante la falta de clientes reales se realizó una búsqueda para obtener un
problema “de prueba” con datos reales, y finalmente se decidió que se iba a trabajar con el
servicio de alquiler de bicicletas de Sevilla.
2. Alcance del proyecto Con este trabajo se pretende por un lado ganar experiencia al realizar un proyecto de
dimensiones razonables y en un entorno real, así como también profundizar en el campo del Big
Data y del aprendizaje automático, con el objetivo de lograr un modelo predictivo con un error
razonable para dichas dimensiones, de forma que se logren predicciones con un grado de
precisión aceptable.
El alcance de proyecto se va a definir de acuerdo a su estructura de descomposición de trabajo
recogida en la Figura 2. Además el cronograma presente en la Figura 3 y Figura 4 contiene la
localización de cada paquete de trabajo en el calendario. Las tareas principales a realizar y su
estimación temporal están reflejadas en la Tabla 1.
1.1 Tecnologías a utilizar: Análisis y elección de las tecnologías y herramientas a usar en el
proyecto; diseño del Data Warehouse
1.2 Selección de variables: Identificar datos más relevantes, recopilar e integrar la
información, aplicar técnicas de muestreo adecuadas, selección primaria de variables.
1.3 Preprocesado: Análisis ocular, análisis exploratorio de datos, identificar correlaciones,
eliminar variables no útiles.
VICTOR RUBIO TORROBA 10
1.4 Transformación: Conversión de atributos (Discretización o normalización), reducción o
aumento de dimensionalidad.
1.5 Algoritmos de Data Mining: Creación y validación de modelos o reglas.
1.6 Interpretación y evaluación: Verificar, identificar y evaluar los resultados obtenidos.
2.1 Planificación del proyecto: Objetivos del proyecto, tareas a realizar y estimación
temporal.
2.2 Seguimiento: Control de la evolución del proyecto, contraste entre el coste temporal
estimado inicialmente y el realizado, asi como de las desviaciones con respecto a la
planificación si las hubiere.
2.3 Memoria: Confección de un documento, de acuerdo a los requisitos establecidos por la
Universidad de La Rioja, con toda la información asociada al proyecto realizado.
3.1 Material para la presentación: Desarrollo de todos los elementos a utilizar en la
exposición del proyecto.
3.2 Exposición: defensa del proyecto ante el tribunal, de una duración aproximada de 15
minutos.
Código Tarea Estimación (Horas)
1.1 Tecnologías a utilizar 20
1.2 Selección de variables 15
1.3 Preprocesado 30
1.4 Transformación 30
1.5 Uso de algoritmos de Data Mining 80
1.6 Interpretación y evaluación 30
2.1 Planificación del proyecto 20
2.2 Seguimiento 20
2.3 Memoria 25
3.1 Material para la presentación 20
3.2 Exposición 10
Total 300
Tabla 1: Estimación temporal de tareas
VICTOR RUBIO TORROBA 11
Figura 2: Estructura de descomposición de tareas del proyecto
VICTOR RUBIO TORROBA 12
Figura 3: Diagrama Gantt 1/2
VICTOR RUBIO TORROBA 13
Figura 4: Diagrama Gantt 2/2
1https://data.lab.fiware.org/dataset/alquiler-de-bicicletas
VICTOR RUBIO TORROBA 14
2.1 Hitos del proyecto Los principales hitos del proyecto son los siguientes:
Presentación de la planificación: Semana 2 (9-15 febrero)
Data Warehouse: Semana 4 (23 febrero-1 marzo)
Final del estudio inicial: Semana 7 (16-22 marzo)
Obtención del modelo: Semana 16 (18-24 mayo)
Entrega del proyecto: Semana 21 (24-30 junio)
Defensa del proyecto: Semana 24 (8-15 julio)
2.2 Reuniones Se llegó al acuerdo con el tutor de la empresa de realizar reuniones semanales, generalmente el
primer día de cada semana, con el objetivo presentar los avances obtenidos, las tareas que se
van a realizar y discutir el procedimiento de realizarlas.
Por otro lado, se acordarán reuniones con el tutor de la universidad, correspondientes a la
consecución de los hitos ya mencionados en la planificación, además de una reunión cada dos
semanas de control de proceso.
3. Problema detallado La finalidad de este proyecto es realizar una aproximación en el mayor grado posible de un
proyecto real de Big Data y Machine Learning, pero dada la falta de experiencia, se elige un
problema que podríamos denominar de “testeo”; es decir, al no haber un cliente real se eliminan
riesgos como pueden ser el abandono por parte del cliente, presentación de los entregables en
los plazos solicitados por dicho cliente u otros problemas más propios del ámbito del modelado
como el llegar a un nivel determinado de precisión por parte del modelo para satisfacer los
requisitos del cliente. El hecho de que el problema no sea real, no exime al desarrollador de la
imposición de responsabilidades y toma de decisiones asociadas al proyecto, así como de lograr
un producto con un nivel de calidad razonable.
Dado que el problema a resolver es la obtención de un modelo predictivo del alquiler de
bicicletas de Sevilla, nos encontramos con la necesidad de obtener tanto la información de los
alquileres de bicicletas, como de otros elementos que en primera instancia puedan tener
influencia sobre dicha actividad; temperatura, precipitaciones, rachas de viento, eventos que
hayan tenido lugar…
A la hora de realizar un modelado es importante tener una buena base de datos de
entrenamiento para el modelo, pero es igual de importante conseguir otra base de datos igual
de significativa para el testeo de dicho modelo, de forma que el modelo no se sobreajuste y
“aprenda” a generalizar. En este caso hemos obtenido los mismos datos de las mismas fuentes
pero para el año 2013, esta última base de datos será usada para el testeo mientras que los
datos referentes a 2012 serán usados para el entrenamiento del modelo.
La información asociada al alquiler de bicicletas la encontramos en la página: fiware.org1, en
dicha web encontramos una tabla con información sobre la fecha, número de suscriptores a
largo plazo, suscriptores a corto plazo, tarjetas nuevas y bicicletas alquiladas.
1http://www.tiempoensevilla.es/wxdatasummary.php?year=2012&data=mintemp 2http://onsevilla.com/archivo-2012 3http://es.wikipedia.org/wiki/Hopfield_%28RNA%29 4http://es.wikipedia.org/wiki/Propagaci%C3%B3n_hacia_atr%C3%A1s
VICTOR RUBIO TORROBA 15
Los datos atmosféricos han sido extraídos página web tiempoensevilla.com1; estos a su vez han
sido extraídos de la página oficial de la AEMET. En este problema nos centraremos en los datos
de temperatura máxima, media, mínima, precipitaciones, nivel de humedad, y rachas de viento.
Por último, y quizás el trabajo más laborioso tanto de obtención de la información, como de su
procesamiento, son los eventos que hayan tenido lugar en Sevilla en el año 2012 y 2013. Esta
información ha sido extraída de la página onsevilla.com2, donde podemos encontrar una lista
con todos los eventos. El principal problema encontrado es que estos eventos no contenían su
fecha de una forma directa, por lo que se tuvo que visitar cada link de manera individual y
extraer su información, aumentando así el coste temporal previsto inicialmente.
A la hora de realizar el modelo, el paradigma de aprendizaje a utilizar será la red neuronal,
el cual ha resurgido a partir de los años 80 gracias al desarrollo de la red de Hopfield 3 y el
algoritmo de aprendizaje de retropropagación4, utilizado en los perceptrones multicapa.
Las principales ventajas de usar redes neuronales son:
Auto organización: la red neuronal crea su propia representación de la información,
liberando de esa tarea al usuario
Tolerancia a fallos: debido a que almacena la información de forma redundante
Flexibilidad: resistente a ruidos y otros cambios no importantes en la entrada
Tiempo real: dado que la estructura de una red neuronal es paralela, se pueden obtener
respuestas en tiempo real ante los eventos de entrada.
Finalmente cabe destacar la existencia de “dificultades” o limitaciones que puedan afectar a la
calidad del producto final.
En primer lugar, el proyecto tiene que ser realizado en un espacio de tiempo limitado,
generalmente estos proyectos suelen durar años, y el hecho de que este proyecto tenga una
duración “corta” en comparación a los anteriores, limita las posibilidades de probar nuevos
algoritmos o combinaciones de estos, ajustes más detallados del modelo, entre otras. En
proyectos reales, la duración del proyecto se estima principalmente en función del volumen de
datos y de la precisión que el cliente desea en dicho modelo.
Por otro lado, el tamaño de la base de datos es pequeño, o incluso muy pequeño, en
comparación con otros proyectos del ámbito del Big Data. Esto tiene una repercusión directa en
el modelo; aunque esto no sea siempre cierto, a la hora de entrenar un modelo basado en redes
neuronales, una mayor cantidad de datos permite a la red neuronal aprender operaciones más
complejas y así aumentar el grado de ajuste de dicha red con respecto a nuestro problema. Esto
proporciona grandes beneficios en el caso de que dicho modelo se sobreajuste; esto es, que
pierda la capacidad de generalizar, ya que la finalidad de un modelo es que sea capaz de
responder de una forma más o menos correcta, ante situaciones distintas (que no se encuentren
presentes en la base de datos de testeo), por lo que si dicha red neuronal se sobreajusta, el
algoritmo de aprendizaje puede quedar ajustado a unas características muy específicas de los
datos, que no tengan ninguna relación o importancia en la función objetivo.
1http://blogthinkbig.com/mare-nostrum-big-data/
VICTOR RUBIO TORROBA 16
Otra de las limitaciones encontradas en este proyecto es la infraestructura hardware disponible;
las grandes empresas o equipos disponen de distintos clústeres de servidores, como puede ser
la supercomputadora Mare Nostrum1 núcleo del Centro de Supercomputación de Barcelona.
Esto permite por ejemplo un procesamiento de datos mucho más completo en muy poco
tiempo, o también la posibilidad de entrenar distintos modelos en paralelo, disminuyendo en
gran medida los costes asignados a la etapa de modelado, así como entrenar redes más
complejas (Deep Learning, o en nuestro caso las Deep Neural Networks, formadas por múltiples
capas ocultas), o trabajar con una mayor cantidad de dimensiones. En este proyecto al ser la
base de datos pequeña no se produce, pero en proyectos de mayor envergadura hay que tener
muy presente la maldición de la dimensionalidad. En la empresa donde se realiza el proyecto se
dispone de un único servidor, con una capacidad de procesamiento pequeña para lo que suele
ser normal en equipos de este ámbito.
Finalmente, y quizás la limitación más importante es la inexperiencia del ejecutor del proyecto,
tanto a la hora de realizar el proyecto en sí, como en los conocimientos necesarios para la
creación y ajuste del modelo. Si tomamos como referencia proyectos reales, el equipo suele
estar formado por matemáticos, estadísticos e informáticos, ya que el trabajo informático como
tal no suele ser tan complicado como un buen preprocesado de datos, selección de las variables
y la posterior creación y ajuste del modelo. En nuestro caso por ejemplo, se podrían haber
implementado otras funciones de activación, otros tipos de funciones de entrenamiento, o
incluso combinar distintos algoritmos con la propia red neuronal: las posibilidades son infinitas.
Para conseguir un buen modelo basado en una red neuronal es necesario comenzar realizando
un análisis de las tecnologías o infraestructuras a utilizar; en especial para el Data Warehouse o
almacén de datos, lo cual es recogido en el apartado 4 de esta memoria. Después, se llevará a
cabo una fase inicial de selección de aquellos datos o variables a usar para la obtención de dicho
modelo (sección 5) y tras dicha elección se procederá a un procesado inicial de estos datos con
el fin de obtener las posibles relaciones que tengan entre ellos, o el grado de influencia de cada
uno de ellos en nuestra variable de salida, u objetivo a predecir, mostrado en el apartado 6.
Previo a comenzar con la implementación de la red neuronal, es necesario realizar una
transformación de las variables para proporcionar a esta red datos “correctos”, o en un formato
adecuado, para obtener el mejor rendimiento posible, esto corresponde al apartado 7 de la
memoria. Una vez realizada esta fase menos “práctica” se comenzara con la implementación de
la red neuronal.
A la hora de implementar una red neuronal hay que tener en cuenta diversos factores como el
tipo de neuronas, capas, funciones de activación o métodos de entrenamiento de los que se
hablarán más adelante, por lo que es necesario un análisis exhaustivo de dichas características
para así intentar que las predicciones sean lo más exactas posibles; todo este estudio está
contenido en la sección 8 de este documento.
Finalmente, se llevara a cabo una fase de interpretación y evaluación de resultados con algún
otro proyecto similar para conocer si los errores obtenidos con nuestra red neuronal son
aceptables o por el contrario, si se pueden mejorar; sección 9.
VICTOR RUBIO TORROBA 17
4. Tecnologías a utilizar La elección de las herramientas y tecnologías a utilizar fue responsabilidad del propio alumno;
En el periodo de prácticas se había realizado un análisis de las distintas herramientas
disponibles, y tras ponerlas en conformidad con la empresa, se procedió a su instalación y uso.
Para el almacén de datos (Data Warehouse), así como para el modelado y preprocesado se
utilizará la distribución Cloudera de Hadoop, la cual integra diversas herramientas de Hadoop.
4.1 Cloudera CDH
Distribución más popular, completa y testeada de Apache Hadoop y de sus proyectos
relacionados. Su infraestructura se puede ver en la Figura 5.
Ofrece de forma unificada SQL interactivo, búsquedas interactivas, control de acceso basado en
roles, así como procesamiento por lotes.
Figura 5: Infraestructura de CDH
VICTOR RUBIO TORROBA 18
4.2 HDFS (Hadoop Distributed File System)
Sistema de archivos distribuido tolerante a fallos y con mecanismos de recuperación ante estos,
diseñado para convertir un cluster de servidores industriales en un pool de almacenamiento
escalable y masivo. Desarrollado específicamente para el procesamiento de cargas de trabajo
de gran escala facilitando dicha escalabilidad, así como flexibilidad y rendimiento. Las claves de
HDFS son arquitectura de escalado, alta disponibilidad, tolerancia a fallos, acceso flexible,
balanceo de carga, replicación y seguridad. Destacar que los datos en HDFS son replicados en
múltiples nodos para conseguir mayor protección de datos y rendimiento, como se puede ver
en la Figura 6.
Figura 6: Distribución de datos de HDFS
4.3 MapReduce
Framework de procesamiento masivo escalable y de procesamiento en paralelo que trabaja de
forma cooperativa con HDFS, como viene explicado en la Figura 7. La computación se realiza en
la ubicación de los datos, en vez de mover dichos datos a la localización del computador, de
forma que el almacenamiento y la computación coexisten en los mismos nodos físicos del
clúster.
MapReduce procesa grandes cantidades de datos sin verse afectado por “cuellos de botella”
como el ancho de banda, aprovechándose de la proximidad de los datos. Contiene un gestor de
recursos que emplea los datos locales y los recursos del servidor para determinar las
operaciones de computación óptimas, también es flexible, dichos procedimientos pueden ser
escritos en prácticamente cualquier lenguaje de programación. Además, dispone de
rastreadores de trabajo y tareas para asegurar que los trabajos fallan independientemente, sin
perjudicar a otros, y que se reinician automáticamente.
VICTOR RUBIO TORROBA 19
Figura 7: Distribución de la computación en MapReduce
Las principales infraestructuras a utilizar serán:
Hive: Infraestructura de almacén de datos que contiene herramientas para realizar
consultas, análisis y resúmenes de datos de grandes bases de datos gracias a su lenguaje
muy parecido a SQL denominado HiveQL cuyo esquema convierte de forma
transparente al usuario las consultas en tareas Map/Reduce, Apache Tez o Spark.
Flume: servicio distribuido, confiable, robusto y tolerante a errores, cuyo objetivo es
realizar la obtención, agregación y transporte de grandes cantidades de datos
provenientes de logs con una arquitectura basada en flujos de datos.
4.4 Otras herramientas Para el estudio estadístico se utilizará el entorno de programación R, el cual proporciona una
gran cantidad de técnicas estadísticas (modelado lineal y no lineal, test estadísticos clásicos,
clasificación, clustering…) y gráficas, además de ser altamente extensible.
Además proporciona una gran cantidad de herramientas intermedias para el análisis de datos,
así como facilidades gráficas para dicho análisis, y su muestra en pantalla o su exportación.
También contiene un lenguaje de programación simple y efectivo, con funcionalidades básicas
como condicionales, bucles, recursividad…así como la posibilidad de enlazar código C, C++ o
Fortran para ser llamados en tiempo de ejecución.
Por otra parte se prevé el uso de PyBrain, librería de redes neuronales en lenguaje Python, para
el modelado de los datos, aunque no se descarta el uso de otras librerías (Scikit-learn) o
lenguajes (Octave) para el contraste y generación de distintos modelos no basados en redes
neuronales.
PyBrain es una librería modular de fácil uso que puede ser usada por usuarios con un
conocimiento básico, pero también proporciona la flexibilidad y algoritmos para la investigación
state-of-the-art.
Contiene algoritmos para redes neuronales: aprendizaje reforzado, aprendizaje no supervisado
y evolución. Su librería está construida alrededor de redes neuronales en el kernel y en todos
los métodos de aprendizaje aceptan una red neuronal como instancia a ser entrenada.
Por último, aquellas funcionalidades extras que se necesiten, como pueden ser las tareas
Map/Reduce de Hadoop o el parseo de ficheros, se realizarán bajo el lenguaje Java.
VICTOR RUBIO TORROBA 20
5. Selección de variables Las principales tareas a la hora de identificar los datos más relevantes, así como de recopilar e
integrar la información dentro del sistema han sido:
1. Obtención de eventos: clase MapReduce
2. Transformación de eventos: clase Parser Java
5.1 Obtención de eventos: MapReduce Nuestra tabla de eventos mencionada en la sección 3 donde se detalla el problema a resolver,
tiene el formato siguiente:
N.Evento1 FechaEvento1
N.Evento2 FechaEvento2
N.Evento3 FechaEvento3
Nuestro objetivo es conseguir para cada día del año todos los eventos que tienen lugar, para
ello usamos MapReduce.
MapReduce leerá archivos del fichero, y tras la función Map, la cual se ejecuta por cada fila,
construiremos pares de valores con el formato (FechaEventoX, N.EventoX) en los cuales la fecha
del evento actuará como clave.
La salida de la función Map, después del procesamiento de todas las líneas, puede ser vista como
un array con el siguiente formato:
(Fecha,Evento) (Fecha,Evento) (Fecha,Evento) …
Estos stream serán proporcionados a las tareas Reduce con el siguiente formato.
(FechaX,Iterator<Evento>)
Para cada fecha única encontrada, de ahí que esta sea la clave, MapReduce incluirá en un
Iterator aquellos valores proporcionados en la función Map.
Finalmente en la operación Reduce, nos bastará con o bien contar cuantos elementos hay en el
iterador, o bien devolver la lista de eventos para cada fecha (nuestro caso), obteniendo una
salida del tipo:
FechaEvento1 N.Evento1 | N.Evento2 | N.Evento3…
FechaEvento2 N.Evento8 | N.Evento123
5.2 Transformación de eventos: Parser Java Recalcando lo mencionado en el apartado anterior, la salida de nuestro programa MapReduce
es un fichero en el que cada línea contiene el siguiente formato:
FechaEventoX N.Evento1|N.Evento2|….
Es decir, por cada día encontrado en el fichero fuente de eventos, obtenemos todos los eventos
registrados. A la hora de introducir esto en nuestra base de datos, necesitamos buscar una
transformación de dicha variable (la lista de eventos registrados en un día determinado), ya que
VICTOR RUBIO TORROBA 21
de por sí esta información es bastante irrelevante. A continuación se presenta el código utilizado
para el proceso MapReduce.
public static class Map extends MapReduceBase implements
Mapper<LongWritable, Text, Text, Text> {
private final static Text fecha = new Text();
private Text evento = new Text();
public void map(LongWritable key, Text value,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line,"\t");
if (tokenizer.hasMoreElements()) {
evento.set(tokenizer.nextToken());
fecha.set(tokenizer.nextToken());
output.collect(fecha, evento);
}
}
}
public static class Reduce extends MapReduceBase implements
Reducer<Text, Text, Text, Text> {
public void reduce(Text key, Iterator<Text> values,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
String s = "";
while (values.hasNext()) {
s = s + values.next().toString();
if(values.hasNext())
s=s+ "|";
}
output.collect(key, new Text(s));
}
}
Código 1: Clases Map y Reduce utilizadas para la obtencion de eventos
Una primera aproximación es tener en cuenta el número de eventos por día, en vez del listado
de eventos. Es bastante comprensible que en un día que tenga un gran número de eventos, sea
más probable que haya personas que usen el servicio de alquiler de bicicletas que en otro día
con pocos eventos. Para ello hemos utilizado un parser de ficheros simple, en el que en primer
lugar contamos el número de eventos por día, del fichero obtenido como salida de MapReduce,
y después nos aseguramos que estén presentes todos los días; si un día no contiene ningún
evento este día no estaba incluido en la página de donde se extrajo la información. Por lo que
un día determinado del año 2012 no estará presente si no contiene eventos.
El método utilizado para parsear el fichero se adjunta a continuación:
VICTOR RUBIO TORROBA 22
public class Parser { public static void main(String args[]) { /* * args[0]= nombre fichero entrada * args[1]= separador de columna, en este caso \t * args[2]= separador de eventos, en este caso | * args[3]= fecha inicio, en este caso 2012-01-01 * args[4]= fecha final, en este caso 2012-12-31 * args[5]= nombre fichero salida */ BufferedReader br = null; String linea = ""; StringTokenizer st; PrintWriter pw=null; try { br = new BufferedReader(new FileReader(args[0])); Map<String, Integer> map = new HashMap<String, Integer>(); while ((linea = br.readLine()) != null) { String aux = linea.split(args[1])[1]; st = new StringTokenizer(aux, args[2]); map.put(linea.split(args[1])[0], st.countTokens()); } LocalDate start = LocalDate.parse(args[3]); LocalDate end = LocalDate.parse(args[4]); List<String> totalDates = new ArrayList<>(); DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM/yyyy"); while (!start.isAfter(end)) { totalDates.add(start.toString(dtf)); if (!map.containsKey(start.toString(dtf))){ map.put(start.toString(dtf), 0); } start = start.plusDays(1); } pw=new PrintWriter(args[5],"UTF-8"); for (String clave : map.keySet()) { pw.println(clave+"\t"+map.get(clave)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); pw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
Código 2: Código utilizado para obtener el número de eventos por día
VICTOR RUBIO TORROBA 23
El estudio de una gran cantidad de datos individuales de una población puede resultar
inoperativo y confuso, por lo que es necesario realizar un “resumen” que permita tener una idea
global de la población, bien para compararla con otras, o para comprobar su ajuste a un modelo
ideal. En nuestro caso de estudio, hemos decidido utilizar como una primera aproximación
intervalos de eventos; estos intervalos distaran en cinco unidades y empezaran a etiquetarse
con el valor 0. Por ejemplo si un día concreto tiene 20 eventos, dicho día tomara como valor de
parámetro 3; ya que es el parámetro que corresponde al intervalo (15,20], o equivalentemente
[16,20]. A continuación se presenta el código utilizado; es bastante sencillo realizar una
parametrización de dicho método, así como no tener que usar tanto condicional (en este caso
con obtener el cociente de la división del número de eventos restándole una unidad entre 5,
obtendríamos el mismo resultado, considerando los límites inferiores y superiores), pero se ha
preferido esta implementación para mostrar claramente como hemos realizado la
parametrización de los eventos.
public class FileParam { public static void main(String args[]) { /* * args[0]= uri fichero * args[1]=separador * args[2]= fichero salida */ String uri = "ficheros/fich.csv"; BufferedReader br = null; String linea = ""; String split = "\t"; PrintWriter pw = null; try { br = new BufferedReader(new FileReader(args[0])); pw = new PrintWriter(args[2], "UTF-8"); while ((linea = br.readLine()) != null) { pw.println(linea.split(args[1])[0] + "\t" + parseaValor(linea.split(args[1])[1])); }
} catch (FileNotFoundException e) {
e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); pw.close(); } catch (IOException e) { e.printStackTrace(); } } } }
Código 3: Código utilizado para parametrizar los eventos 1/2
VICTOR RUBIO TORROBA 24
public static int parseaValor(String val) { int valor = Integer.parseInt(val); if(valor<6) return 0; else if(valor<11) return 1; else if(valor<16) return 2; else if(valor<21) return 3; else if(valor<26) return 4; else if(valor<31) return 5; else if(valor<36) return 6; else return 7; } }
Código 4: Código utilizado para parametrizar los eventos 2/2
VICTOR RUBIO TORROBA 25
6. Preprocesado
Se ha realizado un estudio básico de todas las variables que en un principio se consideran
influyentes. Por motivos de espacio en esta memoria sólo se considera una variable, pero el
estudio completo se puede encontrar en el Anexo 1.
La finalidad de este preprocesado de los datos es examinar dichos datos previo a la aplicación
de cualquier modelo; para ello se llevara a cabo la técnica conocida como Análisis Exploratorio
de Datos (A.E.D).
El Análisis Exploratorio de Datos es un conjunto de técnicas estadísticas cuya finalidad es
conseguir un entendimiento básico de los datos y de las relaciones existentes entre las variables
analizadas. Para conseguir este objetivo el A.E.D. proporciona métodos sistemáticos sencillos
para organizar y preparar los datos, detectar fallos en el diseño y recogida de los mismos,
tratamiento y evaluación de datos ausentes (missing), identificación de casos atípicos (outliers)
y comprobación de los supuestos subyacentes en la mayor parte de las técnicas multivariantes
(normalidad, linealidad, homocedasticidad).
6.1 ETAPAS DEL A.E.D. A la hora de realizar el A.E.D. se aconseja seguir las siguientes etapas:
1) Preparar los datos para hacerlos accesibles a cualquier técnica estadística.
2) Realizar un examen gráfico de la naturaleza de las variables individuales a analizar y un
análisis descriptivo numérico que permita cuantificar algunos aspectos gráficos de los
datos.
3) Realizar un examen gráfico de las relaciones entre las variables analizadas y un análisis
descriptivo numérico que cuantifique el grado de interrelación existente entre ellas.
VICTOR RUBIO TORROBA 26
6.2 Variable RENTS (alquileres de bicicletas) En primer lugar, es buena idea tener una idea visual de la variable, para ello realizamos un gráfico
de dichos alquileres en función del tiempo, como se puede ver en la Figura 8.
Figura 8: Gráfico de la variable RENTS
6.2.1 Medidas descriptivas El siguiente paso, es obtener una serie de medidas descriptivas para dicha variable, las cuales
se recogen a continuación.
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
3197 8781 13610 13530 18410 24420
Tabla 2: Medidas descriptivas de la variable RENTS
Cuantiles
0% 25% 50% 75% 100%
3197.00 8781.25 13608.00 18407.50 24415.00
Tabla 3: Cuantiles de la variable RENTS
Rango
21218
Media recortada al 5% (más robusta al
ruido)
13535.57
Desviación típica
5604.473
Desviación media absoluta (respecto a la
media)
4982.667
Desviación media absoluta (respecto a la
mediana)
7149.838
VICTOR RUBIO TORROBA 27
6.2.2 Histograma
Un histograma es una representación gráfica de una variable en forma de barras, donde la
superficie de cada barra es proporcional a la frecuencia de los valores representados, ya sea en
forma diferencial o acumulada. Sirven para obtener una "primera vista" general, o panorama,
de la distribución de la población, o la muestra, respecto a una característica, cuantitativa y
continua, de la misma y que es de interés para el observador. De esta forma, se puede evidenciar
comportamientos, observar el grado de homogeneidad, acuerdo o concisión entre los valores
de todas las partes que componen la población o la muestra, o, en contraposición, pueden
permitir observar el grado de variabilidad, y por ende, la dispersión de todos los valores que
toman las partes. El histograma de la variable RENTS está recogido en la Figura 9.
Figura 9: Histograma de la variable RENTS
6.2.3 Gráfico de densidad La función de densidad de probabilidad de una variable aleatoria continua describe la
probabilidad relativa según la cual dicha variable aleatoria tomará un determinado valor.
La probabilidad de que la variable aleatoria “caiga” en una región específica del espacio de
posibilidades estará dada por la integral de la densidad de esta variable entre uno y otro límite
de dicha región. Dicha función de densidad viene recogida en la Figura 10.
VICTOR RUBIO TORROBA 28
Figura 10: Función de densidad de la variable RENTS
6.2.4 Diagramas de dispersión Un diagrama de dispersión es un tipo de diagrama matemático que utiliza las coordenadas
cartesianas para mostrar los valores de dos variables para un conjunto de datos.
Los datos se muestran como un conjunto de puntos, cada uno con el valor de una variable que
determina la posición en el eje horizontal y el valor de la otra variable determinado por la
posición en el eje vertical.
En primer lugar, en la Figura 11, podemos observar el gráfico de dispersión fragmentado de la
variable alquileres a lo largo de los meses del año; en lugar de utilizar la representación como
un conjunto de puntos, se han utilizado diagramas de cajas (boxplots), la parte superior y la
inferior de cada caja representan el recorrido intercuartílico (entre el primer y tercer cuantil), el
segmento que divide la caja corresponde al valor de la mediana, mientras que los extremos que
sobresalen de las cajas corresponden a los valores máximo y mínimo y son denominados bigotes.
VICTOR RUBIO TORROBA 29
Figura 11: Gráfico de dispersión fragmentado de la variable RENTS
Finalmente, en la Figura 12, se recogen los gráficos de dispersión de todas las variables
(extremo inferior izquierda), mientras que en la parte superior derecha se representa el
valor de sus correlaciones. El valor de sus correlaciones se hace más visible a medida que
este aumenta; es decir, en variables con poca correlación, este valor será muy poco visible.
VICTOR RUBIO TORROBA 30
Figura 12: Gráfico de dispersión de todas las variables
6.2.5 Matriz de covarianzas
La covarianza es un valor que indica el grado de variación conjunta de dos variables aleatorias.
Es el dato básico para determinar si existe una dependencia entre ambas variables y además es
el dato necesario para estimar otros parámetros básicos, como el coeficiente de correlación
lineal.
Cuando a grandes valores de una de las variables suelen mayoritariamente corresponderles los
grandes de la otra y lo mismo se verifica para los pequeños valores de una y la otra, se corrobora
que tienden a mostrar similar comportamiento lo que se refleja en un valor positivo de la
covarianza.
Por el contrario, cuando a los mayores valores de una variable suelen corresponder en general
los menores de la otra, expresando un comportamiento opuesto, la covarianza es negativa.
El signo de la covarianza, por lo tanto, expresa la tendencia en la relación lineal entre las
variables.
Si hay dependencia directa (positiva), es decir, a grandes valores de x
corresponden grandes valores de y.
VICTOR RUBIO TORROBA 31
Si este valor se interpreta como la no existencia de una relación lineal entre
las dos variables estudiadas.
Si hay dependencia inversa o negativa, es decir, a grandes valores de x
corresponden pequeños valores de y.
A continuación se muestra la matriz de covarianzas; Tabla 4 y Tabla 5.
RENTS TMAX TMED TMIN VIENTO
RENTS 31410115 -2445.9606 -2983.8711 -4238.3020 -1806.1210
TMAX -2983.871 65.922483 55.376386 47.126527 2.077882
TMED -2445.961 55.376386 48.853613 43.260415 3.233438
TMIN -4238.302 47.126527 43.260415 40.925023 3.700774
VIENTO -1806.121 2.077882 3.233438 3.700774 14.338383
HUMED -10187.126 -52.150817 -38.709802 -23.848954 -10.179344
PRECIP -4815.308 -5.89770 -3.0508246 -0.5744788 0.8636471
EVENTOS -5472.609 -7.177443 -3.4657534 -0.0238356 -1.0829224
PARAM -106.066 -1.424523 -0.7045857 0.0016259 -0.1887941
Tabla 4: Matriz de covarianzas de la variable RENTS 1/2
HUMED PRECIP EVENTOS PARAM
RENTS -10187.126 -4815.3081668 -0.005472609 -1000.106066
TMAX -52.15082 -5.8897699 -7.177443 -1.424523
TMED -38.70980 -3.0508246 -3.465753 -0.7045857
TMIN -23.84895 -0.5744788 0.02383562 0.00162587
VIENTO -10.17934 0.8636471 -1.08292 -0.1887941
HUMED 188.64859 16.2983681 20.726484 5.452953
PRECIP 16.298368 17.8544673 5.090776 1.154907
EVENTOS 27.264840 5.0907763 44.49680 7.953425
PARAM 5.452953 1.1549068 7.953425 1.533079
Tabla 5: Matriz de covarianzas de la variable RENTS 2/2
VICTOR RUBIO TORROBA 32
6.2.6 Correlaciones
Para poder contar con un indicador que nos permita, por un lado, establecer la covariación
conjunta de dos variables, y por otro, que tenga la universalidad suficiente para poder establecer
comparaciones entre distintos casos, se utiliza el coeficiente de correlación (lineal, de Pearson).
La correlación es por lo tanto una medida de covariación conjunta que nos informa del sentido
de esta y de su relevancia, que está acotada y permite la comparación entre distintos casos.
El coeficiente de correlación entre dos variables puede definirse como la covarianza existente
entre sus dos variables tipificadas y tiene por expresión de cálculo:
Si r < 0 Hay correlación negativa: las dos variables se correlacionan en sentido inverso.
A valores altos de una de ellas le suelen corresponder valor bajos de la otra y
viceversa.
Si r > 0 Hay correlación positiva: las dos variables se correlacionan en sentido directo. A
valores altos de una le corresponden valores altos de la otra e igualmente con los
valores bajos.
Si r = 0 se dice que las variables están incorrelacionadas: no puede establecerse ningún
sentido de covariación.
Una propiedad importante es la siguiente: Si dos variables son independientes estarán
incorrelacionadas aunque el resultado recíproco no es necesariamente cierto.
En la Tabla 6 y Tabla 7 se recoge la matriz de correlaciones de la variable RENTS, los valores
resaltados con azul oscuro, representan correlaciones positivas importantes; aunque la
correlación entre las temperaturas media, máxima y mínima es obvia, en esta matriz se destacan
para explicar la existencia de una correlación fuerte, de forma que en futuros proyectos ya se
cuente con un ejemplo de dicho nivel de correlación.
VICTOR RUBIO TORROBA 33
RENTS TMAX TMED TMIN VIENTO
RENTS 1.0000000 -0.0537524 -0.0761723 -0.1182123 -0.0851064
TMAX -0.0537524 1.0000000 0.9757970 0.9073069 0.0675856
TMED -0.0761723 0.9757970 1.0000000 0.9674931 0.1221704
TMIN -0.1182123 0.9073069 0.9674931 1.0000000 0.1527735
VIENTO -0.0851064 0.0675856 0.1221704 0.1527735 1.0000000
HUMED -0.1323397 -0.4676464 -0.4032235 -0.2714239 -0.1957235
PRECIP -0.2033368 -0.1716754 -0.1032989 -0.0212523 0.0539775
EVENTOS -0.1463845 -0.1325222 -0.0743336 0.0005586 -0.0428729
PARAM -0.1593911 -0.1417002 -0.0814148 0.0002053 -0.0402676
Tabla 6: Matriz de correlaciones de la variable RENTS 1/2
HUMED PRECIP EVENTOS PARAM
RENTS -0.1323397 -0.20333675 -0.146384555 -0.1593910782
TMAX -0.4676464 -0.17167541 -0.132522177 -0.147001740
TMED -0.4032235 -0.10329884 -0.07433356 -0.0814147739
TMIN -0.2714239 -0.02125231 0.000558557 0.002052623
VIENTO -0.1957235 0.05397750 -0.042872898 -0.0402676261
HUMEDAD 1.0000000 0.28083026 0.297585501 0.3206437187
PRECIP 0.2808303 1.00000000 0.180611814 0.2207451903
EVENTOS 0.2975855 0.18061181 1.00000000 0.9629583899
PARAM 0.3206437 0.22074519 0.962958390 1.00000000
Tabla 7: Matriz de correlaciones de la variable RENTS 2/2
VICTOR RUBIO TORROBA 34
7. Transformación de variables Uno de los principales requerimientos para poder conseguir un buen algoritmo de Machine
Learning, es proporcionar a dicho algoritmo los datos “correctos” para el problema que se quiere
resolver. Aunque se tengan buenos datos, hay que asegurarse de que estos estén en una escala
útil, así como en un buen formato y que todos los atributos significativos sean incluidos; parte
de este último punto lo hemos realizado en la fase previa de preprocesado.
Tres principales métodos de transformación de atributos que se suelen llevar a cabo, o al menos
tener en consideración son los siguientes:
Escalado: si nuestros datos preprocesados contienen atributos con gran variedad de
escalas para diversas cantidades. Algunos algoritmos de Machine Learning se
comportan mejor si estos atributos tienen sus valores en el rango de 0 a 1.
Descomposición: si hay características que representan un concepto complejo, en
ocasiones es mejor dividir dicha característica en atributos más consistentes. Un
ejemplo puede ser un atributo que almacene la fecha y la hora de un evento, en
ocasiones simplemente puede ser más relevante trabajar con la hora o día del evento
que con el conjunto completo.
Agregación: puede haber características que puedan ser incorporadas como un atributo
único que pueda ser más relevante para el problema que deseamos resolver. Este caso
se ha realizado previamente con la variable eventos. En primera instancia teníamos una
lista con todos los eventos que tenían lugar en todos los días del año; esto ocasionaba
una gran cantidad de tuplas, ya que hay días que tenían un gran número de eventos,
por lo que se añadió una característica nueva con el conteo de los eventos que tienen
lugar en un día determinado.
La transformación de atributos es una fase muy importante a la hora de conseguir un buen
modelo, por lo que el tiempo dedicado en dicha fase puede ser muy beneficiosa para el
rendimiento del algoritmo.
Centrándonos en nuestro problema determinado, dado que el número de atributos no es tan
grande, ni contiene datos complejos a excepción de la variable eventos mencionada
anteriormente, el primer paso a realizar ha consistido en el escalado de dichos atributos para
lograr que estos tomen un valor entre 0 y 1; para ello se ha utilizado lo que se conoce como
normalización lineal uniforme; destacar que esta normalización es muy sensible a la presencia
de valores anómalos (outliers), por lo que hay que garantizar que la existencia de dichos valores
no tenga efectos negativos en nuestro modelo. La fórmula de la normalización utilizada es la
siguiente, donde v se corresponde con el valor real de un atributo:
𝑣′ =𝑣 − 𝑚𝑖𝑛
max − 𝑚𝑖𝑛
Esto se conseguiría en R con el siguiente comando:
DatoNormalizado <- (ATRIBUTO-min(ATRIBUTO))/(max(ATRIBUTO)-
min(ATRIBUTO))
En la Figura 13 podemos ver una porción de los datos normalizados.
VICTOR RUBIO TORROBA 35
Figura 13: Ejemplo de datos normalizados
VICTOR RUBIO TORROBA 36
8. Algoritmos de Data Mining Una vez llegados a este punto, tenemos los datos preparados para ser utilizados en algún
algoritmo; dado que en este proyecto nos vamos a centrar en el uso de las redes neuronales,
tenemos que tener presentes las diversas posibilidades que estas ofrecen para su correcto uso.
Para ello en primer lugar es necesario conocer la estructura de una red neuronal.
8.1 Estructura de una red neuronal Una red neuronal, como su propio nombre indica, se trata de un sistema de interconexiones de
neuronas que colaboran entre sí para producir un estímulo de salida. Esta red está compuesta
de un conjunto paralelo de unidades de proceso, o neuronas, y es en las conexiones entre dichas
unidades donde reside la “inteligencia” de la red; la reorganización de estas conexiones se
modela mediante un mecanismo de pesos, que son ajustados durante la fase de aprendizaje. En
una red neuronal entrenada, es el conjunto de los pesos el que determina el “conocimiento” de
la red y tiene la propiedad de resolver el problema para el que dicha red ha sido entrenada.
Además de los pesos y las conexiones, otro elemento a tener en cuenta es que cada neurona
tiene asociada una función matemática denominada función de transferencia o función de
activación. Esta función es la encargada de generar las señales de salida a partir de las señales
de entrada de la neurona. La entrada de la función es la suma de todas las señales de entrada
de la neurona multiplicada por el peso asociado a la conexión de entrada de la señal.
Figura 14: Estructura de una red neuronal
VICTOR RUBIO TORROBA 37
8.1.1. Capas de una red neuronal Dentro de la estructura de esta red se pueden distinguir tres capas:
Capa de entrada: formada por neuronas las cuales se encargan de introducir los datos o patrones
en la red; en la capa de entrada no se produce procesamiento.
Capa oculta: capa intermedia entre la entrada y la salida.
Capa de salida: la salida de estas neuronas se corresponden con la salida de toda la red.
El número de neuronas entre capas no tiene por qué ser el mismo, pueden existir redes con un
gran número de neuronas en las capas intermedias y solo un pequeño número en las de salida
o entrada; conseguir una buena elección es una fase importante a la hora de realizar el
modelado.
Todo problema capaz de ser separado linealmente se puede resolver con redes sin capas
ocultas; pero dado que nuestro problema es no lineal, lo único que sabemos certeramente es
que vamos a necesitar al menos una capa oculta. Un gran número de capas intermedias no
garantiza un algoritmo más potente, pero si un mayor coste computacional y temporal a la hora
de entrenar el modelo, por lo que se hace necesario conseguir un equilibrio los dos costes
mencionados anteriormente. A la hora de elegir en número de neuronas en cada capa, no
existen reglas escritas que lo describan, pero si recomendaciones para su elección. Una de las
formas de elegir dicho número es en función de la convergencia lograda, otra forma puede ser
en función de los resultados del método conocido como Principal Component Analysis (PCA),
seleccionando una cantidad de neuronas en función del número de variables que expliquen un
porcentaje de la varianza en torno al 70-90%. Pero en la mayor parte de los casos la mejor
manera de seleccionar dicho número se consigue mediante la experimentación.
8.1.2 Función de errores Dado que este proyecto se basa en aprendizaje supervisado, queremos construir un modelo que
prediga ciertos valores deseados y para ello es necesario especificar tanto los valores de entrada
como de salida. La calidad de la aproximación del modelo obtenido se medirá según los valores
de salida obtenidos por dicho algoritmo.
Generalmente, la especificación de dichos valores de entrada y de salida se realiza con un
conjunto consistente de pares de vectores con entradas reales con la forma (𝑋, 𝑌), donde 𝑋 es
el conjunto de parámetros de entrada e 𝑌 el de salida. Un algoritmo de aprendizaje
generalmente calcula los parámetros de una función determinada, denominada 𝑊, de una
función N(X; W) que permite aproximar los valores de salida en el conjunto de entrada o
entrenamiento.
Si (𝑋𝑞 , 𝑌𝑞 ), 𝑐𝑜𝑛 𝑞 = 1, … , 𝑛 son los elementos del conjunto de entrenamiento, el error o la
calidad de la aproximación en un ejemplo determinado 𝑞 se puede medir a través del error
cuadrático con función:
𝐸(𝑋𝑞; 𝑊) =1
2||𝑁(𝑋𝑞; 𝑊) − 𝑌𝑞||2
Donde || . || es la norma euclidiana.
VICTOR RUBIO TORROBA 38
El error total es la suma de los valores de los errores de los ejemplos, con formula:
𝐸(𝑊) = ∑ 𝐸(𝑋𝑞; 𝑊)
𝑛
𝑞=1
Hay diversos métodos para minimizar dichos errores, el más básico consiste en actualizar los
datos de manera iterativa, en el que el nuevo valor de los parámetros se obtendría al sumar un
incremento, generalmente denotado como ∆𝑊, al valor actual del error. La condición de parada
de dicho algoritmo suele ser la convergencia de 𝑊 o bien una cota de error mínima, especificada
por el usuario.
𝑊 = 𝑊 + ∆𝑊
Otro método más sofisticado y más usado en problemas reales es el gradiente descendiente.
Este método lo que nos indicaría es cómo un pequeño cambio en un peso determinado 𝑊𝑖,𝑗,
siendo éste el peso que une la neurona 𝑗 de una capa determinada con la neurona 𝑖 de la capa
posterior a la actual, afectaría al error total 𝐸. El gradiente para un peso determinado se
calcularía como:
𝐺 =𝛿𝐸
𝛿𝑊𝑖,𝑗= −(𝑌𝑖 − 𝑁(𝑋; 𝑊)𝑖) ∗ 𝑁(𝑋; 𝑊)𝑗
Donde 𝑌𝑖 es el valor de salida real, 𝑁(𝑋; 𝑊)𝑖 se corresponde con el valor obtenido por el modelo
en la neurona de salida del peso del que se va a calcular el gradiente y 𝑁(𝑋; 𝑊)𝑗 es el valor de
salida obtenido en la neurona de entrada en este peso determinado.
El resultado de este método se aplica con el incremento explicado anteriormente de forma que
su cálculo pasa a ser:
∆𝑊𝑖,𝑗 = ∆𝑊𝑖,𝑗 + (𝑌𝑖 − 𝑁(𝑋; 𝑊)𝑖) ∗ 𝑁(𝑋; 𝑊)𝑗
Destacar que en la fórmula de actualización de los pesos 𝑊 se suele añadir otro factor
denominado factor de aprendizaje, denotado generalmente con el símbolo 𝛾 𝑜 𝜇, el cual
controla el tamaño de los cambios en el peso o bias en el aprendizaje del algoritmo. Si es muy
pequeño el algoritmo tardará más tiempo en converger pero si es demasiado grande el
algoritmo puede llegar a tener una divergencia fuera de control, como se puede ver en la Figura
15.
VICTOR RUBIO TORROBA 39
Figura 15: Diferencias entre distintos ratios de aprendizaje
8.2 Metodología a utilizar Una vez se han descrito los elementos de una red neuronal, es necesario describir una
metodología a seguir para la obtención de un modelo que se ajuste a las necesidades del cliente;
dicha metodología va a consistir en el orden de estimación de algunos parámetros mencionados,
como pueden ser el número de neuronas o las funciones de activación de cada una de ellas. Así
pues, el orden elegido para la obtención de modelo es el siguiente:
1. Selección de los atributos más significativos junto al tipo de red y métodos de
entrenamiento.
2. Estudio de los resultados y elección de aquellas redes y atributos que mejor resultado
nos hayan dado.
3. Uso de las distintas capas de activación y combinaciones entre ellas, con su estudio
posterior.
4. Elección de la estructura de la red: número de capas y neuronas en cada capa, así como
las conexiones entre ellas, a partir de esta fase se llevará a cabo también el testeo con
su base de datos correspondiente.
5. Ajuste de los parámetros de las redes que mejor resultado hayan otorgado para
conseguir optimizar los resultados.
8.3 Pruebas iniciales Como se ha mencionado anteriormente, en esta fase se va a seleccionar aquellos atributos más
significativos, aunque en el preprocesado ya se dio una idea bastante clara de que atributos son
influyentes y dado que la base de datos no es tan amplia como para que el tiempo de
entrenamiento de un modelo sea un factor muy influyente en el coste temporal, se probarán las
diversas combinaciones posibles de los atributos.
En este apartado solo se mostrará una pequeña porción de las pruebas realizadas; el resto están
disponibles en el Anexo 2.
VICTOR RUBIO TORROBA 40
Pybrain proporciona un tipo de red que ellos denominan arbitraria, el algoritmo de
entrenamiento para dicha red elegido ha sido la propagación hacia atrás (Backpropagation) y el
número de iteraciones o épocas por defecto en todos los casos de estudio se ha estimado a
1000. Una época es una medida del número de veces que han sido usados todos los datos de
entrenamiento para actualizar los pesos. En este caso todos los datos de entrenamiento han
pasado por nuestra red neuronal simultáneamente en lo que se denomina una época, antes de
que los pesos se hayan actualizado.
En la Tabla 8 y Tabla 9 se pueden ver unas tabla comparativa entre los errores de la red neuronal
ante los distintos atributos, la salida proporciona el error medio, la mediana de los errores y el
error máximo obtenido. El método para obtener dichos errores ha sido el Error Cuadrático
Medio (MSE) con formula:
𝐸𝐶𝑀 =1
𝑛∑(�̂�𝑖 − 𝑌𝑖)
𝑛
𝑖=1
El código Python asociado a esta red es el siguiente:
from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import BackpropTrainer from pybrain.tools.shortcuts import buildNetwork from pybrain.structure import TanhLayer from pybrain.rl.environments import Task import csv ds=SupervisedDataSet(2,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['ENORM']), (row['RNORM'],)) print ds net = buildNetwork(2,2,1, bias=True, hiddenclass=TanhLayer) trainer = BackpropTrainer(net,ds) trainer.trainOnDataset(ds,400) trainer.testOnData(verbose=True)
Código 5: Implementación de la red neuronal arbitraria
VICTOR RUBIO TORROBA 41
Atributos Error
TMEDNORM ('Average error:', 0.034455981838630391) ('Max error:', 0.13919123448164714, 'Median error:', 0.025037704450937934)
TMINNORM ('Average error:', 0.03484471566883611) ('Max error:', 0.1592077348998579, 'Median error:', 0.023589101665501946)
TMAXNORM ('Average error:', 0.034603982733588411) ('Max error:', 0.14441633112151447, 'Median error:', 0.023684189224626652)
VNORM ('Average error:', 0.034899099684498044) ('Max error:', 0.14940824119779961, 'Median error:', 0.024452728202024585)
HNORM ('Average error:', 0.034168441356756757) ('Max error:', 0.14652640777250714, 'Median error:', 0.023531557149624242)
ENORM ('Average error:', 0.033871454199997694) ('Max error:', 0.14434282917435212, 'Median error:', 0.023335805455503702)
PNORM ('Average error:', 0.03307213617835339) ('Max error:', 0.12933836779832181, 'Median error:', 0.023587077570537077)
PNORM,ENORM ('Average error:', 0.032693780654721075) ('Max error:', 0.14871529283489315, 'Median error:', 0.023143954975969605)
PNORM,HNORM ('Average error:', 0.033019515926496691) ('Max error:', 0.13695177167643249, 'Median error:', 0.022187212369620103)
TMEDNORM, ENORM ('Average error:', 0.033063807532791631) ('Max error:', 0.1859039203967586, 'Median error:', 0.020446041217533909)
Tabla 8: Comparación de errores en red neuronal arbitraria 1/2
VICTOR RUBIO TORROBA 42
Atributos Error
TMEDNORM,HNORM ('Average error:', 0.029075846931424142) ('Max error:', 0.13675282634492178, 'Median error:', 0.021774416994258524)
TMEDNORM,VNORM ('Average error:', 0.031863710317301848) ('Max error:', 0.14026388430493197, 'Median error:', 0.024862376553660814)
TMEDNORM,HNORM,VNORM ('Average error:', 0.027209637476496247) ('Max error:', 0.16482248469531005, 'Median error:', 0.020253320494362584)
TMEDNORM,PNORM ('Average error:', 0.029248298672450768) ('Max error:', 0.1409924233219908, 'Median error:', 0.023564768435226483)
TMEDNORM,PNORM,HNORM
('Average error:', 0.027700588727169979) ('Max error:', 0.14837029747605049, 'Median error:', 0.022849627765128479)
TMEDNORM,PNORM,HNORM,VNORM ('Average error:', 0.026325564418503696) ('Max error:', 0.16537707406506391, 'Median error:', 0.02006210198695595)
TODO ('Average error:', 0.024250420139181748) ('Max error:', 0.20310604131972432, 'Median error:', 0.018010661014907899)
Tabla 9: Comparación de errores en red neuronal arbitraria 2/2
Este estudio se ha realizado para todos los tipos de redes que proporciona PyBrain, así
como los distintos métodos de entrenamiento. Una vez finalizado dicho estudio las dos
redes que mejor resultado proporcionaron, en la base de datos de entrenamiento fueron:
Red recurrente, con algoritmo de entrenamiento denominado RProp. Se llegó a
conseguir un MSE de 0.023232 con los atributos de temperatura media, viento,
humedad, eventos y precipitaciones.
Red de prealimentacion, más conocida como feedforward, con algoritmo de
entrenamiento RProp. Se llegó a conseguir un MSE de 0.021947 con el mismo
conjunto de atributos que el mencionado en el caso anterior.
En total se han realizado 53 pruebas con distintos tipos de redes, atributos y entrenamientos
con 1000 épocas en todos los casos; aproximadamente cada una de estas pruebas ha tomado
entre 8 y 10 minutos de media para poder entrenar la red.
VICTOR RUBIO TORROBA 43
8.4 Elección de las funciones de activación de las capas Como ya se ha mencionado previamente, cada neurona tiene una función de activación
asociada, la cual coge como entrada el sumatorio del producto de los pesos de las distintas
conexiones que recibe de otras neuronas por el valor de salida de las mismas, y proporciona una
salida. En su forma simplificada la salida de esta función es binaria, 1 si se activa la neurona y 0
si no se activa. Pybrain ofrece varias posibilidades a la hora de seleccionar la función de
activación de una neurona; para este problema, tenemos cuatro funciones disponibles:
Lineal
Sigmoide: con la fórmula 𝑠𝑖𝑔𝑚𝑜𝑖𝑑𝑒(𝑡) =1
1+𝑒−𝑡 la cual transforma los argumentos al
rango (0,1)
Tanh: tangente hiperbólica de formula tanh(𝑡) =𝑒𝑡−𝑒−𝑡
𝑒𝑡+𝑒−𝑡 la cual toma argumentos de
valor real y los transforma al rango (-1,1).
Softmax: esta función toma un vector de argumentos de valor real y lo transforma en
otro cuyos elementos quedan comprendidos en el rango (0,1) y suman 1. Su fórmula es
𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑡𝑘) = 𝑒𝑡𝑙
∑ 𝑒𝑡𝑗
𝑗
Dado que aunque se pueda tener una idea sobre que funciones van a ser más “efectivas” en
cada una de las capas, probar las diferentes combinaciones posibles para ver cuales producen
los mejores resultados es una inversión de tiempo que más adelante en el proyecto se verá
recompensada, dado que la elección de estas funciones de activación tendrán un gran impacto
en los resultados finales del modelo. Para ello en una de las dos redes que mejores resultados
proporcionaron; en este caso la red de prealimentación, se han realizado todas las
combinaciones posibles entre las diferentes funciones de activación. Los resultados se han
recogido en unas tablas las cuales se adjuntan en el Anexo 3, y de las que a continuación se
muestra una porción de ella, en la Tabla 10.
8.5 Elección del número de capas y neuronas de la red neuronal Tras los resultados de las pruebas mencionadas anteriormente, las funciones de activación que
proporcionaron un menor error se corresponden con una función lineal en la capa de entrada,
(esta función no tiene ningún tipo de efecto en los resultados, ya que como se ha mencionado
previamente en la capa de entrada no se produce procesamiento, y funciones de activación)
sigmoides en las capas ocultas y de salida. Este resultado se recoge en la Tabla 11, la cual es un
pequeño extracto de las pruebas realizadas.
VICTOR RUBIO TORROBA 44
Capa Entrada
Capa Oculta
Capa Salida
Error
Lineal Lineal Lineal epoch 430 total error 0.03193 avg weight 0.87806 (Invariable desde la época 200)
Lineal Lineal Sigmoid epoch 420 total error 0.031737 avg weight 1.0672 (Invariable desde la época 200)
Lineal Lineal Tanh epoch 480 total error 0.03191 avg weight 0.9364 (Converge más lentamente)
Lineal Lineal SoftMax epoch 226 total error 0.16628 avg weight 1041.6
Lineal Sigmoid Sigmoid epoch 999 total error 0.021621 avg weight 649.09
Lineal Sigmoid Lineal epoch 999 total error 0.023705 avg weight 360.61
Lineal Sigmoid Tanh epoch 999 total error 0.022236 avg weight 39.293
Tabla 10: Comparativa de los errores con diferentes funciones de activación
Linear Linear SoftMax epoch 999 total error 0.16628 avg
weight 3768
Linear Sigmoid Sigmoid epoch 999 total error 0.022107 avg
weight 44.523
Linear Sigmoid Linear epoch 999 total error 0.02353 avg
weight 16.328
Tabla 11: Resultados de las funciones de activación escogidas
VICTOR RUBIO TORROBA 45
El siguiente paso consiste en definir la estructura de la red neuronal; esto es, el número de
capas ocultas y de neuronas de dichas capas. Como bien hemos visto antes un mayor
número de neuronas o capas ocultas permite resolver problemas más complejos, pero
aumentar estas dimensiones hasta una cantidad irrelevante solo conseguiría una mayor
lentitud del programa, un derroche de recursos y unas mejoras minúsculas para todos los
inconvenientes ya nombrados, ya que si el problema es más simple de resolver que con una
red neuronal con una estructura compleja, las mejoras en términos de errores conseguidas
serán minúsculas.
Para ello se ha empezado con una red neuronal simple con una única capa oculta y con el
mismo número de neuronas en dicha capa que en la capa de entrada; una vez realizadas
estas pruebas básicas y estudiados los resultados, se modificarán tanto el número de capas
ocultas como el número de neuronas, estudiando si las mejoras obtenidas suplen el mayor
coste de recursos y tiempo de entrenamiento.
Dado que teníamos dos redes seleccionadas, una feedforward y otra recurrente, estas
pruebas se han realizado en ambas. La única diferencia es que la red recurrente, como su
propio nombre indica, contiene recurrencia en sus neuronas ocultas, por lo que también es
necesario hacer un estudio de dicha recurrencia; por ejemplo, en el caso que que se usen
dos capas ocultas, se pueden obtener mejores errores usando recurrencia únicamente
entre las capas ocultas de las neuronas que entre las propias neuronas. Como no se puede
predecir el comportamiento de esta red neuronal, el mejor método es la prueba y error de
dichas posibilidades y el posterior estudio de resultados.
A continuación, se muestran unos pequeños extractos de las pruebas realizadas en ambas
redes, Tabla 12, Tabla 13 y Tabla 14; el método de evaluación de los resultados será
mediante el error cuadrático medio o RMSE (las pruebas completas se recogen en el Anexo
4).
Red neuronal recurrente con dos capas ocultas de 5 neuronas sin recurrencia añadida epoch 999 total error 0.02334 avg weight 11.524 RMSE 0.335014115024 epoch 999 total error 0.021315 avg weight 232.86 RMSE 0.369633646521 epoch 999 total error 0.020189 avg weight 18.545 RMSE 0.346790132002
Tabla 12: Evaluación de resultados de la estructura de red 1
Red neuronal recurrente con dos capas ocultas de 10 neuronas con recurrencia únicamente entre capas
epoch 999 total error 0.019618 avg weight 99.576 RMSE 0.377686826069 epoch 999 total error 0.016594 avg weight 309.73 RMSE 0.263416874075 epoch 999 total error 0.016384 avg weight 161.94 RMSE 0.399432058845
Tabla 13: Evaluación de resultados de la estructura de red 2
VICTOR RUBIO TORROBA 46
Red feedforward con dos capas ocultas de 10 neuronas epoch 999 total error 0.02003 avg weight 579.96 RMSE 0.296771536211 epoch 999 total error 0.020553 avg weight 525.06 RMSE 0.296686205643 epoch 999 total error 0.020451 avg weight 128 RMSE 0.274950220518
Tabla 14: Evaluación de resultados de la estructura de red 3
Tras las pruebas realizadas, los mejores resultados obtenidos se corresponden con una red
con dos capas ocultas de cinco neuronas sin recursividad añadida en el caso de la red
recursiva, con un RMSE medio en torno a 0.275 y una red con una sola capa oculta con diez
neuronas en el caso de la red feedforward con un error algo superior, en torno a 0.285.
8.6 Ajuste de parámetros del modelo Una vez decidida la estructura de las redes neuronales el último paso del modelado pasa por
realizar un ajuste lo más minucioso posible en los parámetros del modelo, para así seguir
reduciendo el error; dado que en nuestro caso nos hemos apoyado en una librería como es
PyBrain, no tenemos control total sobre dicha red. Si por ejemplo hubiésemos implementado la
red neuronal y el algoritmo de entrenamiento desde cero, estos ajustes serían mucho más
específicos, pero el coste de realizar dicha implementación se saldría del alcance de este
proyecto, por lo que este estudio se realizara en función de los parámetros que PyBrain
proporciona para ajustar el algoritmo de entrenamiento que previamente hemos decidido en el
apartado 8.3 Pruebas iniciales, RProp.
Los parámetros mencionados anteriormente para el algoritmo de entrenamiento RProp son los
siguientes:
etaminus: factor por el que se disminuye la anchura del paso cuando se excede la
anchura del paso.
etaplus: factor por el que se incrementa la anchura del paso al seguir el gradiente.
deltamin: mínima anchura del paso.
deltamax: máxima anchura del paso.
delta0: anchura del paso inicial.
A la hora de realizar un ajuste correcto de estos parámetros hay que tener en cuenta los
problemas mencionados a la hora de seleccionar el ratio de aprendizaje; un ratio de aprendizaje
muy pequeño provocara que el algoritmo converja muy lentamente, mientras que un ratio muy
grande el algoritmo puede divergir fuera de control, siendo de vital importancia no caer en
ninguno de estos dos extremos.
Dadas las dos redes elegidas tras la fase de obtención de su estructura, se han realizado pruebas
de ajuste de todos los parámetros mencionados. A continuación se muestra un pequeño
extracto de dichas pruebas, aunque el proceso completo se muestra en el Anexo 5.
VICTOR RUBIO TORROBA 47
Red feedforward, parámetro deltamax=3.5
epoch 999 total error 0.025707 avg weight 7.8625 RMSE 0.265427162917
epoch 999 total error 0.025372 avg weight 2.2614 RMSE 0.29562134607
epoch 999 total error 0.025227 avg weight 16.998 RMSE 0.269381019616
Tabla 15: Tabla de evaluación de resultados del parámetro deltamax
Red recurrente, parámetro etaminus=0.75
epoch 999 total error 0.023785 avg weight 43.716 RMSE 0.301346286979
epoch 999 total error 0.021664 avg weight 72.757 RMSE 0.299719923443
epoch 999 total error 0.022692 avg weight 15.067 RMSE 0.262183013223
Tabla 16: Tabla de evaluación de resultados del parámetro etaminus
Red recurrente, parámetro deltamin=0.0001
epoch 999 total error 0.022128 avg weight 93.455 RMSE 0.272729799738
epoch 999 total error 0.023015 avg weight 50.145 RMSE 0.278919892926
epoch 999 total error 0.021223 avg weight 377.33 RMSE 0.255788600856
Tabla 17: Tabla de evaluación de resultados del parámetro deltamin
Tras la ejecución de todas las pruebas pertinentes para todos los parámetros posibles, las
redes con menores errores obtenidas han sido:
Red recurrente con 0.25181752948 de RMSE
Red recurrente con 0.255169376835 de RMSE
Red recurrente con 0.255788600856 de RMSE
Red feedforward con 0.260459010296 de RMSE
Red feedforward con 0.262832961738 de RMSE
Red feedforward con 0.263245783397 de RMSE
Como se puede comprobar, el factor recursivo se ha traducido en una mejora substancial
en el error, aun sin significar un aumento significativo en el coste de entrenamiento de los
modelos.
La estimación del número de pruebas realizadas tanto para decidir la estructura de la red
como para ajustar todos los parámetros es en torno a 700-750 pruebas; esto es,
aproximadamente 125 horas de pruebas las cuales se han ido realizando simultáneamente
mientras se avanzaba en otras fases. Estas pruebas realizadas se recogen, como ya se ha
mencionado previamente, en los anexos 2, 3, 4 y 5.
1 https://www.kaggle.com/c/bike-sharing-demand
VICTOR RUBIO TORROBA 48
Finalmente, es necesario un contraste con otra aplicación real relacionada, para saber si
los resultados obtenidos son realmente significativos; para ello nos basaremos en un
proyecto muy similar a este propuesto por la página de Data Science , Kaggle 1.
Kaggle es una plataforma que organiza competiciones de modelado predictivo y analítico en la
cual tanto las compañías como los investigadores publican sus datos y los distintos estadísticos
o data miners de todo el mundo compiten para conseguir el mejor modelo. Dichas
competiciones se organizan del siguiente modo:
El host de la competición prepara los datos y una descripción del problema a resolver
Los participantes experimentan con diferentes técnicas y compiten entre ellos para
conseguir el mejor modelo; estos modelos son calificados inmediatamente basándose
en la precisión obtenida en relación a un fichero oculto (en nuestro caso la base de datos
de testeo) y este resultado es reflejado en un ranking en tiempo real.
Después de que se sobrepase la fecha límite, el host de la competición paga el premio
de esta a cambio de una licencia libre de responsabilidades, perpetua e irrevocable a
nivel mundial sobre el modelo ganador (esto incluye software, algoritmo y la propiedad
intelectual de dicho modelo).
Este proyecto de Kaggle busca conseguir predicciones de alquileres de bicicletas en
Washington D.C. basadas en unos datos muy similares a los de este proyecto; con la
diferencia de que sus predicciones se realizan para cada hora, y las nuestras para cada día.
También es necesario mencionar que ellos disponen de una mayor cantidad de datos, lo
que aunque no garantiza una mejora de los resultados, si garantiza mayores posibilidades
de entrenamiento. Tomando como referencia la clasificación proporcionada en su página
web, nuestro mejor resultado se encontraría en la tercera posición a día de la redacción de
este documento, lo que parece indicar que el resultado obtenido es bastante satisfactorio,
como se puede ver en la Figura 16.
Figura 16: Tabla clasificatoria del proyecto de alquiler de bicicletas de Kaggle
VICTOR RUBIO TORROBA 49
El modelo obtenido ha sido logrado tras una primera fase de selección de variables, donde se
han intentado obtener aquellos factores que se han creído influyentes en el alquiler de
bicicletas, como la temperatura, humedad o eventos que tengan lugar en un día determinado.
Después se ha realizado un preprocesado de dichas variables, usando el lenguaje R y obteniendo
valores reales de la influencia de las variables como el índice de correlación. El siguiente paso ha
sido realizar una correcta transformación de las variables, de forma que el formato de estas
favorezca en la mayor medida posible un mayor aprendizaje por parte de la red neuronal.
Llegados a este punto se comenzó con el uso de algoritmos de Data Mining, más concretamente
con algoritmos de redes neuronales con la librería PyBrain de Python; seleccionando en primer
lugar las variables más significativas y posteriormente la estructura de la red: número de capas
y de neuronas, funciones de activación, algoritmos de entrenamiento. Por último, se procedió
al ajuste de los parámetros de red neuronal; cada parámetro fue ajustado de la forma más
precisa posible para reducir así el RMSE utilizado para la posterior validación del modelo
obtenido con los datos referentes a los alquileres de bicicletas en Sevilla en el año 2013.
Finalmente, en la Figura 17 se muestra el contraste entre los alquileres reales de bicicletas en el
año 2013, marcados en negro, y los alquileres predichos por el modelo obtenido con menor
RMSE, marcados en rojo. Se puede ver como el modelo ha logrado captar gran parte del
comportamiento real de los alquileres de bicicletas y adaptarse a él, siendo el modelo un
mecanismo con un buen grado de fiabilidad para realizar las predicciones de los alquileres, que
era el objetivo de este proyecto. También se puede apreciar un desajuste del modelo desde el
mes de marzo hasta junio. Tras revisar los datos de las tablas, la media de alquileres en el año
2012 es mucho mayor que la de 2013; 11019 en el año 2013 frente a 13570 en el año 2012,
además la temperatura en dichos meses es mayor en el año 2012, en algunos casos incluso diez
grados mayor, y además la situación económica en el año 2012 era mejor que en el 2013, y esto
puede tener una influencia en el número de alquileres en estos años. Esto unido a que como
bien se ha remarcado en el apartado 3, el tamaño de la base de datos es pequeño para lo que
suele ser en problemas de Big Data, hace difícil obtener un modelo que se ajuste correctamente
en ese rango de meses. Ante este inconveniente tendríamos dos opciones; obtener más datos,
útiles se entiende, para entrenar este modelo, lo cual casi seguro lograría un ajuste más preciso
en esos meses, o bien entrenar un nuevo modelo cuyo objetivo fuese obtener un
comportamiento lo más preciso posible en esos meses, y usar dicho modelo para las
predicciones en ese rango de tiempo, y el obtenido en este proyecto para los meses restantes.
VICTOR RUBIO TORROBA 50
Figura 17: Contraste entre valores estimados y predichos de alquileres
VICTOR RUBIO TORROBA 51
9. Seguimiento A continuación se muestra el contraste entre los costes temporales estimados inicialmente y los
reales, así como las desviaciones significativas en cada tarea:
Planificación del proyecto: Realizado en la estimación prevista.
Definición de alcance y objetivos: Realizado en la estimación prevista.
Selección de variables: Realizado en la estimación prevista.
Preprocesado: Realizado en la estimación prevista.
Transformación: Realizado en menor tiempo del estimado inicialmente.
Como bien se ha explicado en el apartado correspondiente, debido a las dimensiones
del conjunto de variables no han sido necesarias tantas horas como se había estimado
inicialmente, solo se ha realizado un estudio básico del conjunto de datos, y su posterior
normalización.
Uso de algoritmos de Data Mining: Realizado en mayor tiempo del estimado
inicialmente.
Debido a un malentendido con la documentación de la librería, y a ciertos algoritmos
incompletos, el número de horas dedicadas a esta tarea han sido mayor de las previstas,
ya que se intentó terminar de implementar dichos algoritmos incompletos, y se perdió
parte del trabajo realizado debido al malentendido mencionado, por lo que se tuvo que
comenzar el ajuste desde cero tras el descubrimiento de dicho error.
Interpretación y evaluación: Realizado en menor tiempo del estimado inicialmente.
Esta tarea se ha ido realizando conforme se entrenaban los modelos; el haber
encontrado un proyecto muy semejante al que se presenta en este documento en la
página web de Kaggle, ha facilitado en gran medida la interpretación y evaluación de los
resultados obtenidos.
Reuniones: Realizado en menor tiempo del estimado inicialmente.
Dado que el tutor y el alumno compartían horario lectivo, se ha podido comentar el
avance del proyecto al finalizar dichas clases, por lo que no ha sido necesario realizar el
número de reuniones estimadas inicialmente.
Realización de la memoria: Realizado en la estimación prevista.
Seguimiento: Realizado en la estimación prevista.
Material para la presentación: Por realizar.
El material para la defensa del proyecto se realizara una vez se presente la
documentación asociada a este proyecto.
VICTOR RUBIO TORROBA 52
En la Tabla 18 se recoge el contraste entre la estimación inicial de las tareas realizada al
comienzo del proyecto, y el coste real para cada una de ellas.
Tarea Estimación (Horas)
Tiempo dedicado
Desviación (%)
Planificación del proyecto 20 20 0
Tecnologías a utilizar 20 20 0
Selección de variables 15 15 0
Preprocesado 30 30 0
Transformación 30 20 50
Uso de algoritmos de Data Mining
80 100 25
Interpretación y evaluación 30 25 16.66
Reuniones 20 15 25
Realización de la memoria 25 25 0
Seguimiento 20 20 0
Material para la presentación
10 -(Por realizar) -
Total 300 290(Sin concluir)
Tabla 18: Contraste entre la estimación inicial y el coste real de tareas
VICTOR RUBIO TORROBA 53
10. Conclusiones
El desarrollo de un modelo predictivo ha permitido al alumno profundizar en el amplio campo
del Big Data y más concretamente del Machine Learning, dado que al comienzo del proyecto se
tenían unos conocimientos relativamente pequeños de estos campos y estos han aumentado
hasta ser capaz de realizar un proyecto íntegro de esta rama de la inteligencia artificial. Además,
se han fortalecido y aumentado los conocimientos sobre el lenguaje de programación Python,
del que se tenía un conocimiento básico al comenzar este proyecto, de la librería de Machine
Learning PyBrain, así como del preprocesado de datos con R, y de la distribución Cloudera CDH.
Centrándonos en las competencias transversales, el realizar un proyecto de cierta amplitud de
forma individual y dirigido por el propio alumno, ha fortalecido sus capacidades de toma de
decisiones, de planificación y de resolución de problemas; sin olvidarnos de que este proyecto
ha sido realizado dentro de una empresa, proporcionando un punto de vista real sobre el
trabajado en una compañía y resultando en una experiencia enriquecedora y positiva.
A esto hay que añadir que las reuniones, tanto con el tutor de la universidad como con el tutor
de la empresa, han servido para apreciar el grado de repercusión e importancia de realizar un
buen seguimiento y una comunicación constante con todas las partes implicadas en el proyecto.
Finalmente, también cabe destacar que el hecho de tener que redactar una documentación y
memoria sobre el proyecto, ha permitido obtener una mayor experiencia y soltura a la hora de
redactar textos formales.
VICTOR RUBIO TORROBA 54
11. Agradecimientos
En primer lugar, me gustaría agradecer a toda mi familia y en especial a mis padres por haberme
apoyado tanto en este proyecto, como en mis estudios en todo momento, ya que sin ellos no
hubiera llegado hasta aquí.
También tengo que agradecer a todos mis compañeros y amigos, y en especial a Álvaro y
Eduardo, ya no solo por el apoyo que me han proporcionado; sino por hacer este trabajo mucho
más llevadero y ameno.
A Ángel Luis Rubio por haber sido mi tutor y brindarme toda su experiencia y resolver todas las
dudas que me han ido surgiendo.
A la empresa Dimartel, y en especial a Juan Antonio Ruiz y Roberto Díaz, por permitirme hacer
las prácticas en primer lugar, y por brindarme la oportunidad de realizar este gran proyecto.
Finalmente, también quiero agradecer a la Universidad de La Rioja, y más concretamente a los
profesores del Grado en Ingeniería Informática, por haberme formado y proporcionado los
conocimientos que tengo a día de hoy.
VICTOR RUBIO TORROBA 55
12. Bibliografía
1. Curso de Machine Learning de Coursera
https://class.coursera.org/ml-008
2. Wikipedia
https://es.wikipedia.org
3. StackOverflow
http://stackoverflow.com/
4. Portal del Proyecto R
http://cran.r-project.org/
5. Repositorio de trabajos de final de grado de la universidad de la rioja
http://biblioteca.unirioja.es/
6. Reddit Big Data
https://www.reddit.com/r/bigdata/
7. Reddit Machine Learning
http://www.reddit.com/r/MachineLearning/
8. Apuntes y trabajos realizados durante el grado
ANEXO 1: PREPROCESADO DE DATOS
VÍCTOR RUBIO TORROBA 2
Índice de contenido Introducción .................................................................................................................................. 5
Variable RENTS (alquileres) ........................................................................................................... 5
Gráfico básico ............................................................................................................................ 5
Medidas descriptivas ................................................................................................................. 5
Histograma ................................................................................................................................ 6
Gráfico de densidad .................................................................................................................. 6
Gráfico de dispersión ................................................................................................................ 7
Variable TMAX (temperatura máxima) ......................................................................................... 8
Gráfico básico ............................................................................................................................ 8
Medidas descriptivas ................................................................................................................. 8
Histograma ................................................................................................................................ 9
Gráfico de densidad .................................................................................................................. 9
Gráfico de dispersión .............................................................................................................. 10
Variable TMIN (temperatura mínima) ........................................................................................ 11
Gráfico básico .......................................................................................................................... 11
Medidas descriptivas ............................................................................................................... 11
Histograma .............................................................................................................................. 12
Gráfico de densidad ................................................................................................................ 12
Gráfico de dispersión .............................................................................................................. 13
Variable TMED (temperatura media) .......................................................................................... 14
Gráfico básico .......................................................................................................................... 14
Medidas descriptivas ............................................................................................................... 14
Histograma .............................................................................................................................. 15
Gráfico de densidad ................................................................................................................ 15
Gráfico de dispersión .............................................................................................................. 16
Variable VIENTO .......................................................................................................................... 17
Gráfico básico .......................................................................................................................... 17
Medidas descriptivas ............................................................................................................... 17
Histograma .............................................................................................................................. 18
Gráfico de densidad ................................................................................................................ 18
Gráfico de dispersión .............................................................................................................. 19
VÍCTOR RUBIO TORROBA 3
Variable HUMEDAD ..................................................................................................................... 20
Gráfico básico .......................................................................................................................... 20
Medidas descriptivas ............................................................................................................... 20
Histograma .............................................................................................................................. 21
Gráfico de densidad ................................................................................................................ 21
Gráfico de dispersión .............................................................................................................. 22
Variable PRECIP (precipitaciones) ............................................................................................... 23
Gráfico básico .......................................................................................................................... 23
Medidas descriptivas ............................................................................................................... 23
Histograma .............................................................................................................................. 24
Gráfico de densidad ................................................................................................................ 24
Variable EVENTOS ....................................................................................................................... 25
Gráfico básico .......................................................................................................................... 25
Medidas descriptivas ............................................................................................................... 25
Histograma .............................................................................................................................. 26
Gráfico de densidad ................................................................................................................ 26
Gráfico de dispersión .............................................................................................................. 27
Variable PARAM (eventos parametrizados) ................................................................................ 28
Gráfico básico .......................................................................................................................... 28
Medidas descriptivas ............................................................................................................... 28
Histograma .............................................................................................................................. 29
Gráfico de densidad ................................................................................................................ 29
Gráfico de dispersión .............................................................................................................. 30
Biplots con respecto a la variable rents ...................................................................................... 31
TMAX ....................................................................................................................................... 31
TMIN ........................................................................................................................................ 31
TMED ....................................................................................................................................... 32
HUMEDAD ............................................................................................................................... 32
PRECIP ..................................................................................................................................... 33
VIENTO .................................................................................................................................... 33
EVENTOS .................................................................................................................................. 34
PARAM .................................................................................................................................... 34
Biplot TMIN-TMED (Comprobando la correlación) ..................................................................... 35
Biplot TMAX-TMED (Comprobando la correlación) .................................................................... 35
VÍCTOR RUBIO TORROBA 4
Código R ...................................................................................................................................... 36
Sliced Scatterplot .................................................................................................................... 36
Biplot ....................................................................................................................................... 36
MEDIANA (mas robusta al ruido) ............................................................................................ 38
Rango ....................................................................................................................................... 38
Desviacion típica...................................................................................................................... 39
Desviación media absoluta ..................................................................................................... 39
Respecto de la media .......................................................................................................... 39
Respecto de la mediana ...................................................................................................... 40
Matriz de covarianzas ............................................................................................................. 40
Correlaciones ........................................................................................................................... 41
Histograma .............................................................................................................................. 42
Densidad .................................................................................................................................. 42
Funcion de correlaciones ........................................................................................................ 43
Scatterplot con dicha funcion ................................................................................................. 43
Estudio básico ......................................................................................................................... 43
RENTS (Alquileres) ............................................................................................................... 43
EVENTOS .............................................................................................................................. 44
PARAM (Eventos parametrizados) ...................................................................................... 44
TMAX ................................................................................................................................... 45
TMIN .................................................................................................................................... 45
TMED ................................................................................................................................... 46
VIENTO ................................................................................................................................ 46
PRECIP ................................................................................................................................. 47
HUMEDAD ........................................................................................................................... 47
VÍCTOR RUBIO TORROBA 5
Introducción En este anexo se presentan todas las pruebas realizadas en la fase de preprocesado con todas
las variables, ya que en la memoria solo se mostraba el estudio de una única variable. En primer
lugar se muestran las medidas descriptivas de cada atributo, así como los gráficos más
significativos, y finalmente el código necesario para obtener este preprocesado.
Variable RENTS (alquileres) Gráfico básico
Medidas descriptivas Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
3197 8781 13610 13530 18410 24420
Cuantiles
0% 25% 50% 75% 100%
3197.00 8781.25 13608.00 18407.50 24415.00
Rango
21218
Media recortada al 5% (más robusta al
ruido)
13535.57
Desviación típica
5604.473
Desviación media absoluta (respecto a la
media)
4982.667
Desviación media absoluta (respecto a la
mediana)
7149.838
VÍCTOR RUBIO TORROBA 6
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 7
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 8
Variable TMAX (temperatura máxima)
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
10.60 18.40 22.75 25.19 32.70 44.80
Cuantiles
0% 25% 50% 75% 100%
10.60 18.40 22.75 32.70 44.80
Rango
34.2
Media recortada al 5% (más robusta al
ruido)
24.89966
Desviación típica
8.119266
Desviación media absoluta (respecto a la
media)
7.084153
Desviación media absoluta (respecto a la
mediana)
9.11799
VÍCTOR RUBIO TORROBA 9
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 10
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 11
Variable TMIN (temperatura mínima)
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
0.80 9.25 13.85 14.57 20.40 27.40
Cuantiles
0% 25% 50% 75% 100%
0.80 9.25 13.85 20.40 27.40
Rango
26.6
Media recortada al 5% (más robusta al
ruido)
14.64388
Desviación típica
6.397267
Desviación media absoluta (respecto a la
media)
5.553825
Desviación media absoluta (respecto a la
mediana)
8.82147
VÍCTOR RUBIO TORROBA 12
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 13
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 14
Variable TMED (temperatura media)
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
6.20 13.90 17.55 19.37 26.00 35.30
Cuantiles
0% 25% 50% 75% 100%
6.20 13.90 17.55 26.00 35.30
Rango
29.1
Media recortada al 5% (más robusta al
ruido)
19.23061
Desviación típica
6.989536
Desviación media absoluta (respecto a la
media)
6.089891
Desviación media absoluta (respecto a la
mediana)
9.19212
VÍCTOR RUBIO TORROBA 15
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 16
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 17
Variable VIENTO
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
3.70 8.00 11.00 11.11 13.58 22.30
Cuantiles
0% 25% 50% 75% 100%
3.70 8.00 11.00 13.58 22.30
Rango
18.6
Media recortada al 5% (más robusta al
ruido)
10.92381
Desviación típica
3.786606
Desviación media absoluta (respecto a la
media)
3.064754
Desviación media absoluta (respecto a la
mediana)
4.37367
VÍCTOR RUBIO TORROBA 18
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 19
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 20
Variable HUMEDAD
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
37.00 69.00 80.50 78.18 89.00 100.00
Cuantiles
0% 25% 50% 75% 100%
37.0 69.0 80.5 89.0 100.0
Rango
63
Media recortada al 5% (más robusta al
ruido)
79.38435
Desviación típica
13.73494
Desviación media absoluta (respecto a la
media)
11.13388
Desviación media absoluta (respecto a la
mediana)
15.5673
VÍCTOR RUBIO TORROBA 21
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 22
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 23
Variable PRECIP (precipitaciones)
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
0.00 0.00 0.00 1.01 0.00 51.20
Cuantiles
0% 25% 50% 75% 100%
0.0 0.0 0.0 0.0 51.2
Rango
51.2
Media recortada al 5% (más robusta al
ruido)
0.05034
Desviación típica
4.225455
Desviación media absoluta (respecto a la
media)
1.010383
Desviación media absoluta (respecto a la
mediana)
0
VÍCTOR RUBIO TORROBA 24
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 25
Variable EVENTOS
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
0.00 10.00 14.00 14.33 17.00 56.00
Cuantiles
0% 25% 50% 75% 100%
0 10 14 17 56
Rango
56
Media recortada al 5% (más robusta al
ruido)
13.90476
Desviación típica
6.670592
Desviación media absoluta (respecto a la
media)
4.836066
Desviación media absoluta (respecto a la
mediana)
4.4478
VÍCTOR RUBIO TORROBA 26
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 27
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 28
Variable PARAM (eventos parametrizados)
Gráfico básico
Medidas descriptivas
Mínimo 1º cuantil Mediana Media 3º cuantil Máximo
0.00 1.00 2.00 2.28 3.00 7.00
Cuantiles
0% 25% 50% 75% 100%
0 1 2 3 7
Rango
7
Media recortada al 5% (más robusta al
ruido)
2.187075
Desviación típica
1.238176
Desviación media absoluta (respecto a la
media)
0.8743169
Desviación media absoluta (respecto a la
mediana)
1.4826
VÍCTOR RUBIO TORROBA 29
Histograma
Gráfico de densidad
VÍCTOR RUBIO TORROBA 30
Gráfico de dispersión
VÍCTOR RUBIO TORROBA 31
Biplots con respecto a la variable rents
TMAX
TMIN
VÍCTOR RUBIO TORROBA 32
TMED
HUMEDAD
VÍCTOR RUBIO TORROBA 33
PRECIP
VIENTO
VÍCTOR RUBIO TORROBA 34
EVENTOS
PARAM
VÍCTOR RUBIO TORROBA 35
Biplot TMIN-TMED (Comprobando la correlación)
Biplot TMAX-TMED (Comprobando la correlación)
VÍCTOR RUBIO TORROBA 36
Código R
Sliced Scatterplot plot(RENTS ~ i.group, xlab="Fecha", ylab="Alquileres",ann=F,axes=F) axis(1, at=c(0:12),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) title("Gráfico de dispersión fragmentado") plot(HUMEDAD ~ i.group, xlab="Fecha", ylab="Humedad(%)",ann=F,axes=F) axis(1, at=c(0:12),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) title("Gráfico de dispersión fragmentado") plot(VIENTO ~ i.group, xlab="Fecha", ylab="V.Viento(Km/h)",ann=F,axes=F) axis(1, at=c(0:12),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) title("Gráfico de dispersión fragmentado") plot(TMIN ~ i.group, xlab="Fecha", ylab="T.Mínima(ºC)",ann=F,axes=F) axis(1, at=c(0:12),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) title("Gráfico de dispersión fragmentado") plot(TMED ~ i.group, xlab="Fecha", ylab="T.Media(ºC)",ann=F,axes=F) axis(1, at=c(0:12),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) title("Gráfico de dispersión fragmentado")
Biplot plot(i,TMAX,axes=F,xlab="Fecha",ylab="T.Máxima(ºC)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres")
VÍCTOR RUBIO TORROBA 37
plot(i,TMIN,axes=F,xlab="Fecha",ylab="T.Mínima(ºC)",col="red") axis(2) par(new=T) plot(i,TMED,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"T.Media(ºC)") plot(i,TMED,axes=F,xlab="Fecha",ylab="T.Media(ºC)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres") plot(i,VIENTO,axes=F,xlab="Fecha",ylab="V.Viento(Km/h)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres") plot(i,HUMEDAD,axes=F,xlab="Fecha",ylab="Humedad(%)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres") plot(i,PRECIP,axes=F,xlab="Fecha",ylab="Precipitaciones(mm)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres")
VÍCTOR RUBIO TORROBA 38
plot(i,EVENTOS,axes=F,xlab="Fecha",ylab="N.Eventos",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres") plot(i,PARAM,axes=F,xlab="Fecha",ylab="N.Eventos(param)",col="red") axis(2) par(new=T) plot(i,RENTS,pch=3,ylab="",axes=F,col="blue",xlab="") axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(side=4) mtext(side=4,line=3.8,"Alquileres")
MEDIANA (mas robusta al ruido) median(RENTS) [1] 13608 median(TMAX) [1] 22.75 median(TMIN) [1] 13.85 median(TMED) [1] 17.55 median(VIENTO) [1] 11 median(HUMEDAD) [1] 80.5 median(EVENTOS) [1] 14 median(PARAM) [1] 2 mean(PRECIP) [1] 1.010383
Rango
max(RENTS)-min(RENTS) [1] 21218 max(TMAX)-min(TMAX) [1] 34.2 max(TMED)-min(TMED) [1] 29.1 max(TMIN)-min(TMIN) [1] 26.6 max(VIENTO)-min(VIENTO) [1] 18.6 max(HUMEDAD)-min(HUMEDAD) [1] 63 max(EVENTOS)-min(EVENTOS) [1] 56 max(PARAM)-min(PARAM) [1] 7 max(PRECIP)-min(PRECIP) [1] 51.2
VÍCTOR RUBIO TORROBA 39
Desviacion típica
sd(RENTS) [1] 5604.473 sd(TMAX) [1] 8.119266 sd(TMED) [1] 6.989536 sd(TMIN) [1] 6.397267 sd(VIENTO) [1] 3.786606 sd(HUMEDAD) [1] 13.73494 sd(EVENTOS) [1] 6.670592 sd(PARAM) [1] 1.238176 sd(PRECIP) [1] 4.225455
Desviación media absoluta
Respecto de la media Función dma<-function(x,fun=median){
mean(abs(x-fun(x))) }
dma(RENTS) [1] 4982.667 dma(TMAX) [1] 7.084153 dma(TMED) [1] 6.089891 dma(TMIN) [1] 5.553825 dma(VIENTO) [1] 3.064754 dma(HUMEDAD) [1] 11.13388 dma(EVENTOS) [1] 4.836066 dma(PARAM) [1] 0.8743169 dma(PRECIP) [1] 1.010383
VÍCTOR RUBIO TORROBA 40
Respecto de la mediana mad(RENTS) [1] 7149.838 mad(TMAX) [1] 9.11799 mad(TMED) [1] 9.19212 mad(TMIN) [1] 8.82147 mad(VIENTO) [1] 4.37367 mad(HUMEDAD) [1] 15.5673 mad(EVENTOS) [1] 4.4478 mad(PARAM) [1] 1.4826
Matriz de covarianzas
cov(tablaF2012[,2:10])
RENTS TMAX TMED TMIN VIENTO HUMED
RENTS 31410115 -2445.9606 -2983.8711 -4238.3020 -1806.1210 -10187.126
TMAX -2983.871 65.922483 55.376386 47.126527 2.077882 -52.15082
TMED -2445.961 55.376386 48.853613 43.260415 3.233438 -38.70980
TMIN -4238.302 47.126527 43.260415 40.925023 3.700774 -23.84895
VIENTO -1806.121 2.077882 3.233438 3.700774 14.338383 -10.17934
HUMED -10187.126 -52.150817 -38.709802 -23.848954 -10.179344 188.64859
PRECIP -4815.308 -5.89770 -3.0508246 -0.5744788 0.8636471 16.298368
EVENTOS -5472.609 -7.177443 -3.4657534 -0.0238356 -1.0829224 27.264840
PARAM -106.066 -1.424523 -0.7045857 0.0016259 -0.1887941 5.452953
VÍCTOR RUBIO TORROBA 41
PRECIP EVENTOS PARAM
RENTS -4815.3081668 -0.005472609 -1000.106066
TMAX -5.8897699 -7.177443 -1.424523
TMED -3.0508246 -3.465753 -0.7045857
TMIN -0.5744788 0.02383562 0.00162587
VIENTO 0.8636471 -1.08292 -0.1887941
HUMED 16.2983681 20.726484 5.452953
PRECIP 17.8544673 5.090776 1.154907
EVENTOS 5.0907763 44.49680 7.953425
PARAM 1.1549068 7.953425 1.533079
Correlaciones
cor(tablaF2012[,2:7])
RENTS TMAX TMED TMIN VIENTO HUMED
RENTS 1.0000000 -0.0537524 -0.0761723 -0.1182123 -0.0851064 -0.1323397
TMAX -0.0537524 1.0000000 0.9757970 0.9073069 0.0675856 -0.4676464
TMED -0.0761723 0.9757970 1.0000000 0.9674931 0.1221704 -0.4032235
TMIN -0.1182123 0.9073069 0.9674931 1.0000000 0.1527735 -0.2714239
VIENTO -0.0851064 0.0675856 0.1221704 0.1527735 1.0000000 -0.1957235
HUMED -0.1323397 -0.4676464 -0.4032235 -0.2714239 -0.1957235 1.0000000
PRECIP -0.2033368 -0.1716754 -0.1032989 -0.0212523 0.0539775 0.2808303
EVENTOS -0.1463845 -0.1325222 -0.0743336 0.0005586 -0.0428729 0.2975855
PARAM -0.1593911 -0.1417002 -0.0814148 0.0002053 -0.0402676 0.3206437
VÍCTOR RUBIO TORROBA 42
PRECIP EVENTOS PARAM
RENTS -0.20333675 -0.146384555 -0.1593910782
TMAX -0.17167541 -0.132522177 -0.147001740
TMED -0.10329884 -0.07433356 -0.0814147739
TMIN -0.02125231 0.000558557 0.002052623
VIENTO 0.05397750 -0.042872898 -0.0402676261
HUMEDAD 0.28083026 0.297585501 0.3206437187
PRECIP 1.00000000 0.180611814 0.2207451903
EVENTOS 0.18061181 1.00000000 0.9629583899
PARAM 0.22074519 0.962958390 1.00000000
Histograma
hist(RENTS,xlab="Alquileres",ylab="Frecuencia",main="Histograma de alquileres") hist(VIENTO,xlab="Velocidad máxima(km/h)",ylab="Frecuencia",main="Histograma de velocidad máxima del viento") hist(TMED,xlab="Temperatura media(ºC)",ylab="Frecuencia",main="Histograma de temperaturas medias") hist(TMIN,xlab="Temperatura mínima(ºC)",ylab="Frecuencia",main="Histograma de temperaturas mínimas") hist(TMAX,xlab="Temperatura máxima(ºC)",ylab="Frecuencia",main="Histograma de temperaturas máximas") hist(HUMEDAD,xlab="Humedad(%)",ylab="Frecuencia",main="Histograma de nivel de humedad") hist(EVENTOS,xlab="N.Eventos",ylab="Frecuencia",main="Histograma de número de eventos") hist(PRECIP,xlab="Precipitaciones(mm)",ylab="Frecuencia",main="Histograma de precipitaciones") hist(PARAM,xlab="N.Eventos",ylab="Frecuencia",main="Histograma de número de eventos")
Densidad
plot(density(RENTS),main="Densidad de alquileres",ylab="Densidad") plot(density(TMAX),main="Densidad de temperaturas máximas",ylab="Densidad") plot(density(TMIN),main="Densidad de temperaturas mínimas",ylab="Densidad") plot(density(TMED),main="Densidad de temperaturas medias",ylab="Densidad") plot(density(VIENTO),main="Densidad de la velocidad del viento",ylab="Densidad") plot(density(HUMEDAD),main="Densidad de la humedad",ylab="Densidad") plot(density(PRECIP),main="Densidad de las precipitaciones",ylab="Densidad") plot(density(EVENTOS),main="Densidad de eventos",ylab="Densidad")
VÍCTOR RUBIO TORROBA 43
Funcion de correlaciones
panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...) { usr <- par("usr"); on.exit(par(usr)) par(usr = c(0, 1, 0, 1)) r <- abs(cor(x, y)) txt <- format(c(r, 0.123456789), digits=digits)[1] txt <- paste(prefix, txt, sep="") if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt) text(0.5, 0.5, txt, cex = cex.cor * r) }
Scatterplot con dicha funcion
pairs(~RENTS+TMAX+TMED+TMIN+VIENTO+HUMEDAD,data=tablaF2012,lower.panel=panel.smooth,upper.panel=panel.cor,pch=20,main="Scatterplot")
Estudio básico
RENTS (Alquileres)
plot(RENTS, axes=F, ylim=c(0,25000),typ='l', ann=F) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,25000,5000)), col="lightgray", lty="dotted") title(main="Alquileres de Bicicletas en Sevilla en 2012",sub="Meses del año",ylab="Nº alquileres") summary(RENTS) Min. 1st Qu. Median Mean 3rd Qu. Max. 3197 8781 13610 13530 18410 24420 mean(RENTS,trim=0.1) MAS ROBUSTO [1] 13535.57 quantile(RENTS,seq(0,1,0.25)) 0% 25% 50% 75% 100% 3197.00 8781.25 13608.00 18407.50 24415.00
VÍCTOR RUBIO TORROBA 44
EVENTOS
plot(EVENTOS, axes=F, ylim=c(0,60),typ='l', ann=F) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,60,10)), col="lightgray", lty="dotted") title(main="Eventos de Sevilla en 2012",sub="Meses del año",ylab="N. Eventos") summary(EVENTOS) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00 10.00 14.00 14.33 17.00 56.00 mean(EVENTOS,trim=0.1) [1] 13.90476 quantile(EVENTOS,seq(0,1,0.25)) 0% 25% 50% 75% 100% 0 10 14 17 56
PARAM (Eventos parametrizados) plot(PARAM,axes=F,ylim=c(0,7),typ='l',ann=F) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,7,1)), col="lightgray", lty="dotted") title(main="Eventos de Sevilla en 2012",sub="Meses del año",ylab="N. Eventos") summary(PARAM) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.000 1.000 2.000 2.279 3.000 7.000 mean(PARAM,trim=0.1) [1] 2.187075 quantile(PARAM,seq(0,1,0.25)) 0% 25% 50% 75% 100% 0 1 2 3 7
VÍCTOR RUBIO TORROBA 45
TMAX plot(TMAX, axes=F, ylim=c(10,50),typ='l', ann=F)
par(tcl= -0.5)
axis(1,
at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","ma
r","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2)
axis(2)
abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(10,50,10)), col="lightgray", lty="dotted") title(main="Temperaturas máximas de Sevilla en 2012",sub="Meses del año",ylab="Temperatura(ºC)") summary(TMAX) Min. 1st Qu. Median Mean 3rd Qu. Max. 10.60 18.40 22.75 25.19 32.70 44.80 mean(TMAX,trim=0.1) [1] 24.89966 quantile(TMAX,seq(0,1,0.25)) 0% 25% 50% 75% 100% 10.60 18.40 22.75 32.70 44.80
TMIN
plot(TMIN, axes=F, ylim=c(0,30),typ='l', ann=F) par(tcl= -0.5) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,30,5)), col="lightgray", lty="dotted") title(main="Temperaturas mínimas de Sevilla en 2012",sub="Meses del año",ylab="Temperatura(ºC)") summary(TMIN) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.80 9.25 13.85 14.57 20.40 27.40
mean(TMIN,trim=0.1) [1] 14.64388 quantile(TMIN,seq(0,1,0.25)) 0% 25% 50% 75% 100% 0.80 9.25 13.85 20.40 27.40
VÍCTOR RUBIO TORROBA 46
TMED
plot(TMED, axes=F, ylim=c(0,35),typ='l', ann=F) par(tcl= -0.5) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,35,5)), col="lightgray", lty="dotted") title(main="Temperaturas medias de Sevilla en 2012",sub="Meses del año",ylab="Temperatura(ºC)") summary(TMED) Min. 1st Qu. Median Mean 3rd Qu. Max. 6.20 13.90 17.55 19.37 26.00 35.30 mean(TMED,trim=0.1) [1] 19.23061 quantile(TMED,seq(0,1,0.25)) 0% 25% 50% 75% 100% 6.20 13.90 17.55 26.00 35.30
VIENTO
plot(VIENTO, axes=F, ylim=c(0,25),typ='l', ann=F) par(tcl= -0.5) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,25,5)), col="lightgray", lty="dotted") title(main="Máxima velocidad media del viento en Sevilla en 2012",sub="Meses del año",ylab="Velocidad(km/h)") summary(VIENTO) Min. 1st Qu. Median Mean 3rd Qu. Max. 3.70 8.00 11.00 11.11 13.58 22.30 mean(VIENTO,trim=0.1) [1] 10.92381 quantile(VIENTO,seq(0,1,0.25)) 0% 25% 50% 75% 100% 3.700 8.000 11.000 13.575 22.300
VÍCTOR RUBIO TORROBA 47
PRECIP
plot(PRECIP, axes=F, ylim=c(0,100),typ='l', ann=F) plot(PRECIP, axes=F, ylim=c(0,55),typ='l', ann=F) par(tcl= -0.5) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(0,50,10)), col="lightgray", lty="dotted") title(main="Precipitación total del dia en Sevilla en 2012",sub="Meses del año",ylab="Precipitación(mm)") summary(PRECIP) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00 0.00 0.00 1.01 0.00 51.20
mean(PRECIP,trim=0.1)
[1] 0.05034014
quantile(PRECIP,seq(0,1,0.25))
0% 25% 50% 75% 100%
0.0 0.0 0.0 0.0 51.2
HUMEDAD
plot(HUMEDAD, axes=F, ylim=c(35,100),typ='l', ann=F) par(tcl= -0.5) axis(1, at=c(0,31,61,91,122,152,182,213,245,274,305,335,366),labels=c("","ene","","mar","","may","","jul","","sep","","nov",""),lwd=1,lwd.ticks=2) axis(2) abline(v=c(0,31,61,91,122,152,182,213,245,274,305,335,366), col="lightgray", lty="dotted") abline(h=(seq(40,100,10)), col="lightgray", lty="dotted") title(main="Humedad máxima en Sevilla en 2012",sub="Meses del año",ylab="Humedad(%)")
summary(HUMEDAD) Min. 1st Qu. Median Mean 3rd Qu. Max. 37.00 69.00 80.50 78.18 89.00 100.00 mean(HUMEDAD,trim=0.1) [1] 79.38435 quantile(HUMEDAD,seq(0,1,0.25)) 0% 25% 50% 75% 100% 37.0 69.0 80.5 89.0 100.0
ANEXO 2: TESTEO DE DIFERENTES TIPOS DE REDES
NEURONALES
VÍCTOR RUBIO TORRBA 2
Índice de contenido Introducción .................................................................................................................................. 3
Entrenamiento .............................................................................................................................. 3
Tipo red arbitraria, entrenamiento Backpropagation (X-X-1), volumen 100% BD, iteraciones
1000 ........................................................................................................................................... 3
ESQUELETO ............................................................................................................................ 5
Prueba de iteraciones ............................................................................................................... 5
Tipo red recurrente, entrenamiento Backpropagation (X-X-1), volumen 100% BD, iteraciones
1000 ........................................................................................................................................... 6
ESQUELETO ............................................................................................................................ 7
Tipo red recurrente, entrenamiento Rprop(X-X-1), volumen 100% BD, iteraciones 1000 ....... 7
ESQUELETO ............................................................................................................................ 9
Tipo red feedforward, entrenamiento RProp (X-X-1), volumen 100% BD, iteraciones 1000 ... 9
ESQUELETO .......................................................................................................................... 10
Tipo red feedforward, entrenamiento BackPropTrainerMix (X-X-1), volumen 100% BD,
iteraciones 1000, Gauss=3 ...................................................................................................... 11
ESQUELETO .......................................................................................................................... 12
Tipo red feedforward, entrenamiento RPropMinusTrainerMix (X-X-1), volumen 100% BD,
iteraciones 1000, Gauss=3 ...................................................................................................... 13
ESQUELETO .......................................................................................................................... 14
Tipo red FeedForward entrenamiento Backpropagation (X-X-1), volumen 100% BD,
iteraciones 1000 ...................................................................................................................... 15
ESQUELETO .......................................................................................................................... 16
Perceptrón multicapa WEKA ................................................................................................... 16
VÍCTOR RUBIO TORRBA 3
Introducción En este anexo se recogen las pruebas iniciales realizadas con diferentes redes neuronales, así
como el código de cada tipo de red neuronal entrenada. En estas pruebas se busca obtener
aquellos atributos más influyentes en el alquiler de bicicletas en Sevilla, los cuales serán usados
en posteriores pruebas, y los tipos de redes neuronales que mejores resultados proporcionen
en este problema concreto.
Entrenamiento
Tipo red arbitraria, entrenamiento Backpropagation (X-X-1), volumen 100% BD,
iteraciones 1000
Atributos Error
TMEDNORM ('Average error:', 0.034455981838630391)
('Max error:', 0.13919123448164714,
'Median error:', 0.025037704450937934)
TMINNORM ('Average error:', 0.03484471566883611)
('Max error:', 0.1592077348998579,
'Median error:', 0.023589101665501946)
TMAXNORM ('Average error:', 0.034603982733588411)
('Max error:', 0.14441633112151447,
'Median error:', 0.023684189224626652)
VNORM ('Average error:', 0.034899099684498044)
('Max error:', 0.14940824119779961,
'Median error:', 0.024452728202024585)
HNORM ('Average error:', 0.034168441356756757)
('Max error:', 0.14652640777250714,
'Median error:', 0.023531557149624242)
VÍCTOR RUBIO TORRBA 4
ENORM ('Average error:', 0.033871454199997694)
('Max error:', 0.14434282917435212,
'Median error:', 0.023335805455503702)
PNORM ('Average error:', 0.03307213617835339)
('Max error:', 0.12933836779832181,
'Median error:', 0.023587077570537077)
PNORM,ENORM ('Average error:', 0.032693780654721075)
('Max error:', 0.14871529283489315,
'Median error:', 0.023143954975969605)
PNORM,HNORM ('Average error:', 0.033019515926496691)
('Max error:', 0.13695177167643249,
'Median error:', 0.022187212369620103)
TMEDNORM, ENORM ('Average error:', 0.033063807532791631)
('Max error:', 0.1859039203967586, 'Median error:',
0.020446041217533909)
TMEDNORM,HNORM ('Average error:', 0.029075846931424142)
('Max error:', 0.13675282634492178,
'Median error:', 0.021774416994258524)
TMEDNORM,VNORM ('Average error:', 0.031863710317301848)
('Max error:', 0.14026388430493197,
'Median error:', 0.024862376553660814)
TMEDNORM,HNORM,VNORM ('Average error:', 0.027209637476496247)
('Max error:', 0.16482248469531005,
'Median error:', 0.020253320494362584)
VÍCTOR RUBIO TORRBA 5
TMEDNORM,PNORM ('Average error:', 0.029248298672450768)
('Max error:', 0.1409924233219908,
'Median error:', 0.023564768435226483)
TMEDNORM,PNORM,HNORM
('Average error:', 0.027700588727169979)
('Max error:', 0.14837029747605049,
'Median error:', 0.022849627765128479)
TMEDNORM,PNORM,HNORM,VNORM ('Average error:', 0.026325564418503696)
('Max error:', 0.16537707406506391,
'Median error:', 0.02006210198695595)
TODO ('Average error:', 0.024250420139181748)
('Max error:', 0.20310604131972432,
'Median error:', 0.018010661014907899)
ESQUELETO
from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import BackpropTrainer from pybrain.tools.shortcuts import buildNetwork from pybrain.structure import TanhLayer from pybrain.rl.environments import Task import csv ds=SupervisedDataSet(2,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['ENORM']), (row['RNORM'],)) print ds net = buildNetwork(2,2,1, bias=True, hiddenclass=TanhLayer) trainer = BackpropTrainer(net,ds) trainer.trainOnDataset(ds,400) trainer.testOnData(verbose=True)
Prueba de iteraciones TMEDNORM,PNORM,HNORM,VNORM,ENORM 8000 iteraciones
('Average error:', 0.023374125628375757)
('Max error:', 0.18553878157581272, 'Median error:', 0.016322666352749982)
VÍCTOR RUBIO TORRBA 6
Tipo red recurrente, entrenamiento Backpropagation (X-X-1), volumen 100% BD,
iteraciones 1000
TMEDNORM,VNORM,HNORM,ENORM,PNORM ('Average error:', 0.024980240139553408)
('Max error:', 0.15521238891539405,
'Median error:', 0.01709927824527795)
TMEDNORM,HNORM,VNORM ('Average error:', 0.026845101564794742)
('Max error:', 0.16103141373460078,
'Median error:', 0.020129783774724155)
TMEDNORM,PNORM ('Average error:', 0.029725280197220445)
('Max error:', 0.14734273111954371,
'Median error:', 0.024516069050342777)
TMEDNORM,PNORM,HNORM
('Average error:', 0.0271758949203523)
('Max error:', 0.12567525204282934,
'Median error:', 0.021013247198490379)
TMEDNORM,PNORM,HNORM,VNORM ('Average error:', 0.026039795237926721)
('Max error:', 0.15279378437747695,
'Median error:', 0.019930980752616137)
TMEDNORM,HNORM ('Average error:', 0.028227481227800676)
('Max error:', 0.13349132092054797,
'Median error:', 0.021798988001022632)
VÍCTOR RUBIO TORRBA 7
ESQUELETO
from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import BackpropTrainer from pybrain.tools.shortcuts import buildNetwork from pybrain.structure import TanhLayer from pybrain.rl.environments import Task from pybrain.structure import LinearLayer, SigmoidLayer import csv ds=SupervisedDataSet(5,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['PNORM'],row['HNORM'],row['VNORM'],row['ENORM']), (row['RNORM'],)) rnn=buildNetwork(5,5,1,hiddenclass=SigmoidLayer,outclass=LinearLayer,outputbias=False,recurrent=True) trainer = BackpropTrainer(rnn,ds) trainer.trainOnDataset(ds,1000) trainer.testOnData(verbose=True)
Tipo red recurrente, entrenamiento Rprop(X-X-1), volumen 100% BD, iteraciones
1000
TMEDNORM,HNORM epoch 996 total error 0.032996 avg
weight 0.89471
epoch 997 total error 0.032995 avg
weight 0.89502
epoch 998 total error 0.032995 avg
weight 0.89537
epoch 999 total error 0.032994 avg
weight 0.89578
TMEDNORM,VNORM,HNORM,ENORM,PNORM epoch 996 total error 0.023235 avg
weight 460.85
epoch 997 total error 0.023234 avg
weight 460.85
epoch 998 total error 0.023233 avg
weight 460.85
epoch 999 total error 0.023232 avg
weight 460.85
VÍCTOR RUBIO TORRBA 8
TMEDNORM,HNORM,VNORM epoch 996 total error 0.027186 avg weight 1.1681
epoch 997 total error 0.027184 avg weight 1.1682
epoch 998 total error 0.027184 avg weight 1.1682
epoch 999 total error 0.027184 avg weight 1.1682
TMEDNORM,PNORM epoch 996 total error 0.028032 avg weight 1.5779
epoch 997 total error 0.028032 avg weight 1.5772
epoch 998 total error 0.028032 avg weight 1.5776
epoch 999 total error 0.028032 avg weight 1.578
TMEDNORM,PNORM,HNORM
epoch 996 total error 0.026458 avg weight 1.5002
epoch 997 total error 0.026458 avg weight 1.5012
epoch 998 total error 0.026457 avg weight 1.5023
epoch 999 total error 0.026461 avg weight 1.5024
TMEDNORM,PNORM,HNORM,VNORM epoch 996 total error 0.026014 avg weight 1.2899
epoch 997 total error 0.026018 avg weight 1.2901
epoch 998 total error 0.026015 avg weight 1.2901
epoch 999 total error 0.026014 avg weight 1.2899
VÍCTOR RUBIO TORRBA 9
ESQUELETO
from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import RPropMinusTrainer from pybrain.tools.shortcuts import buildNetwork from pybrain.structure import TanhLayer from pybrain.rl.environments import Task from pybrain.structure import LinearLayer, SigmoidLayer import csv ds=SupervisedDataSet(5,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['HNORM'],row['PNORM'],row['VNORM'],row['ENORM']), (row['RNORM'],)) rnn=buildNetwork(5,5,1,hiddenclass=TanhLayer,outputbias=False,recurrent=True) trainer = RPropMinusTrainer(rnn,verbose=True) trainer.trainOnDataset(ds,1000)
Tipo red feedforward, entrenamiento RProp (X-X-1), volumen 100% BD,
iteraciones 1000
TMEDNORM,HNORM epoch 996 total error 0.028301 avg weight 1.3961
epoch 997 total error 0.028303 avg weight 1.3992
epoch 998 total error 0.028302 avg weight 1.3954
epoch 999 total error 0.028302 avg weight 1.3972
TMEDNORM,VNORM,HNORM,ENORM,PNORM epoch 996 total error 0.021952 avg weight 12.639
epoch 997 total error 0.021951 avg weight 12.637
epoch 998 total error 0.021949 avg weight 12.635
epoch 999 total error 0.021947 avg weight 12.632
TMEDNORM,HNORM,VNORM epoch 996 total error 0.028586 avg weight 1.5572
epoch 997 total error 0.028586 avg weight 1.5614
epoch 998 total error 0.028583 avg weight 1.5592
epoch 999 total error 0.028575 avg weight 1.5571
VÍCTOR RUBIO TORRBA 10
TMEDNORM,PNORM epoch 996 total error 0.029275 avg weight 5.8238
epoch 997 total error 0.029275 avg weight 5.8231
epoch 998 total error 0.029275 avg weight 5.8221
epoch 999 total error 0.029275 avg weight 5.821
TMEDNORM,PNORM,HNORM
epoch 996 total error 0.026371 avg weight 10.953
epoch 997 total error 0.026371 avg weight 10.952
epoch 998 total error 0.02637 avg weight 10.951
epoch 999 total error 0.02637 avg weight 10.95
TMEDNORM,PNORM,HNORM,VNORM epoch 996 total error 0.024374 avg weight 862.34
epoch 997 total error 0.024375 avg weight 863.36
epoch 998 total error 0.024374 avg weight 864.38
epoch 999 total error 0.024374 avg weight 865.4
ESQUELETO
from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import RPropMinusTrainer from pybrain.tools.shortcuts import buildNetwork from pybrain.structure import TanhLayer from pybrain.rl.environments import Task from pybrain.structure import LinearLayer, SigmoidLayer import csv ds=SupervisedDataSet(5,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['ENORM'],row['TMEDNORM'],row['HNORM'],row['PNORM'],row['VNORM']), (row['RNORM'],)) rnn=buildNetwork(5,5,1,hiddenclass=TanhLayer,outputbias=False) trainer = RPropMinusTrainer(rnn,verbose=True) trainer.trainOnDataset(ds,1000)
VÍCTOR RUBIO TORRBA 11
Tipo red feedforward, entrenamiento BackPropTrainerMix (X-X-1), volumen
100% BD, iteraciones 1000, Gauss=3
TMEDNORM,HNORM Total error: 0.131649636248
Total error: 0.12124346472
Total error: 0.125078463086
Total error: 0.113968630895
TMEDNORM,VNORM,HNORM,ENORM,PNORM Total error: 0.119299945931
Total error: 0.117101874639
Total error: 0.11717582952
Total error: 0.123316909761
TMEDNORM,HNORM,VNORM Total error: 0.113368695675
Total error: 0.11260379871
Total error: 0.113646074316
Total error: 0.108862878034
TMEDNORM,PNORM Total error: 0.109827548882
Total error: 0.120108322897
Total error: 0.105028469628
Total error: 0.125837899892
TMEDNORM,PNORM,HNORM
Total error: 0.123676884028
Total error: 0.102199269199
Total error: 0.112200977445
Total error: 0.1110689519
TMEDNORM,PNORM,HNORM,VNORM Total error: 0.116853317222
Total error: 0.115976230403
Total error: 0.0994715570745
Total error: 0.118182020927
VÍCTOR RUBIO TORRBA 12
ESQUELETO
import pylab as p import numpy as np from pybrain.structure.modules import LinearLayer, BiasUnit, SigmoidLayer from pybrain.structure import FullConnection, FeedForwardNetwork from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers.mixturedensity import RPropMinusTrainerMix, BackpropTrainerMix from pybrain.structure.modules.mixturedensity import MixtureDensityLayer import csv ds=SupervisedDataSet(2,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['PNORM']), (row['RNORM'],)) n=FeedForwardNetwork() n.addInputModule(LinearLayer(2,name='in')) N_GAUSSIANS=2 n.addOutputModule(MixtureDensityLayer(dim=1,name='out',mix=N_GAUSSIANS)) n.addModule(BiasUnit(name='bias')) n.addConnection(FullConnection(n['bias'],n['out'])) n.addModule(SigmoidLayer(2,name='hidden')) n.addConnection(FullConnection(n['bias'],n['hidden'])) n.addConnection(FullConnection(n['in'],n['hidden'])) n.addConnection(FullConnection(n['hidden'],n['out'])) n.sortModules() trainer=BackpropTrainerMix(n,ds,verbose=True,weightdecay=0.05) trainer.trainEpochs(1000)
VÍCTOR RUBIO TORRBA 13
Tipo red feedforward, entrenamiento RPropMinusTrainerMix (X-X-1), volumen
100% BD, iteraciones 1000, Gauss=3
TMEDNORM,HNORM epoch 996 total error -0.096347 avg weight 1.4875
epoch 997 total error -0.096343 avg weight 1.4884
epoch 998 total error -0.096328 avg weight 1.4895
epoch 999 total error -0.096299 avg weight 1.4907
TMEDNORM,VNORM,HNORM,ENORM,PNORM epoch 996 total error -0.20844 avg weight 1.9525
epoch 997 total error -0.20678 avg weight 1.9521
epoch 998 total error -0.2053 avg weight 1.9486
epoch 999 total error -0.20311 avg weight 1.9452
TMEDNORM,HNORM,VNORM epoch 996 total error -0.18116 avg weight 2.0453
epoch 997 total error -0.17963 avg weight 2.0454
epoch 998 total error -0.18121 avg weight 2.0456
epoch 999 total error -0.17952 avg weight 2.0453
TMEDNORM,PNORM epoch 996 total error -0.20625 avg weight 1.6396
epoch 997 total error -0.20638 avg weight 1.6397
epoch 998 total error -0.20643 avg weight 1.6402
epoch 999 total error -0.20653 avg weight 1.6409
TMEDNORM,PNORM,HNORM
epoch 996 total error -0.081132 avg weight 1.4152
epoch 997 total error -0.080775 avg weight 1.4147
epoch 998 total error -0.079964 avg weight 1.4169
epoch 999 total error -0.078522 avg weight 1.4193
TMEDNORM,PNORM,HNORM,VNORM epoch 996 total error 0.41683 avg weight 2.4157
epoch 997 total error 0.42586 avg weight 2.413
epoch 998 total error 0.42106 avg weight 2.4158
epoch 999 total error 0.42293 avg weight 2.4172
VÍCTOR RUBIO TORRBA 14
ESQUELETO
import pylab as p import numpy as np from pybrain.structure.modules import LinearLayer, BiasUnit, SigmoidLayer, TanhLayer from pybrain.structure import FullConnection, FeedForwardNetwork from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers.mixturedensity import RPropMinusTrainerMix, BackpropTrainerMix from pybrain.structure.modules.mixturedensity import MixtureDensityLayer import csv ds=SupervisedDataSet(2,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['HNORM']), (row['RNORM'],)) n=FeedForwardNetwork() n.addInputModule(LinearLayer(2,name='in')) N_GAUSSIANS=3 n.addOutputModule(MixtureDensityLayer(dim=1,name='out',mix=N_GAUSSIANS)) n.addModule(BiasUnit(name='bias')) n.addConnection(FullConnection(n['bias'],n['out'])) n.addModule(TanhLayer(2,name='hidden')) n.addConnection(FullConnection(n['bias'],n['hidden'])) n.addConnection(FullConnection(n['in'],n['hidden'])) n.addConnection(FullConnection(n['hidden'],n['out'])) n.sortModules() trainer=RPropMinusTrainerMix(n,dataset=ds,verbose=True,weightdecay=0.05) trainer.trainEpochs(1000)
VÍCTOR RUBIO TORRBA 15
Tipo red FeedForward entrenamiento Backpropagation (X-X-1), volumen 100%
BD, iteraciones 1000
TMEDNORM,HNORM Total error: 0.0290285445767
Total error: 0.0292983987426
Total error: 0.0294304607322
Total error: 0.0293575461873
TMEDNORM,VNORM,HNORM,ENORM,VNORM Total error: 0.0255612403969
Total error: 0.0258214712596
Total error: 0.0255174790136
Total error: 0.0249727520467
TMEDNORM,HNORM,VNORM Total error: 0.0329733853538
Total error: 0.0335936463935
Total error: 0.0334881475204
Total error: 0.0334944777898
TMEDNORM,PNORM Total error: 0.0342519441803
Total error: 0.0344692571745
Total error: 0.034480496446
Total error: 0.0341173265594
TMEDNORM,PNORM,HNORM
Total error: 0.0276491772735
Total error: 0.0278530463046
Total error: 0.0277233989191
Total error: 0.0279773720399
TMEDNORM,PNORM,HNORM,VNORM Total error: 0.0261774594315
Total error: 0.0265312368007
Total error: 0.0265440274433
Total error: 0.0265398696643
VÍCTOR RUBIO TORRBA 16
ESQUELETO import pylab as p import numpy as np from pybrain.structure.modules import LinearLayer, BiasUnit, SigmoidLayer, TanhLayer from pybrain.structure import FullConnection, FeedForwardNetwork from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers.backprop import BackpropTrainer import csv ds=SupervisedDataSet(3,1) fieldnames = ['FECHA','RNORM','TMAXNORM','TMINNORM','TMEDNORM','VNORM','HNORM','PNORM','ENORM','PARAM'] with open('tablaF2012norm.csv') as csvfile: reader = csv.DictReader(csvfile,delimiter=',') for row in reader: ds.addSample((row['TMEDNORM'],row['HNORM'],row['PNORM']), (row['RNORM'],)) n=FeedForwardNetwork() n.addInputModule(LinearLayer(3,name='in')) n.addOutputModule(LinearLayer(dim=1,name='out')) n.addModule(BiasUnit(name='bias')) n.addConnection(FullConnection(n['bias'],n['out'])) n.addModule(TanhLayer(3,name='hidden')) n.addConnection(FullConnection(n['bias'],n['hidden'])) n.addConnection(FullConnection(n['in'],n['hidden'])) n.addConnection(FullConnection(n['hidden'],n['out'])) n.sortModules() trainer=BackpropTrainer(n,ds,verbose=True) trainer.trainEpochs(1000)
Perceptrón multicapa WEKA Utilizado como un simple contraste entre las redes obtenidas con PyBrain y las mismas redes
con otro software
ANEXO 3: FUNCIONES DE ACTIVACION DE REDES
NEURONALES
Índice de contenido Introducción .................................................................................................................................. 3
Redes escogidas ............................................................................................................................ 3
Pruebas realizadas ......................................................................................................................... 3
Red feedforward ....................................................................................................................... 3
Red Recurrente (hidden a hidden) ............................................................................................ 7
Introducción En este anexo se adjuntan todas las pruebas realizadas para seleccionar las funciones de
activación de cada capa, para ello primero se han seleccionado las redes que mejor resultado
obtuvieron en las pruebas realizadas en el anterior anexo y después se han realizado pruebas
con todas las combinaciones posibles de funciones de activación en dichas redes
Redes escogidas red recurrente, entrenamiento Rprop(X-X-1), volumen 100% BD, iteraciones 1000
red feedforward, entrenamiento RProp (X-X-1), volumen 100% BD, iteraciones 1000
Pruebas realizadas
Red feedforward
Capa Entrada Capa Oculta Capa Salida Error
Linear Linear Linear
epoch 430 total error 0.03193
avg weight 0.87806
(Invariable desde la epoca 200)
Linear Linear Sigmoid
epoch 420 total error 0.031737
avg weight 1.0672
(Invariable desde la epoca 200)
Linear Linear Tanh
epoch 480 total error 0.03191
avg weight 0.9364
(Converge más lentamente)
Linear Linear SoftMax epoch 226 total error 0.16628
avg weight 1041.6
Linear Sigmoid Sigmoid epoch 999 total error 0.021621
avg weight 649.09
Linear Sigmoid Linear epoch 999 total error 0.023705
avg weight 360.61
Linear Sigmoid Tanh epoch 999 total error 0.022236
avg weight 39.293
Linear Tanh Linear epoch 999 total error 0.022079
avg weight 6.7201
Linear Tanh Sigmoid epoch 999 total error 0.024004
avg weight 12.682
Linear Tanh Tanh epoch 999 total error 0.024579
avg weight 782.79
Linear Tanh Softmax epoch 999 total error 0.16628
avg weight 2003.6
Linear Softmax Sigmoid epoch 999 total error 0.034789
avg weight 3275.4
Linear Softmax Linear epoch 999 total error 0.031614
avg weight 1.7654
Linear Softmax Tanh epoch 999 total error 0.029909
avg weight 1509.7
Capa Entrada Capa Oculta Capa Salida Error
Sigmoid Linear Linear epoch 999 total error 0.032245
avg weight 0.93702
Sigmoid Linear Sigmoid epoch 999 total error 0.032054
avg weight 2.344
Sigmoid Linear Tanh epoch 999 total error 0.032518
avg weight 1.0769
Sigmoid Linear SoftMax epoch 490 total error 0.16628
avg weight 2359.8
Sigmoid Sigmoid Sigmoid epoch 999 total error 0.032405
avg weight 3.47
Sigmoid Sigmoid Linear epoch 999 total error 0.032108
avg weight 1.9469
Sigmoid Sigmoid Tanh epoch 999 total error 0.032144
avg weight 1.6691
Sigmoid Tanh Linear epoch 999 total error 0.032338
avg weight 3.9294
Sigmoid Tanh Sigmoid epoch 999 total error 0.031873
avg weight 3.8894
Sigmoid Tanh Tanh epoch 999 total error 0.031638
avg weight 1.3277
Sigmoid Tanh Softmax epoch 439 total error 0.16628
avg weight 858.36
Sigmoid Softmax Sigmoid epoch 999 total error 0.031548
avg weight 2.1619
Sigmoid Softmax Linear epoch 999 total error 0.02771
avg weight 2.3515
Sigmoid Softmax Tanh epoch 999 total error 0.031995
avg weight 2.7317
Capa Entrada Capa Oculta Capa Salida Error
Tanh Linear Linear epoch 317 total error 0.032228
avg weight 0.81996
Tanh Linear Sigmoid epoch 999 total error 0.03207
avg weight 1.1422
Tanh Linear Tanh epoch 999 total error 0.032251
avg weight 0.92481
Tanh Linear SoftMax epoch 999 total error 0.16628
avg weight 4905
Tanh Sigmoid Sigmoid epoch 999 total error 0.021585
avg weight 67.892
Tanh Sigmoid Linear epoch 999 total error 0.024778
avg weight 4.8025
Tanh Sigmoid Tanh epoch 999 total error 0.022636
avg weight 60.695
Tanh Tanh Linear epoch 999 total error 0.023365
avg weight 599.67
Tanh Tanh Sigmoid epoch 999 total error 0.023714
avg weight 11.403
Tanh Tanh Tanh epoch 999 total error 0.025131
avg weight 11.771
Tanh Tanh Softmax epoch 13 total error 0.16628
avg weight 3.962
Tanh Softmax Sigmoid epoch 999 total error 0.034789
avg weight 3617.7
Tanh Softmax Linear epoch 999 total error 0.028486
avg weight 1.8772
Tanh Softmax Tanh epoch 999 total error 0.039643
avg weight 674.05
Red Recurrente (hidden a hidden)
Capa Entrada Capa Oculta Capa Salida Error
Linear Linear Linear epoch 999 total error 0.03193
avg weight 0.85577
Linear Linear Sigmoid epoch 999 total error 0.031737
avg weight 1.2625
Linear Linear Tanh epoch 999 total error 0.03191
avg weight 0.93525
Linear Linear SoftMax epoch 999 total error 0.16628
avg weight 3768
Linear Sigmoid Sigmoid epoch 999 total error 0.022107
avg weight 44.523
Linear Sigmoid Linear epoch 999 total error 0.02353
avg weight 16.328
Linear Sigmoid Tanh epoch 999 total error 0.022702
avg weight 61.743
Linear Tanh Linear epoch 999 total error 0.023407
avg weight 14.612
Linear Tanh Sigmoid epoch 999 total error 0.021663
avg weight 13.664
Linear Tanh Tanh epoch 999 total error 0.023444
avg weight 358.14
Linear Tanh Softmax epoch 770 total error 0.16628
avg weight 1178.6
Linear Softmax Sigmoid epoch 999 total error 0.034789
avg weight 1547.6
Linear Softmax Linear epoch 999 total error 0.031112
avg weight 2.7461
Linear Softmax Tanh epoch 999 total error 0.030478
avg weight 670.71
Capa Entrada Capa Oculta Capa Salida Error
Sigmoid Linear Linear epoch 999 total error 0.034344
avg weight 1.0177
Sigmoid Linear Sigmoid epoch 999 total error 0.031955
avg weight 1.2576
Sigmoid Linear Tanh epoch 999 total error 0.035438
avg weight 0.99811
Sigmoid Linear SoftMax epoch 10 total error 0.16628
avg weight 1.9138
Sigmoid Sigmoid Sigmoid epoch 999 total error 0.032401
avg weight 0.98482
Sigmoid Sigmoid Linear epoch 999 total error 0.032134
avg weight 2.4118
Sigmoid Sigmoid Tanh epoch 999 total error 0.03251
avg weight 2.657
Sigmoid Tanh Linear epoch 999 total error 0.032433
avg weight 2.7835
Sigmoid Tanh Sigmoid epoch 999 total error 0.031741
avg weight 2.4897
Sigmoid Tanh Tanh epoch 999 total error 0.028564
avg weight 3.263
Sigmoid Tanh Softmax epoch 999 total error 0.16628
avg weight 1536
Sigmoid Softmax Sigmoid epoch 999 total error 0.032924
avg weight 467.2
Sigmoid Softmax Linear epoch 999 total error 0.032518
avg weight 3.7062
Sigmoid Softmax Tanh epoch 999 total error 0.032163
avg weight 64.989
Capa Entrada Capa Oculta Capa Salida Error
Tanh Linear Linear epoch 999 total error 0.032228
avg weight 0.99275
Tanh Linear Sigmoid epoch 999 total error 0.03207
avg weight 1.0404
Tanh Linear Tanh epoch 999 total error 0.032251
avg weight 0.93004
Tanh Linear SoftMax epoch 999 total error 0.16628
avg weight 3768.8
Tanh Sigmoid Sigmoid epoch 999 total error 0.022676
avg weight 57.341
Tanh Sigmoid Linear epoch 999 total error 0.024708
avg weight 4.0813
Tanh Sigmoid Tanh epoch 999 total error 0.024466
avg weight 27.738
Tanh Tanh Linear epoch 999 total error 0.023521
avg weight 2.9227
Tanh Tanh Sigmoid epoch 999 total error 0.024109
avg weight 4.9536
Tanh Tanh Tanh epoch 999 total error 0.022221
avg weight 96.823
Tanh Tanh Softmax epoch 14 total error 0.16628
avg weight 3.5875
Tanh Softmax Sigmoid epoch 999 total error 0.032313
avg weight 1237
Tanh Softmax Linear epoch 999 total error 0.032826
avg weight 706.79
Tanh Softmax Tanh epoch 999 total error 0.032116
avg weight 1.7401
ANEXO 4: AJUSTE DE PARAMETROS DE REDES
NEURONALES
Índice de contenidos Introducción .................................................................................................................................. 3
Redes neuronales escogidas ......................................................................................................... 3
Pruebas realizadas erróneas ......................................................................................................... 3
RED RECURRENTE ...................................................................................................................... 3
Parámetro deltamax.............................................................................................................. 3
Parametro deltamin .............................................................................................................. 4
Parametro delta0 .................................................................................................................. 6
Número de neuronas ............................................................................................................ 8
Parámetro deltamin ............................................................................................................ 12
Parametro deltamax............................................................................................................ 15
Pruebas realizadas correctas ....................................................................................................... 17
RED RECURRENTE .................................................................................................................... 17
PRUEBAS DE ESTRUCTURA Y NÚMERO DE NEURONAS ...................................................... 17
RED 5-5 SIN RECURRENCIA AÑADIDA ..................................................................................... 19
Parametro deltamax............................................................................................................ 19
Parametro deltamin ............................................................................................................ 24
Parametro delta0 ................................................................................................................ 31
Parametro etaminus............................................................................................................ 35
Parametro etaplus ............................................................................................................... 36
Parametro etaminus............................................................................................................ 41
Parametro deltamin ............................................................................................................ 45
FEEDFORWARD NETWORK ...................................................................................................... 48
PRUEBAS DE ESTRUCTURA Y NÚMERO DE NEURONAS ...................................................... 48
RED 10 ..................................................................................................................................... 49
Parametro etaminus............................................................................................................ 49
Parametro etaplus ............................................................................................................... 50
Parametro deltamin ............................................................................................................ 52
Parametro deltamax............................................................................................................ 55
Parametro delta0 ................................................................................................................ 59
Pruebas red feedfoward.............................................................................................................. 61
Pruebas red recurrente ............................................................................................................... 67
Introducción En el presente anexo se recogen todas las pruebas realizadas para el ajuste de los parámetros
en las dos redes neuronales con las funciones de activación escogidas en el anexo anterior; para
cada una de ellas se ha intentado elegir con una precisión razonable el mejor ajuste de cada
parámetro.
Redes neuronales escogidas Red feedforward con entrenamiento Rprop y funciones de activación lineal-sigmoid-
sigmoid.
Red recursiva con entrenamiento Rprop y funciones de activación lineal-sigmoid-
sigmoid.
Pruebas realizadas erróneas
RED RECURRENTE
Parámetro deltamax
deltamax=3
epoch 999 total error 0.022793 avg weight 30.142
Media de errores 0.589384040856
deltamax=4
epoch 999 total error 0.021182 avg weight 22.754
Media de errores 0.522410087606
deltamax=6
epoch 999 total error 0.022698 avg weight 529.63
Media de errores 0.494698813129
deltamax=7
epoch 999 total error 0.022024 avg weight 41.051
Media de errores 0.286755154787
deltamax=8
epoch 999 total error 0.027209 avg weight 443.16
Media de errores 0.272503059785
deltamax=9
epoch 999 total error 0.020914 avg weight 36.85
Media de errores 0.35911851566
Parametro deltamin deltamin=0.001
epoch 999 total error 0.022175 avg weight 25.899
Media de errores 0.494110733869
deltamin=0.0001
epoch 999 total error 0.022177 avg weight 37.665
Media de errores 0.282246335097
deltamin=0.00001
epoch 999 total error 0.024665 avg weight 7.1991
Media de errores 0.337628595756
deltamin=0.00005
epoch 999 total error 0.021945 avg weight 37.534
Media de errores 0.339628748842
deltamin=0.0005
epoch 999 total error 0.022486 avg weight 16.451
Media de errores 0.546367968447
deltamin=0.00003
epoch 999 total error 0.021927 avg weight 20.123
Media de errores 0.336902918324
deltamin=0.00008
epoch 999 total error 0.022985 avg weight 5.7956
Media de errores 0.308013837623
deltamin=0.00011
epoch 999 total error 0.022748 avg weight 158.14
Media de errores 0.203038168455
deltamin=0.00011
epoch 999 total error 0.02211 avg weight 29.765
Media de errores 0.380545222257
deltamin=0.000105
epoch 999 total error 0.022495 avg weight 16.476
Media de errores 0.631365720825
deltamin=0.00009
epoch 999 total error 0.021021 avg weight 47.062
Media de errores 0.164220131904
deltamin=0.000095
epoch 999 total error 0.022228 avg weight 34.319
Media de errores 0.329958117348
deltamin=0.000091
epoch 999 total error 0.023422 avg weight 45.852
Media de errores 0.362647763145
deltamin=0.00001 4000 iteraciones
epoch 3999 total error 0.020533 avg weight 984.91
Media de errores 0.135517757871
Parametro delta0 deltamin=0.00009 delta0=0.25
epoch 999 total error 0.022219 avg weight 64.153
Media de errores 0.238266068379
delta0=0.1
epoch 999 total error 0.023422 avg weight 699.69
Media de errores 0.319691539508
epoch 999 total error 0.021947 avg weight 17.924
Media de errores 0.338823375468
delta0=0.2
epoch 999 total error 0.023258 avg weight 12.404
Media de errores 0.324043624415
epoch 999 total error 0.023834 avg weight 21.152
Media de errores 0.258704106908
delta0=0.3
epoch 999 total error 0.021987 avg weight 89.928
Media de errores 0.458800478905
epoch 999 total error 0.021933 avg weight 17.648
Media de errores 0.438666867387
delta0=0.25
epoch 999 total error 0.021533 avg weight 27.486
Media de errores 0.350463545905
epoch 999 total error 0.022351 avg weight 60.403
Media de errores 0.377587686028
delta0=0.05
epoch 999 total error 0.0233 avg weight 438.63
Media de errores 0.487202714979
epoch 999 total error 0.021961 avg weight 27.625
Media de errores 0.335746003985
delta0=0.03
epoch 999 total error 0.022002 avg weight 9.1486
Media de errores 0.501125131326
epoch 999 total error 0.02364 avg weight 70.297
Media de errores 0.559763091734
delta0=0.02
epoch 999 total error 0.022189 avg weight 567.69
Media de errores 0.697245947644
delta0=0.01
epoch 999 total error 0.023674 avg weight 617.15
Media de errores 0.52770286761
4000 it delta0=0.2
epoch 3999 total error 0.020635 avg weight 1159
Media de errores 0.56073598394
4000 it delta0=0.3
epoch 3999 total error 0.021582 avg weight 52.002
Media de errores 0.527153610736
Número de neuronas
10
epoch 999 total error 0.0212 avg weight 17.005
Media de errores 0.597526245199
epoch 999 total error 0.021107 avg weight 31.363
Media de errores 0.346630164366
epoch 999 total error 0.022697 avg weight 28.249
Media de errores 0.390129920785
5
epoch 999 total error 0.021247 avg weight 65.827
Media de errores 0.5966459555
epoch 999 total error 0.023935 avg weight 117.91
Media de errores 0.542653570905
epoch 999 total error 0.021552 avg weight 44.174
Media de errores 0.403039579251
epoch 999 total error 0.02358 avg weight 301.53
Media de errores 0.31465270012
5-5
epoch 999 total error 0.021545 avg weight 52.486
Media de errores 0.281350977216
epoch 999 total error 0.022292 avg weight 403.67
Media de errores 0.70004056888
epoch 999 total error 0.020085 avg weight 163.22
Media de errores 0.582328226882
5-5 recurrente doble en hidden2
epoch 999 total error 0.022259 avg weight 45.706
Media de errores 0.10584967972
epoch 999 total error 0.021589 avg weight 210.12
Media de errores 0.299307441136
epoch 999 total error 0.022219 avg weight 179.38
Media de errores 0.170301881927
epoch 999 total error 0.020408 avg weight 16.193
Media de errores 0.156049282101
Recursión 5-5 con doble recursión en 1 triple en 2
epoch 999 total error 0.022193 avg weight 40.254
Media de errores 0.0661599617707
Recursión 5-5 con doble recursión
epoch 999 total error 0.021914 avg weight 26.357
Media de errores 0.0259204091599
Doble recursión
delta0=5
epoch 999 total error 0.023816 avg weight 159.23
Media de errores 0.266423269035
delta0=3
epoch 999 total error 0.021359 avg weight 334.64
Media de errores 0.357801553895
epoch 999 total error 0.02621 avg weight 39.282
Media de errores 0.338838757036
delta0=7
epoch 999 total error 0.026675 avg weight 344.98
Media de errores 0.385564634866
epoch 999 total error 0.021542 avg weight 365.54
Media de errores 0.45465240204
delta0=4
epoch 999 total error 0.018559 avg weight 217.43
Media de errores 0.463348887688
epoch 999 total error 0.02088 avg weight 81.64
Media de errores 0.146786453222
delta0=6
epoch 999 total error 0.022775 avg weight 386.88
Media de errores 0.385676785737
epoch 999 total error 0.021742 avg weight 381.04
Media de errores 0.444298611363
delta0=4.5
epoch 999 total error 0.020617 avg weight 63.741
Media de errores 0.466909820838
epoch 999 total error 0.02131 avg weight 17.262
Media de errores 0.619945504513
delta0=3.5
epoch 999 total error 0.022239 avg weight 413.49
Media de errores 0.354909276179
epoch 999 total error 0.021384 avg weight 69.484
Media de errores 0.379694481047
delta0=3.8
epoch 999 total error 0.023624 avg weight 7.2124
Media de errores 0.216980123518
epoch 999 total error 0.02086 avg weight 405.73
Media de errores 0.689622580844
delta0=3.3
epoch 999 total error 0.024714 avg weight 11.962
Media de errores 0.171232627291
epoch 999 total error 0.021934 avg weight 264.48
Media de errores 0.484609561291
delta0=3.1
epoch 999 total error 0.021692 avg weight 217.49
Media de errores 0.5780280522
epoch 999 total error 0.02079 avg weight 67.81
Media de errores 0.547464361256
delta0=3.2
epoch 999 total error 0.021092 avg weight 84.041
Media de errores 0.25911837998
epoch 999 total error 0.022127 avg weight 45.613
Media de errores 0.516334482125
delta0=3.4
epoch 999 total error 0.026431 avg weight 293.3
Media de errores 0.861015548122
epoch 999 total error 0.022146 avg weight 377.66
Media de errores 0.245167183794
delta0=3.3
epoch 999 total error 0.020109 avg weight 266.4
Media de errores 0.365498536457
epoch 999 total error 0.021242 avg weight 13.345
Media de errores 0.0757076138675
4000 it delta0=3.3
epoch 3999 total error 0.019016 avg weight 713.43
Media de errores 0.372656461201
Parámetro deltamin
deltamin=0.001
epoch 999 total error 0.020994 avg weight 68.287
Media de errores 0.436809133469
epoch 999 total error 0.024409 avg weight 22.059
Media de errores 0.62835358716
deltamin=0.0001
epoch 999 total error 0.021286 avg weight 81.76
Media de errores 0.42605071249
epoch 999 total error 0.019414 avg weight 216.58
Media de errores 0.314564346423
deltamin=0.00001
epoch 999 total error 0.021921 avg weight 336.13
Media de errores 0.0431782632411
epoch 999 total error 0.020531 avg weight 340.65
Media de errores 0.298116942767
deltamin=0.00003
epoch 999 total error 0.021302 avg weight 164.02
Media de errores 0.5309773166012
epoch 999 total error 0.022009 avg weight 522.94
Media de errores 0.264912877239
deltamin=0.00005
epoch 999 total error 0.020442 avg weight 54.181
Media de errores 0.230862243895
epoch 999 total error 0.022967 avg weight 532.09
Media de errores 0.525358692131
deltamin=0.00008
epoch 999 total error 0.020804 avg weight 377.91
Media de errores 0.557505079433
epoch 999 total error 0.021785 avg weight 381.86
Media de errores 0.38810550706
deltamin=0.00006
epoch 999 total error 0.023104 avg weight 503.64
Media de errores 0.394577943976
epoch 999 total error 0.020291 avg weight 54.211
Media de errores 0.410007524374
deltamin=0.00004
epoch 999 total error 0.022362 avg weight 182.25
Media de errores 0.495246900134
epoch 999 total error 0.021679 avg weight 29.709
Media de errores 0.181887289641
deltamin=0.000045
epoch 999 total error 0.019867 avg weight 154.89
Media de errores 0.21885741043
epoch 999 total error 0.020284 avg weight 39.398
Media de errores 0.444838018446
deltamin=0.000035
epoch 999 total error 0.020608 avg weight 53.979
Media de errores 0.501434104373
epoch 999 total error 0.023744 avg weight 383.58
Media de errores 0.300071009147
deltamin=0.000041
epoch 999 total error 0.028966 avg weight 379.84
Media de errores 0.415737321835
epoch 999 total error 0.020903 avg weight 81.794
Media de errores 0.197325222252
deltamin=0.000039
epoch 999 total error 0.020431 avg weight 60.28
Media de errores 0.223832110155
epoch 999 total error 0.019783 avg weight 60.369
Media de errores 0.482059113903
deltamin=0.000042
epoch 999 total error 0.019605 avg weight 25.801
Media de errores 0.270147842971
epoch 999 total error 0.020183 avg weight 367.86
Media de errores 0.374406766648
Parametro deltamax deltamax=5
epoch 999 total error 0.020365 avg weight 114.79
Media de errores 0.135475755163
epoch 999 total error 0.022364 avg weight 35.868
Media de errores 0.330078193895
deltamax=6
epoch 999 total error 0.019645 avg weight 161.68
Media de errores 0.581749018037
epoch 999 total error 0.020623 avg weight 29.731
Media de errores 0.766761042468
deltamax=4
epoch 999 total error 0.020672 avg weight 97.335
Media de errores 0.392299150662
epoch 999 total error 0.022014 avg weight 409.93
Media de errores 0.649114425675
deltamax=4.5
epoch 999 total error 0.021978 avg weight 109.48
Media de errores 0.450082167287
epoch 999 total error 0.023936 avg weight 236.47
Media de errores 0.350054627216
deltamax=4.8
epoch 999 total error 0.023889 avg weight 135.11
Media de errores 0.168105928835
epoch 999 total error 0.02123 avg weight 30.973
Media de errores 0.221613820053
deltamax=4.6
epoch 999 total error 0.023817 avg weight 257.62
Media de errores 0.285703087036
epoch 999 total error 0.023719 avg weight 106.47
Media de errores 0.461257375938
deltamax=4.7
epoch 999 total error 0.020135 avg weight 453.84
Media de errores 0.326678397057
epoch 999 total error 0.020616 avg weight 478.48
Media de errores 0.333921555856
deltamax=4.9
epoch 999 total error 0.02092 avg weight 351.83
Media de errores 0.36899989339
epoch 999 total error 0.020271 avg weight 253.39
Media de errores 0.674285179736
deltamax=4.85
epoch 999 total error 0.021207 avg weight 110.44
Media de errores 0.738560792855
epoch 999 total error 0.02094 avg weight 71.986
Media de errores 0.848938123244
deltamax=4.75
epoch 999 total error 0.021526 avg weight 262.72
Media de errores 0.326821278225
epoch 999 total error 0.021519 avg weight 29.573
Media de errores 0.268304757239
Pruebas realizadas correctas
RED RECURRENTE
PRUEBAS DE ESTRUCTURA Y NÚMERO DE NEURONAS
5-5
epoch 999 total error 0.02334 avg weight 11.524
RMSE 0.335014115024
epoch 999 total error 0.021315 avg weight 232.86
RMSE 0.369633646521
epoch 999 total error 0.020189 avg weight 18.545
RMSE 0.346790132002
10-10
epoch 999 total error 0.017475 avg weight 190.22
RMSE 0.33079051399
epoch 999 total error 0.01568 avg weight 20.243
RMSE 0.431148025299
epoch 999 total error 0.015785 avg weight 37.857
RMSE 0.480836673742
NEURONAS 5-5 sin recurrencia entre capas
epoch 999 total error 0.019811 avg weight 77.876
RMSE 0.366853009634
epoch 999 total error 0.019439 avg weight 30.122
RMSE 0.324908301664
10-10
epoch 999 total error 0.017352 avg weight 209.32
RMSE 0.355230987704
epoch 999 total error 0.0173 avg weight 17.202
RMSE 0.401674204217
5-5 con recurrencia en 2 solo
epoch 999 total error 0.020559 avg weight 433.49
RMSE 0.305447281272
epoch 999 total error 0.020214 avg weight 76.683
RMSE 0.390773628495
10-10 con recurrencia en 2 solo
epoch 999 total error 0.018422 avg weight 163.75
RMSE 0.40024189488
epoch 999 total error 0.018654 avg weight 41.59
RMSE 0.397185259016
5-5 con recurrencia en 1 solo
epoch 999 total error 0.02124 avg weight 49.508
RMSE 0.301289465793
epoch 999 total error 0.022079 avg weight 94.443
RMSE 0.346047208273
10-10 con recurrencia en 1 solo
epoch 999 total error 0.017256 avg weight 37.228
RMSE 0.418994483739
epoch 999 total error 0.02082 avg weight 158.93
RMSE 0.344040479038
5-5 con recurrencia solo en capas
epoch 999 total error 0.020288 avg weight 52.107
RMSE 0.30387446693
epoch 999 total error 0.021224 avg weight 388.86
RMSE 0.410279573827
10-10 con recurrencia solo en capas
epoch 999 total error 0.019618 avg weight 99.576
RMSE 0.377686826069
epoch 999 total error 0.016594 avg weight 309.73
RMSE 0.263416874075
epoch 999 total error 0.016384 avg weight 161.94
RMSE 0.399432058845
5-5 sin recurrencia
epoch 999 total error 0.021415 avg weight 19.206
RMSE 0.277328845883
epoch 999 total error 0.022016 avg weight 478.81
RMSE 0.27821223575
10-10 sin recurrencia
epoch 999 total error 0.017354 avg weight 172.49
RMSE 0.330912951114
epoch 999 total error 0.01782 avg weight 105.46
RMSE 0.338152724528
4000 iteraciones
epoch 3999 total error 0.019346 avg weight 704.68
RMSE 0.310816224595
RED 5-5 SIN RECURRENCIA AÑADIDA
Parametro deltamax deltamax=5
epoch 999 total error 0.021378 avg weight 400.79
RMSE 0.277794286161
epoch 999 total error 0.020957 avg weight 55.697
RMSE 0.306396220997
deltamax=4
epoch 999 total error 0.021217 avg weight 25.42
RMSE 0.295797637016
epoch 999 total error 0.021591 avg weight 658.99
RMSE 0.294614960807
epoch 999 total error 0.021931 avg weight 35.619
RMSE 0.307041934569
deltamax=7
epoch 999 total error 0.018808 avg weight 641.44
RMSE 0.299724723166
epoch 999 total error 0.020702 avg weight 47.228
RMSE 0.251817529487
deltamax=8
epoch 999 total error 0.02142 avg weight 22.979
RMSE 0.277543401037
epoch 999 total error 0.021312 avg weight 72.273
RMSE 0.291733093167
deltamax=6
epoch 999 total error 0.019534 avg weight 44.504
RMSE 0.268281145613
epoch 999 total error 0.019949 avg weight 20.754
RMSE 0.279455445342
deltamax 7.5
epoch 999 total error 0.021233 avg weight 84.434
RMSE 0.269244912482
epoch 999 total error 0.020651 avg weight 52.796
RMSE 0.270812523231
deltamax 6.5
epoch 999 total error 0.020059 avg weight 141.12
RMSE 0.281748392825
epoch 999 total error 0.020255 avg weight 15.385
RMSE 0.287970502361
epoch 999 total error 0.02052 avg weight 66.776
RMSE 0.272461843582
deltamax=7.25
epoch 999 total error 0.021545 avg weight 516.74
RMSE 0.284462043504
epoch 999 total error 0.020686 avg weight 24.248
RMSE 0.277811220275
epoch 999 total error 0.020872 avg weight 727.69
RMSE 0.276089995599
deltamax=6.75
epoch 999 total error 0.020754 avg weight 120.79
RMSE 0.278888302691
epoch 999 total error 0.020556 avg weight 261.12
RMSE 0.265520674359
epoch 999 total error 0.020178 avg weight 79.752
RMSE 0.27048029198
deltamax=6.85
epoch 999 total error 0.021659 avg weight 12.76
RMSE 0.267847521707
epoch 999 total error 0.020461 avg weight 32.032
RMSE 0.266622961145
epoch 999 total error 0.022408 avg weight 455.35
RMSE 0.301626370073
deltamax=7.1
epoch 999 total error 0.020398 avg weight 123.9
RMSE 0.284335347489
epoch 999 total error 0.020721 avg weight 101
RMSE 0.291669138661
epoch 999 total error 0.020973 avg weight 357.34
RMSE 0.27941866644
deltamax=6.9
epoch 999 total error 0.019725 avg weight 790.7
RMSE 0.285471752225
epoch 999 total error 0.019494 avg weight 41.287
RMSE 0.279776157687
epoch 999 total error 0.021075 avg weight 68.469
RMSE 0.274992325097
deltamax=6.6
epoch 999 total error 0.02106 avg weight 20.109
RMSE 0.336572053731
epoch 999 total error 0.02071 avg weight 150.82
RMSE 0.269107335528
epoch 999 total error 0.021897 avg weight 58.903
RMSE 0.290028739671
deltamax=6.7
epoch 999 total error 0.019817 avg weight 159.92
RMSE 0.293536951977
epoch 999 total error 0.022222 avg weight 35.276
RMSE 0.291581010125
deltamax=6.8
epoch 999 total error 0.02109 avg weight 156.25
RMSE 0.262286625944
epoch 999 total error 0.020762 avg weight 573.26
RMSE 0.308418462632
epoch 999 total error 0.02094 avg weight 64.079
RMSE 0.30194772402
deltamax=6.81
epoch 999 total error 0.020579 avg weight 30.034
RMSE 0.265291172152
epoch 999 total error 0.020347 avg weight 173.86
RMSE 0.32732222723
epoch 999 total error 0.020062 avg weight 191.12
RMSE 0.314149645588
deltamax=6.82
epoch 999 total error 0.020984 avg weight 109.86
RMSE 0.260835717276
epoch 999 total error 0.021316 avg weight 217.44
RMSE 0.29990161345
epoch 999 total error 0.021853 avg weight 280.4
RMSE 0.272956928748
epoch 999 total error 0.020886 avg weight 69.033
RMSE 0.274872119429
deltamax=6.83
epoch 999 total error 0.021428 avg weight 28.334
RMSE 0.292046630527
epoch 999 total error 0.019174 avg weight 69.912
RMSE 0.335818796404
epoch 999 total error 0.020521 avg weight 58.169
RMSE 0.277692691915
deltamax=6.84
epoch 999 total error 0.022925 avg weight 18.538
RMSE 0.28430094752
epoch 999 total error 0.021357 avg weight 12.024
RMSE 0.255169376835
epoch 999 total error 0.019219 avg weight 311.23
RMSE 0.293930261267
Parametro deltamin DELTAMAX=6.75;
deltamin=0.000001
epoch 999 total error 0.021431 avg weight 349.62
RMSE 0.272800657048
epoch 999 total error 0.020027 avg weight 38.771
RMSE 0.283314021341
epoch 999 total error 0.02072 avg weight 77.555
RMSE 0.294718235257
deltamin=0.00001
epoch 999 total error 0.01981 avg weight 86.215
RMSE 0.275611732727
epoch 999 total error 0.018912 avg weight 109.41
RMSE 0.294970287699
epoch 999 total error 0.019754 avg weight 73.83
RMSE 0.317287518005
deltamin=0.0001
epoch 999 total error 0.02075 avg weight 24.07
RMSE 0.291050228497
epoch 999 total error 0.021004 avg weight 633.87
RMSE 0.276056105998
epoch 999 total error 0.020667 avg weight 10.397
RMSE 0.277110006615
deltamin=0.0000001
epoch 999 total error 0.019517 avg weight 73.559
RMSE 0.275773398353
epoch 999 total error 0.020359 avg weight 120.68
RMSE 0.276904033609
epoch 999 total error 0.020339 avg weight 439.48
RMSE 0.287868013281
deltamin=0.00000001
epoch 999 total error 0.02069 avg weight 267.99
RMSE 0.263447558479
epoch 999 total error 0.022369 avg weight 269.57
RMSE 0.285426748576
epoch 999 total error 0.020077 avg weight 26.926
RMSE 0.272561165313
deltamin=0.000000001
epoch 999 total error 0.020065 avg weight 342.28
RMSE 0.259185142519
epoch 999 total error 0.021439 avg weight 265.61
RMSE 0.269046847781
epoch 999 total error 0.023204 avg weight 794.93
RMSE 0.281566142703
deltamin=0.000000005
epoch 999 total error 0.021439 avg weight 27.482
RMSE 0.26986174267
epoch 999 total error 0.02151 avg weight 61.445
RMSE 0.305766993883
epoch 999 total error 0.023537 avg weight 16.013
RMSE 0.282404629465
deltamin=0.00000005
epoch 999 total error 0.020491 avg weight 260.68
RMSE 0.263908443253
epoch 999 total error 0.021216 avg weight 53.777
RMSE 0.272566111345
epoch 999 total error 0.022607 avg weight 614.02
RMSE 0.28753971283
deltamin=0.0000005
epoch 999 total error 0.022499 avg weight 74.413
RMSE 0.266328874039
epoch 999 total error 0.019255 avg weight 44.348
RMSE 0.299303291195
epoch 999 total error 0.021714 avg weight 13.397
RMSE 0.294309817091
deltamin=0.000005
epoch 999 total error 0.021272 avg weight 85.511
RMSE 0.281647409025
epoch 999 total error 0.020722 avg weight 19.145
RMSE 0.268572453456
epoch 999 total error 0.021218 avg weight 616.18
RMSE 0.276618039202
deltamin=0.00005
epoch 999 total error 0.020372 avg weight 764.26
RMSE 0.296076488768
epoch 999 total error 0.022527 avg weight 19.085
RMSE 0.27367072291
epoch 999 total error 0.020273 avg weight 30.485
RMSE 0.274623120232
deltamin=0.000000005
epoch 999 total error 0.020765 avg weight 320.2
RMSE 0.271245603147
epoch 999 total error 0.020574 avg weight 9.8123
RMSE 0.283825913462
epoch 999 total error 0.022001 avg weight 11.437
RMSE 0.267894682784
detamin=0.0000000025
epoch 999 total error 0.02032 avg weight 478.04
RMSE 0.32892847232
epoch 999 total error 0.021814 avg weight 61.333
RMSE 0.330676788261
epoch 999 total error 0.02053 avg weight 41.201
RMSE 0.265417233352
deltamin=0.0000000075
epoch 999 total error 0.022167 avg weight 15.152
RMSE 0.282339900552
epoch 999 total error 0.021855 avg weight 127.5
RMSE 0.282155703993
epoch 999 total error 0.021349 avg weight 506.56
RMSE 0.285363123565
deltamin=0.0000000015
epoch 999 total error 0.020066 avg weight 382.96
RMSE 0.276240104558
epoch 999 total error 0.022428 avg weight 20.389
RMSE 0.336150399245
epoch 999 total error 0.020523 avg weight 21.558
RMSE 0.285299326688
deltamin=0.0000000007
epoch 999 total error 0.020945 avg weight 29.704
RMSE 0.262953463323
epoch 999 total error 0.021249 avg weight 724.19
RMSE 0.275924829031
epoch 999 total error 0.020933 avg weight 75.228
RMSE 0.28653924739
deltamin=0.0000000003
epoch 999 total error 0.022995 avg weight 128.68
RMSE 0.304942416116
epoch 999 total error 0.02024 avg weight 365.4
RMSE 0.274293643563
epoch 999 total error 0.020165 avg weight 283.6
RMSE 0.307828949584
deltamin=0.000000009
epoch 999 total error 0.020911 avg weight 17.163
RMSE 0.258029755002
epoch 999 total error 0.021802 avg weight 41.737
RMSE 0.328153290737
epoch 999 total error 0.021163 avg weight 391.23
RMSE 0.275476293548
epoch 999 total error 0.020575 avg weight 87.78
RMSE 0.274621527956
deltamin=0.000000008
epoch 999 total error 0.021691 avg weight 66.127
RMSE 0.268242596583
epoch 999 total error 0.021911 avg weight 103.58
RMSE 0.291888183216
epoch 999 total error 0.021651 avg weight 76.008
RMSE 0.297879771598
epoch 999 total error 0.021131 avg weight 22.775
RMSE 0.272189324591
deltamin=0.0000000095
epoch 999 total error 0.021294 avg weight 32.486
RMSE 0.271116175632
epoch 999 total error 0.020144 avg weight 101.78
RMSE 0.263063767526
epoch 999 total error 0.021923 avg weight 30.597
RMSE 0.310082717408
deltamin=0.0000000098
epoch 999 total error 0.021013 avg weight 154.92
RMSE 0.356834745583
epoch 999 total error 0.020005 avg weight 383.06
RMSE 0.270888761135
epoch 999 total error 0.020087 avg weight 409.84
RMSE 0.27697255201
deltamin=0.0000000093
epoch 999 total error 0.019876 avg weight 58.56
RMSE 0.274123276151
epoch 999 total error 0.021767 avg weight 31.159
RMSE 0.28121203863
epoch 999 total error 0.019554 avg weight 17.32
RMSE 0.261522433711
deltamin=0.0000000097
epoch 999 total error 0.021729 avg weight 97.963
RMSE 0.315265114752
epoch 999 total error 0.019339 avg weight 42.784
RMSE 0.308613655271
epoch 999 total error 0.021459 avg weight 26.57
RMSE 0.295517762746
epoch 999 total error 0.020945 avg weight 30.605
RMSE 0.288333825883
deltamin=0.0000000097
epoch 999 total error 0.021235 avg weight 21.856
RMSE 0.271234795026
epoch 999 total error 0.022214 avg weight 60.99
RMSE 0.301561646165
epoch 999 total error 0.02272 avg weight 76.757
RMSE 0.278486795607
Parametro delta0 DELTAMAX=6.75
delta0=1
epoch 999 total error 0.020171 avg weight 64.203
RMSE 0.277785988957
epoch 999 total error 0.020449 avg weight 363.51
RMSE 0.317972910771
epoch 999 total error 0.019098 avg weight 58.706
RMSE 0.292196544295
delta0=0.5
epoch 999 total error 0.022617 avg weight 411.62
RMSE 0.301833602518
epoch 999 total error 0.021696 avg weight 22.216
RMSE 0.293380215504
epoch 999 total error 0.020589 avg weight 19.774
RMSE 0.290164017589
delta0=0.25
epoch 999 total error 0.021414 avg weight 783.41
RMSE 0.282915500964
epoch 999 total error 0.019632 avg weight 65.03
RMSE 0.280081155725
epoch 999 total error 0.022145 avg weight 35.689
RMSE 0.333713348221
delta0=1.5
epoch 999 total error 0.022173 avg weight 558.8
RMSE 0.308476706962
epoch 999 total error 0.020638 avg weight 49.093
RMSE 0.286126341947
epoch 999 total error 0.019983 avg weight 507.43
RMSE 0.31832068471
delta0=1.25
epoch 999 total error 0.018378 avg weight 70.491
RMSE 0.288961124185
epoch 999 total error 0.020474 avg weight 22.993
RMSE 0.263982618682
epoch 999 total error 0.02059 avg weight 21.778
RMSE 0.289811405209
delta0=2.5
epoch 999 total error 0.020192 avg weight 150.98
RMSE 0.28723965061
epoch 999 total error 0.020096 avg weight 62.165
RMSE 0.270160873624
epoch 999 total error 0.022388 avg weight 351.68
RMSE 0.274398325617
delta0=3
epoch 999 total error 0.020911 avg weight 812.75
RMSE 0.278665486953
epoch 999 total error 0.021618 avg weight 883.04
RMSE 0.316619801429
epoch 999 total error 0.02453 avg weight 81.609
RMSE 0.292764561752
delta0=2
epoch 999 total error 0.020888 avg weight 54.443
RMSE 0.319699387252
epoch 999 total error 0.020554 avg weight 167.37
RMSE 0.289233239705
epoch 999 total error 0.020863 avg weight 155.31
RMSE 0.273392255628
delta0=1.75
epoch 999 total error 0.021803 avg weight 155.12
RMSE 0.270947522523
epoch 999 total error 0.020563 avg weight 58.974
RMSE 0.276413359797
epoch 999 total error 0.019798 avg weight 213.19
RMSE 0.331777569444
delta0=1.1
epoch 999 total error 0.022397 avg weight 40.713
RMSE 0.309049906366
epoch 999 total error 0.020869 avg weight 74.642
RMSE 0.322064520244
epoch 999 total error 0.021003 avg weight 69.238
RMSE 0.296788003364
delta0=5
epoch 999 total error 0.023207 avg weight 485.95
RMSE 0.350608555981
epoch 999 total error 0.020561 avg weight 717.65
RMSE 0.349897304142
epoch 999 total error 0.021797 avg weight 67.853
RMSE 0.284045819681
delta0=10
epoch 999 total error 0.025369 avg weight 1162.4
RMSE 0.326280933685
epoch 999 total error 0.022668 avg weight 215.53
RMSE 0.289921785497
epoch 999 total error 0.03052 avg weight 438.48
RMSE 0.297742852653
delta0=1.15
epoch 999 total error 0.021796 avg weight 528.26
RMSE 0.307341018147
epoch 999 total error 0.021079 avg weight 74.241
RMSE 0.274580549995
epoch 999 total error 0.021925 avg weight 71.799
RMSE 0.291318976715
epoch 999 total error 0.024618 avg weight 93.045
RMSE 0.344316378027
Parametro etaminus
etaminus=0.5
epoch 999 total error 0.020677 avg weight 252.72
RMSE 0.349560629203
epoch 999 total error 0.020538 avg weight 437.35
RMSE 0.299313192198
epoch 999 total error 0.019503 avg weight 73.474
RMSE 0.282275879092
etaminus=1
epoch 999 total error 0.03605 avg weight 4.8634
RMSE 0.305250508211
epoch 999 total error 0.037227 avg weight 12.277
RMSE 0.283706958274
epoch 999 total error 0.038545 avg weight 9.8573
RMSE 0.290345627804
etaminus=5
epoch 999 total error 0.039119 avg weight 3494.5
RMSE 0.574480481997
epoch 999 total error 0.062888 avg weight 2862.9
RMSE 0.573019014179
epoch 999 total error 0.035319 avg weight 3497
RMSE 0.57481972146
etaminus=2.5
epoch 999 total error 0.16529 avg weight 3184.1
RMSE 0.32126685251
epoch 999 total error 0.16551 avg weight 2954.1
RMSE 0.301878061258
epoch 999 total error 0.15267 avg weight 3494.4
RMSE 0.303333011576
etaminus=2
epoch 999 total error 0.035361 avg weight 4009.4
RMSE 0.582752062316
epoch 999 total error 0.15241 avg weight 3472.8
RMSE 0.327431955538
epoch 999 total error 0.16494 avg weight 2166.2
RMSE 0.354713795394
etaminus=1.5
epoch 999 total error 0.16558 avg weight 4071.5
RMSE 0.304463932955
epoch 999 total error 0.050398 avg weight 2442
RMSE 0.573796087936
epoch 999 total error 0.15345 avg weight 3464.5
RMSE 0.301493779278
Parametro etaplus
etaplus=1.2
epoch 999 total error 0.02205 avg weight 141.5
RMSE 0.284108931489
epoch 999 total error 0.021001 avg weight 131.88
RMSE 0.264504298432
epoch 999 total error 0.020998 avg weight 90.604
RMSE 0.313656889477
etaplus=3
epoch 999 total error 0.16628 avg weight 31.695
RMSE 0.575858778516
epoch 999 total error 0.15346 avg weight 1566.9
RMSE 0.583848648263
epoch 999 total error 0.15175 avg weight 449.94
RMSE 0.576025208809
etaplus=0.5
epoch 999 total error 0.034444 avg weight 0.99675
RMSE 0.293516713431
epoch 999 total error 0.034737 avg weight 0.98313
RMSE 0.293604983766
epoch 999 total error 0.063021 avg weight 0.95723
RMSE 0.38996239169
etaplus=2
epoch 999 total error 0.034489 avg weight 7.3496
RMSE 0.280752912579
epoch 999 total error 0.033717 avg weight 16.414
RMSE 0.29095447728
epoch 999 total error 0.032445 avg weight 16.311
RMSE 0.304111337494
etaplus=1.5
epoch 999 total error 0.022589 avg weight 34.906
RMSE 0.27344601857
epoch 999 total error 0.021924 avg weight 56.729
RMSE 0.259878631583
epoch 999 total error 0.0213 avg weight 49.101
RMSE 0.273536696304
etaplus=1.75
epoch 999 total error 0.024168 avg weight 653.09
RMSE 0.276052428547
epoch 999 total error 0.02363 avg weight 430.69
RMSE 0.292272933141
epoch 999 total error 0.023529 avg weight 102.11
RMSE 0.283255026405
etaplus=1.35
epoch 999 total error 0.021347 avg weight 45.921
RMSE 0.302230011268
epoch 999 total error 0.023131 avg weight 869.15
RMSE 0.278948917402
epoch 999 total error 0.022558 avg weight 26.56
RMSE 0.288111125055
etaplus=1.4
epoch 999 total error 0.022049 avg weight 6.06
RMSE 0.289729487437
epoch 999 total error 0.021708 avg weight 24.082
RMSE 0.285004655869
epoch 999 total error 0.022876 avg weight 10.264
RMSE 0.264904675806
etaplus=1.45
epoch 999 total error 0.021725 avg weight 87.971
RMSE 0.296583004648
epoch 999 total error 0.022314 avg weight 82.202
RMSE 0.307298916425
epoch 999 total error 0.021224 avg weight 353.01
RMSE 0.259473215328
epoch 999 total error 0.021297 avg weight 200.3
RMSE 0.26651428832
eltaplus=1.48
epoch 999 total error 0.022962 avg weight 51.485
RMSE 0.320572101007
epoch 999 total error 0.020488 avg weight 305.26
RMSE 0.27823105685
epoch 999 total error 0.024159 avg weight 66.315
RMSE 0.290757586832
eltaplus=1.43
epoch 999 total error 0.021649 avg weight 24.088
RMSE 0.290302496399
epoch 999 total error 0.022488 avg weight 60.129
RMSE 0.28884679586
epoch 999 total error 0.021744 avg weight 285.71
RMSE 0.332740972981
eltaplus=1.44
epoch 999 total error 0.020205 avg weight 17.459
RMSE 0.313801165318
epoch 999 total error 0.022233 avg weight 15.005
RMSE 0.297866438571
epoch 999 total error 0.021607 avg weight 17.92
RMSE 0.300668926251
etaplus=1.46
epoch 999 total error 0.023144 avg weight 8.152
RMSE 0.270629928608
epoch 999 total error 0.021627 avg weight 17.418
RMSE 0.269261541075
epoch 999 total error 0.022156 avg weight 64.177
RMSE 0.284977896418
etaplus=1.47
epoch 999 total error 0.02188 avg weight 194.36
RMSE 0.338910593195
epoch 999 total error 0.022034 avg weight 46.348
RMSE 0.310981396075
epoch 999 total error 0.023545 avg weight 56.123
RMSE 0.306915821588
Parametro etaminus DELTAMAX=6.75, ETAPLUS=1.45
etaminus=0.5
epoch 999 total error 0.021358 avg weight 19.121
RMSE 0.292747779375
epoch 999 total error 0.023117 avg weight 37.769
RMSE 0.277736385421
epoch 999 total error 0.02024 avg weight 63.936
RMSE 0.273690530006
etaminus=0.25
epoch 999 total error 0.022173 avg weight 711.65
RMSE 0.28301501774
epoch 999 total error 0.021774 avg weight 45.926
RMSE 0.266045799367
epoch 999 total error 0.019767 avg weight 71.3
RMSE 0.296935326542
etaminus=0.1
epoch 999 total error 0.023295 avg weight 13.318
RMSE 0.278216040195
epoch 999 total error 0.022535 avg weight 654.21
RMSE 0.261823057225
epoch 999 total error 0.0236 avg weight 27.32
RMSE 0.303040556902
etaminus=0.05
epoch 999 total error 0.024204 avg weight 28.53
RMSE 0.290073472222
epoch 999 total error 0.024718 avg weight 307.55
RMSE 0.310820675301
epoch 999 total error 0.020835 avg weight 16.688
RMSE 0.284066730757
etaminus=1.8
epoch 999 total error 0.16404 avg weight 2056.5
RMSE 0.416518279274
epoch 999 total error 0.16628 avg weight 73.451
RMSE 0.363355072403
epoch 999 total error 0.16628 avg weight 3759.7
RMSE 0.583850068528
etaminus=1.4
epoch 999 total error 0.15346 avg weight 3465.2
RMSE 0.33205030902
epoch 999 total error 0.16486 avg weight 2810.9
RMSE 0.58385046247
epoch 999 total error 0.16628 avg weight 2822.2
RMSE 0.438856064544
etaminus=1.3
epoch 999 total error 0.15346 avg weight 2820.8
RMSE 0.576025205339
epoch 999 total error 0.034788 avg weight 2812.1
RMSE 0.583850456258
epoch 999 total error 0.15292 avg weight 2694.8
RMSE 0.576025209933
etaminus=0.8
epoch 999 total error 0.022524 avg weight 13.477
RMSE 0.260285268968
epoch 999 total error 0.024323 avg weight 302
RMSE 0.294574843429
epoch 999 total error 0.022193 avg weight 39.76
RMSE 0.278512312949
etaminus=0.7
epoch 999 total error 0.023144 avg weight 22.234
RMSE 0.299306349186
epoch 999 total error 0.022408 avg weight 19.64
RMSE 0.338768940705
epoch 999 total error 0.021959 avg weight 171.88
RMSE 0.286801135411
etaminus=0.9
epoch 999 total error 0.023451 avg weight 44.969
RMSE 0.283342245737
epoch 999 total error 0.023892 avg weight 51.965
RMSE 0.272904196971
epoch 999 total error 0.024591 avg weight 291.31
RMSE 0.289192367168
etaminus=0.85
epoch 999 total error 0.021641 avg weight 77.036
RMSE 0.266227313663
epoch 999 total error 0.02945 avg weight 14.584
RMSE 0.322833083765
epoch 999 total error 0.023329 avg weight 11.625
RMSE 0.316239802374
etaminus=0.75
epoch 999 total error 0.023785 avg weight 43.716
RMSE 0.301346286979
epoch 999 total error 0.021664 avg weight 72.757
RMSE 0.299719923443
epoch 999 total error 0.022692 avg weight 15.067
RMSE 0.262183013223
etaminus=0.78
epoch 999 total error 0.022679 avg weight 163.79
RMSE 0.31860668339
epoch 999 total error 0.023432 avg weight 50.16
RMSE 0.289177276133
epoch 999 total error 0.022467 avg weight 20.784
RMSE 0.27343758451
epoch 999 total error 0.020236 avg weight 65.998
RMSE 0.270571204144
etaminus=0.79
epoch 999 total error 0.021401 avg weight 30.07
RMSE 0.275722978415
epoch 999 total error 0.02116 avg weight 479.73
RMSE 0.285174274792
epoch 999 total error 0.027206 avg weight 20.037
RMSE 0.316184352499
Parametro deltamin Etaminus=0.8
deltamin=0.0000001
epoch 999 total error 0.022388 avg weight 33.564
RMSE 0.273854113665
epoch 999 total error 0.023891 avg weight 11.447
RMSE 0.281892233895
epoch 999 total error 0.020942 avg weight 55.763
RMSE 0.282194227109
epoch 999 total error 0.025107 avg weight 59.375
RMSE 0.268344361692
deltamin=0.000001
epoch 999 total error 0.023333 avg weight 246.9
RMSE 0.286152380951
epoch 999 total error 0.021888 avg weight 25.018
RMSE 0.269593059131
epoch 999 total error 0.023038 avg weight 30.27
RMSE 0.298116184604
deltamin=0.00001
epoch 999 total error 0.021022 avg weight 27.746
RMSE 0.284275373707
epoch 999 total error 0.023106 avg weight 39.984
RMSE 0.266408574484
epoch 999 total error 0.0223 avg weight 221.04
RMSE 0.277275146507
deltamin=0.0001
epoch 999 total error 0.021624 avg weight 292.4
RMSE 0.313963993902
epoch 999 total error 0.022593 avg weight 28.995
RMSE 0.264669895353
epoch 999 total error 0.022065 avg weight 87.126
RMSE 0.307642050959
deltamin=0.001
epoch 999 total error 0.021309 avg weight 274.61
RMSE 0.269582834813
epoch 999 total error 0.027292 avg weight 355.73
RMSE 0.312039668541
epoch 999 total error 0.023212 avg weight 38.66
RMSE 0.282304090097
deltamin=0.01
epoch 999 total error 0.029064 avg weight 39.933
RMSE 0.290895591515
epoch 999 total error 0.03027 avg weight 20.774
RMSE 0.279917693032
epoch 999 total error 0.031759 avg weight 17.526
RMSE 0.283055515585
deltamin=0.000005
epoch 999 total error 0.022115 avg weight 81.939
RMSE 0.308010635024
epoch 999 total error 0.021349 avg weight 29.087
RMSE 0.293492523988
epoch 999 total error 0.021454 avg weight 13.574
RMSE 0.284341125931
epoch 999 total error 0.021757 avg weight 148.4
RMSE 0.276384031841
deltamin=0.0000005
epoch 999 total error 0.025932 avg weight 34.747
RMSE 0.285196419607
epoch 999 total error 0.023128 avg weight 782.53
RMSE 0.265186103446
epoch 999 total error 0.026803 avg weight 36.374
RMSE 0.31278962912
deltamin=0.000005
epoch 999 total error 0.021327 avg weight 51.58
RMSE 0.289176309821
epoch 999 total error 0.022639 avg weight 64.276
RMSE 0.273187452882
epoch 999 total error 0.022605 avg weight 17.107
RMSE 0.266850734998
FEEDFORWARD NETWORK
PRUEBAS DE ESTRUCTURA Y NÚMERO DE NEURONAS
5
epoch 999 total error 0.02146 avg weight 717.48
RMSE 0.294777773452
epoch 999 total error 0.024793 avg weight 20.888
RMSE 0.289967099884
epoch 999 total error 0.022094 avg weight 38.471
RMSE 0.304510619397
10
epoch 999 total error 0.02003 avg weight 579.96
RMSE 0.296771536211
epoch 999 total error 0.020553 avg weight 525.06
RMSE 0.296686205643
epoch 999 total error 0.020451 avg weight 128
RMSE 0.274950220518
5-5
epoch 999 total error 0.020418 avg weight 11.252
RMSE 0.303603598756
epoch 999 total error 0.020381 avg weight 210.85
RMSE 0.314627613779
epoch 999 total error 0.019507 avg weight 278.19
RMSE 0.280996541533
10-10
epoch 999 total error 0.015108 avg weight 17.235
RMSE 0.308194025162
epoch 999 total error 0.016978 avg weight 225
RMSE 0.320321840914
epoch 999 total error 0.017548 avg weight 296.15
RMSE 0.30873851828
RED 10
Parametro etaminus
etaminus=0.5
epoch 999 total error 0.020342 avg weight 38.744
RMSE 0.298924664035
epoch 999 total error 0.020434 avg weight 523.07
RMSE 0.276973784698
epoch 999 total error 0.020188 avg weight 12.125
RMSE 0.316276942858
etaminus=1
epoch 999 total error 0.05335 avg weight 1.1274
RMSE 0.312259011003
epoch 999 total error 0.046186 avg weight 1.5908
RMSE 0.358172129833
epoch 999 total error 0.063915 avg weight 0.98314
RMSE 0.343322964546
etaminus=0.25
epoch 999 total error 0.022411 avg weight 29.46
RMSE 0.35407540792
epoch 999 total error 0.021177 avg weight 314.24
RMSE 0.310606214726
epoch 999 total error 0.020767 avg weight 103.97
RMSE 0.31570584734
etaminus=0.75
epoch 999 total error 0.021615 avg weight 29.291
RMSE 0.308829998162
epoch 999 total error 0.020999 avg weight 449.77
RMSE 0.26718620438
epoch 999 total error 0.021176 avg weight 26.095
RMSE 0.339904961259
etaminus=0.6
epoch 999 total error 0.021477 avg weight 695.44
RMSE 0.321550916683
epoch 999 total error 0.020748 avg weight 598.83
RMSE 0.305077157683
epoch 999 total error 0.021629 avg weight 123.16
RMSE 0.305645967551
Parametro etaplus ETAMINUS=0.6
etaplus=1.2
RMSE 0.302459450019
epoch 999 total error 0.020057 avg weight 498.04
RMSE 0.292734988926
epoch 999 total error 0.021689 avg weight 578.83
RMSE 0.279718498993
etaplus=0.5
epoch 999 total error 0.045014 avg weight 0.95477
RMSE 0.320868760961
epoch 999 total error 0.034455 avg weight 0.9662
RMSE 0.292293589503
epoch 999 total error 0.041754 avg weight 1.1703
RMSE 0.3246293087
etaplus=1.7
epoch 999 total error 0.022575 avg weight 362.56
RMSE 0.29581923187
epoch 999 total error 0.024639 avg weight 521.18
RMSE 0.292795443405
epoch 999 total error 0.022773 avg weight 16.077
RMSE 0.302977025449
etaplus=1.4
epoch 999 total error 0.021075 avg weight 516.63
RMSE 0.323308108888
epoch 999 total error 0.0218 avg weight 556.71
RMSE 0.34202241585
epoch 999 total error 0.021891 avg weight 575.65
RMSE 0.290214831039
etaplus=1
epoch 999 total error 0.024656 avg weight 3.2662
RMSE 0.277633392809
epoch 999 total error 0.023846 avg weight 8.798
RMSE 0.311347099438
epoch 999 total error 0.025142 avg weight 7.4892
RMSE 0.302276334109
etaplus=0.9
epoch 999 total error 0.032349 avg weight 1.2448
RMSE 0.28997111496
epoch 999 total error 0.033302 avg weight 1.0147
RMSE 0.298072646577
epoch 999 total error 0.034564 avg weight 1.0584
RMSE 0.281674244785
etaplus=1.1
epoch 999 total error 0.021241 avg weight 512.81
RMSE 0.292557592978
epoch 999 total error 0.020438 avg weight 135.58
RMSE 0.29248471195
epoch 999 total error 0.020463 avg weight 25.052
RMSE 0.279970572408
Parametro deltamin
deltamin=0.0000001
epoch 999 total error 0.026809 avg weight 12.416
RMSE 0.295720757302
epoch 999 total error 0.024806 avg weight 4.8867
RMSE 0.262832961738
epoch 999 total error 0.025354 avg weight 11.004
RMSE 0.316114229242
deltamin=0.000001
epoch 999 total error 0.024314 avg weight 12.16
RMSE 0.287398315671
epoch 999 total error 0.026476 avg weight 4.5837
RMSE 0.281577457464
epoch 999 total error 0.024343 avg weight 14.068
RMSE 0.312544073708
deltamin=0.00001
epoch 999 total error 0.024592 avg weight 7.4401
RMSE 0.281004411215
epoch 999 total error 0.026008 avg weight 11.986
RMSE 0.273069438921
epoch 999 total error 0.02547 avg weight 10.134
RMSE 0.279114693145
deltamin=0.00000001
epoch 999 total error 0.024539 avg weight 7.4132
RMSE 0.302886549423
epoch 999 total error 0.022866 avg weight 7.5894
RMSE 0.283617745899
epoch 999 total error 0.026649 avg weight 10.515
RMSE 0.316053457656
deltamin=0.00000005
epoch 999 total error 0.022941 avg weight 12.209
RMSE 0.327030640913
epoch 999 total error 0.025239 avg weight 2.2063
RMSE 0.288387547392
epoch 999 total error 0.024771 avg weight 6.6635
RMSE 0.299058831296
deltamin=0.0000005
epoch 999 total error 0.024607 avg weight 9.4961
RMSE 0.306835547411
epoch 999 total error 0.024473 avg weight 9.3443
RMSE 0.288062204595
epoch 999 total error 0.025368 avg weight 7.21
RMSE 0.270922083405
deltamin=0.000005
epoch 999 total error 0.024485 avg weight 12.897
RMSE 0.309702849262
epoch 999 total error 0.023719 avg weight 5.5921
RMSE 0.292270874169
epoch 999 total error 0.0276 avg weight 10.577
RMSE 0.339540942486
deltamin=0.0000008
epoch 999 total error 0.024344 avg weight 8.5422
RMSE 0.29406078824
epoch 999 total error 0.025194 avg weight 7.8838
RMSE 0.330205839091
epoch 999 total error 0.02608 avg weight 16.998
RMSE 0.29104674246
deltamin=0.00000025
epoch 999 total error 0.0259 avg weight 9.0467
RMSE 0.300364112074
epoch 999 total error 0.024296 avg weight 11.584
RMSE 0.301797887777
epoch 999 total error 0.024756 avg weight 16.991
RMSE 0.287916597701
deltamin=0.0000004
epoch 999 total error 0.0253 avg weight 9.5063
RMSE 0.293528761551
epoch 999 total error 0.024698 avg weight 4.8687
RMSE 0.282504437772
epoch 999 total error 0.025988 avg weight 14.54
RMSE 0.290981652124
deltamin=0.0000006
epoch 999 total error 0.029608 avg weight 8.0333
RMSE 0.301304999568
epoch 999 total error 0.025201 avg weight 6.9508
RMSE 0.300847253904
epoch 999 total error 0.026012 avg weight 7.2355
RMSE 0.271645552979
deltamin=0.00000055
epoch 999 total error 0.027597 avg weight 11.036
RMSE 0.286955098266
epoch 999 total error 0.025256 avg weight 12.422
RMSE 0.27280969763
epoch 999 total error 0.025332 avg weight 7.6799
RMSE 0.286102480178
deltamin=0.00000058
epoch 999 total error 0.02473 avg weight 10.024
RMSE 0.290656045292
epoch 999 total error 0.02568 avg weight 4.4848
RMSE 0.264921675874
epoch 999 total error 0.024557 avg weight 10.43
RMSE 0.278119803749
Parametro deltamax
deltamax=5
epoch 999 total error 0.024669 avg weight 8.3859
RMSE 0.300973501613
epoch 999 total error 0.024728 avg weight 2.0058
RMSE 0.287096623607
epoch 999 total error 0.024961 avg weight 14.32
RMSE 0.307735069402
deltamax=8
epoch 999 total error 0.024194 avg weight 4.7464
RMSE 0.304200762145
epoch 999 total error 0.024577 avg weight 6.7263
RMSE 0.276871626915
deltamax=2
epoch 999 total error 0.024034 avg weight 6.2581
RMSE 0.288309769949
epoch 999 total error 0.027253 avg weight 12.462
RMSE 0.32832242915
epoch 999 total error 0.024973 avg weight 2.5871
RMSE 0.278778855866
deltamax=3.5
epoch 999 total error 0.025707 avg weight 7.8625
RMSE 0.265427162917
epoch 999 total error 0.025372 avg weight 2.2614
RMSE 0.29562134607
epoch 999 total error 0.025227 avg weight 16.998
RMSE 0.269381019616
deltamax=6.5
epoch 999 total error 0.026273 avg weight 14.512
RMSE 0.275507044591
epoch 999 total error 0.024633 avg weight 9.0142
RMSE 0.284923411623
epoch 999 total error 0.024327 avg weight 3.645
RMSE 0.279812969832
deltamax=4.25
epoch 999 total error 0.025871 avg weight 20.2
RMSE 0.278842469086
epoch 999 total error 0.024028 avg weight 8.7856
RMSE 0.303707921846
epoch 999 total error 0.025023 avg weight 10.329
RMSE 0.275974735459
deltamax=4
epoch 999 total error 0.025316 avg weight 14.707
RMSE 0.319831335029
epoch 999 total error 0.026328 avg weight 3.6105
RMSE 0.269423377374
epoch 999 total error 0.026006 avg weight 2.0793
RMSE 0.327089209639
deltamax=3
epoch 999 total error 0.025752 avg weight 5.2848
RMSE 0.302706959134
epoch 999 total error 0.027845 avg weight 12.625
RMSE 0.296344584444
epoch 999 total error 0.025444 avg weight 8.6905
RMSE 0.314326252082
deltamax=3.75
epoch 999 total error 0.025469 avg weight 10.632
RMSE 0.278036852555
epoch 999 total error 0.023699 avg weight 8.8252
RMSE 0.278955637948
epoch 999 total error 0.0255 avg weight 12.24
RMSE 0.283404555546
deltamax=3.6
epoch 999 total error 0.025621 avg weight 13.278
RMSE 0.277441469901
epoch 999 total error 0.024837 avg weight 2.3739
RMSE 0.26516006139
epoch 999 total error 0.02324 avg weight 9.4674
RMSE 0.309564662354
3000 épocas
epoch 2999 total error 0.024703 avg weight 12.392
RMSE 0.290890726081
deltamax=3.4
epoch 999 total error 0.024745 avg weight 3.1036
RMSE 0.291128480161
epoch 999 total error 0.027953 avg weight 12.243
RMSE 0.288551698926
epoch 999 total error 0.024174 avg weight 14.216
RMSE 0.327635539893
deltamax=3.65
epoch 999 total error 0.024277 avg weight 3.4503
RMSE 0.293519063096
epoch 999 total error 0.024852 avg weight 1.7443
RMSE 0.275363747053
epoch 999 total error 0.027347 avg weight 18.025
RMSE 0.284192948567
deltamax=3.55
epoch 999 total error 0.024897 avg weight 21.763
RMSE 0.29384148203
epoch 999 total error 0.023536 avg weight 5.277
RMSE 0.316374595305
epoch 999 total error 0.024323 avg weight 12.345
RMSE 0.309889027709
Parametro delta0 DELTAMAX=3.6
delta0=0.1
epoch 999 total error 0.023894 avg weight 8.837
RMSE 0.302608620181
epoch 999 total error 0.024925 avg weight 13.17
RMSE 0.287759747767
epoch 999 total error 0.02551 avg weight 2.4027
RMSE 0.270195595769
delta0=0.01
epoch 999 total error 0.025247 avg weight 1.4614
RMSE 0.296439455107
epoch 999 total error 0.026453 avg weight 1.8998
RMSE 0.301293848657
epoch 999 total error 0.029255 avg weight 3.0852
RMSE 0.322282634859
delta0=0.05
epoch 999 total error 0.025555 avg weight 6.3191
RMSE 0.287533262313
epoch 999 total error 0.024893 avg weight 8.7325
RMSE 0.288770750893
epoch 999 total error 0.024737 avg weight 8.9395
RMSE 0.272630726307
delta0=0.075
epoch 999 total error 0.0235 avg weight 7.0856
RMSE 0.28391992514
epoch 999 total error 0.024308 avg weight 6.9683
RMSE 0.271057166207
epoch 999 total error 0.025465 avg weight 13.353
RMSE 0.27067697875
delta0=1
epoch 999 total error 0.025643 avg weight 4.9267
RMSE 0.270584176447
epoch 999 total error 0.024355 avg weight 13.272
RMSE 0.324205029712
epoch 999 total error 0.025531 avg weight 76.891
RMSE 0.282699429895
delta0=1.5
epoch 999 total error 0.024231 avg weight 24.006
RMSE 0.320444212932
epoch 999 total error 0.022199 avg weight 10.917
RMSE 0.30650342326
epoch 999 total error 0.023563 avg weight 10.116
RMSE 0.292292617564
delta0=2
epoch 999 total error 0.02236 avg weight 6.8157
RMSE 0.310800295466
epoch 999 total error 0.023673 avg weight 10.88
RMSE 0.335556820274
epoch 999 total error 0.022272 avg weight 8.7121
RMSE 0.316422494652
delta0=0.025
epoch 999 total error 0.02546 avg weight 3.1716
RMSE 0.284688688877
epoch 999 total error 0.023384 avg weight 3.7964
RMSE 0.303397919985
epoch 999 total error 0.025561 avg weight 5.3681
RMSE 0.286613690721
Pruebas red feedfoward
delta0=0.1
epoch 999 total error 0.023955 avg weight 5.9475
RMSE 0.27062684295
epoch 999 total error 0.025097 avg weight 10.17
RMSE 0.269781283192
epoch 999 total error 0.025226 avg weight 9.2567
RMSE 0.279123203023
epoch 999 total error 0.026437 avg weight 3.8519
RMSE 0.287034848698
epoch 999 total error 0.025153 avg weight 10.197
RMSE 0.296844195453
delta0=0.1 deltamax=4
epoch 999 total error 0.024997 avg weight 4.3301
RMSE 0.290047822332
epoch 999 total error 0.027843 avg weight 2.3859
RMSE 0.285402500056
epoch 999 total error 0.024522 avg weight 12.815
RMSE 0.272802563305
epoch 999 total error 0.024807 avg weight 13.01
RMSE 0.290910817721
delta0=0.1 deltamax=3.5
epoch 999 total error 0.02441 avg weight 6.3808
RMSE 0.285560889492
epoch 999 total error 0.025122 avg weight 3.9739
RMSE 0.278161468684
epoch 999 total error 0.025274 avg weight 8.772
RMSE 0.260459010296
epoch 999 total error 0.024331 avg weight 2.1177
RMSE 0.289685476374
epoch 999 total error 0.023812 avg weight 12.735
RMSE 0.288892597418
epoch 999 total error 0.025623 avg weight 4.3328
RMSE 0.265453252441
etaminus=0.6,etaplus=1,deltamin=0.0000001,deltamax=3.5,delta0=0.1
epoch 999 total error 0.025804 avg weight 6.0092
RMSE 0.266924253215
epoch 999 total error 0.024409 avg weight 8.0253
RMSE 0.293113587038
epoch 999 total error 0.024459 avg weight 6.2024
RMSE 0.275568759657
epoch 999 total error 0.027613 avg weight 7.4523
RMSE 0.314295738763
epoch 999 total error 0.026507 avg weight 16.06
RMSE 0.289495586504
epoch 999 total error 0.026093 avg weight 11.342
RMSE 0.263108383406
deltamin=0.00000058
epoch 999 total error 0.024923 avg weight 5.6793
RMSE 0.309069577658
epoch 999 total error 0.024553 avg weight 8.5222
RMSE 0.268232746876
epoch 999 total error 0.024876 avg weight 2.9411
RMSE 0.281422310868
epoch 999 total error 0.024974 avg weight 10.704
RMSE 0.263245783397
epoch 999 total error 0.025135 avg weight 1.9065
RMSE 0.271930870321
epoch 999 total error 0.024766 avg weight 9.8332
RMSE 0.286413404292
epoch 999 total error 0.025165 avg weight 12.817
RMSE 0.269963187364
deltamin=0.0000001
epoch 999 total error 0.024508 avg weight 15.308
RMSE 0.273278741284
epoch 999 total error 0.024723 avg weight 11.412
RMSE 0.281717395586
epoch 999 total error 0.024608 avg weight 8.0271
RMSE 0.271453417402
epoch 999 total error 0.024275 avg weight 6.4702
RMSE 0.313646020989
epoch 999 total error 0.025414 avg weight 21.987
RMSE 0.301138357189
epoch 999 total error 0.025025 avg weight 3.055
RMSE 0.302900159149
etaplus=1.1
epoch 999 total error 0.020672 avg weight 311.21
RMSE 0.306083255058
epoch 999 total error 0.02122 avg weight 237.55
RMSE 0.281441988462
epoch 999 total error 0.020413 avg weight 357.4
RMSE 0.290678419158
epoch 999 total error 0.021965 avg weight 39.238
RMSE 0.301631756181
epoch 999 total error 0.020426 avg weight 296.43
RMSE 0.322752498654
etaminus=0.75,etaplus=1,deltamin=0.00000058,deltamax=3.6,delta0=0.1
epoch 999 total error 0.023563 avg weight 8.4918
RMSE 0.289491523317
epoch 999 total error 0.024435 avg weight 16.627
RMSE 0.302230627102
epoch 999 total error 0.023881 avg weight 7.3705
RMSE 0.299539155652
epoch 999 total error 0.025118 avg weight 13.484
RMSE 0.264566414389
epoch 999 total error 0.02518 avg weight 8.9596
RMSE 0.276095968906
5 neuronas ocultas, parametros anteriores
epoch 999 total error 0.024696 avg weight 2.6742
RMSE 0.26595846172
epoch 999 total error 0.026508 avg weight 12.37
RMSE 0.274247916766
epoch 999 total error 0.02483 avg weight 3.3764
RMSE 0.287557777195
epoch 999 total error 0.028071 avg weight 21.211
RMSE 0.301250517139
epoch 999 total error 0.023678 avg weight 6.0824
RMSE 0.285520364017
5-5
epoch 999 total error 0.023924 avg weight 9.722
RMSE 0.287934401165
epoch 999 total error 0.029306 avg weight 8.3268
RMSE 0.329431396857
epoch 999 total error 0.02402 avg weight 4.4729
RMSE 0.324116052341
epoch 999 total error 0.023789 avg weight 2.6746
RMSE 0.316320833366
epoch 999 total error 0.023715 avg weight 7.0818
RMSE 0.308215608407
10-10
epoch 999 total error 0.02068 avg weight 6.7986
RMSE 0.298978907004
epoch 999 total error 0.02089 avg weight 3.5383
RMSE 0.291175096705
epoch 999 total error 0.021005 avg weight 3.893
RMSE 0.337400325031
epoch 999 total error 0.020969 avg weight 5.4176
RMSE 0.317685836019
epoch 999 total error 0.020868 avg weight 3.7678
RMSE 0.286655712923
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,etaminus=0.75,etaplus=1,deltamin=0.
00000058,deltamax=3.5,delta0=0.1)
epoch 999 total error 0.028025 avg weight 13.756
RMSE 0.289620153359
epoch 999 total error 0.02333 avg weight 6.0636
RMSE 0.30589728496
epoch 999 total error 0.029991 avg weight 6.027
RMSE 0.313532095784
epoch 999 total error 0.024228 avg weight 9.1451
RMSE 0.271774535145
epoch 999 total error 0.027102 avg weight 2.7709
RMSE 0.298201875924
Pruebas red recurrente
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.000005)
epoch 999 total error 0.024604 avg weight 802.59
RMSE 0.277726959298
epoch 999 total error 0.023082 avg weight 312.79
RMSE 0.317305958636
epoch 999 total error 0.023628 avg weight 39.183
RMSE 0.291344941191
epoch 999 total error 0.027332 avg weight 18.85
RMSE 0.295330607129
epoch 999 total error 0.022516 avg weight 518.94
RMSE 0.27751604069
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.0000005)
epoch 999 total error 0.02703 avg weight 434.71
RMSE 0.306466618356
epoch 999 total error 0.022663 avg weight 55.71
RMSE 0.288661416378
epoch 999 total error 0.023575 avg weight 42.116
RMSE 0.286024029207
epoch 999 total error 0.021019 avg weight 74.362
RMSE 0.293813121704
epoch 999 total error 0.02114 avg weight 15.269
RMSE 0.2784937728
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.0001)
epoch 999 total error 0.029286 avg weight 59.997
RMSE 0.310205578295
epoch 999 total error 0.020573 avg weight 29.407
RMSE 0.29289793507
epoch 999 total error 0.021852 avg weight 9.7651
RMSE 0.268377159117
epoch 999 total error 0.020958 avg weight 43.671
RMSE 0.283276999074
epoch 999 total error 0.025896 avg weight 23.054
RMSE 0.319705279827
epoch 999 total error 0.023204 avg weight 17.746
RMSE 0.301446965035
epoch 999 total error 0.022128 avg weight 93.455
RMSE 0.272729799738
epoch 999 total error 0.023015 avg weight 50.145
RMSE 0.278919892926
epoch 999 total error 0.021223 avg weight 377.33
RMSE 0.255788600856
epoch 999 total error 0.023251 avg weight 22.526
RMSE 0.27872788817
epoch 999 total error 0.02277 avg weight 16.184
RMSE 0.281942561517
epoch 999 total error 0.02463 avg weight 6.7024
RMSE 0.309848910255
epoch 999 total error 0.022785 avg weight 61.825
RMSE 0.280855341539
epoch 999 total error 0.021082 avg weight 51.802
RMSE 0.268624731277
epoch 999 total error 0.027252 avg weight 87.048
RMSE 0.338080316513
epoch 999 total error 0.028783 avg weight 17.325
RMSE 0.318649742401
Cambio de número de épocas
500 épocas
epoch 499 total error 0.022625 avg weight 29.914
RMSE 0.257323881143
epoch 499 total error 0.02149 avg weight 27.782
RMSE 0.277804557118
epoch 499 total error 0.024458 avg weight 28.626
RMSE 0.307640402457
epoch 499 total error 0.025252 avg weight 30.097
RMSE 0.284147242164
epoch 499 total error 0.030045 avg weight 19.278
RMSE 0.302192986923
epoch 499 total error 0.025119 avg weight 10.287
RMSE 0.268170597779
epoch 499 total error 0.026054 avg weight 22.476
RMSE 0.28483218507
750 épocas
epoch 749 total error 0.022905 avg weight 27.141
RMSE 0.266092952666
epoch 749 total error 0.02441 avg weight 18.31
RMSE 0.292397791659
epoch 749 total error 0.023855 avg weight 104.3
RMSE 0.286804207089
epoch 749 total error 0.022862 avg weight 346.03
RMSE 0.286686919122
epoch 749 total error 0.023173 avg weight 239.96
RMSE 0.280778211278
epoch 749 total error 0.022259 avg weight 14.494
RMSE 0.291762512031
1250 épocas
epoch 1249 total error 0.020438 avg weight 217.77
RMSE 0.288086144061
epoch 1249 total error 0.022544 avg weight 23.102
RMSE 0.302955600345
epoch 1249 total error 0.02369 avg weight 23.289
RMSE 0.286799767564
epoch 1249 total error 0.021142 avg weight 55.617
RMSE 0.265033069981
epoch 1249 total error 0.023192 avg weight 8.5331
RMSE 0.296042798066
epoch 1249 total error 0.023399 avg weight 24.549
RMSE 0.300306688023
epoch 1249 total error 0.022269 avg weight 579.51
RMSE 0.311859229017
875 épocas
epoch 874 total error 0.023274 avg weight 28.859
RMSE 0.309742869793
epoch 874 total error 0.02377 avg weight 48.545
RMSE 0.286776623795
epoch 874 total error 0.024343 avg weight 34.282
RMSE 0.29218373921
epoch 874 total error 0.023655 avg weight 652.41
RMSE 0.293380466026
epoch 874 total error 0.02442 avg weight 69.766
RMSE 0.295983014418
epoch 874 total error 0.023445 avg weight 20.436
RMSE 0.300963942475
epoch 874 total error 0.025922 avg weight 16.556
RMSE 0.292547480332
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.00001)
epoch 999 total error 0.021675 avg weight 50.949
RMSE 0.303052732095
epoch 999 total error 0.023726 avg weight 87.098
RMSE 0.273003945109
epoch 999 total error 0.021228 avg weight 89.839
RMSE 0.27122007462
epoch 999 total error 0.023062 avg weight 14.598
RMSE 0.284776766459
epoch 999 total error 0.02458 avg weight 47.906
RMSE 0.296481972038
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.75,deltamin=0.0001)
epoch 999 total error 0.022905 avg weight 7.3189
RMSE 0.279752107034
epoch 999 total error 0.022569 avg weight 508.12
RMSE 0.283449083894
epoch 999 total error 0.023406 avg weight 16.681
RMSE 0.281822076262
epoch 999 total error 0.021438 avg weight 26.942
RMSE 0.278213695141
epoch 999 total error 0.021392 avg weight 386.5
RMSE 0.268544688116
epoch 999 total error 0.02225 avg weight 290.1
RMSE 0.290211287079
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=1,deltamin=0.0001)
epoch 999 total error 0.023834 avg weight 16.526
RMSE 0.298075234923
epoch 999 total error 0.022412 avg weight 85.426
RMSE 0.285445077665
epoch 999 total error 0.022678 avg weight 21.631
RMSE 0.28452316246
epoch 999 total error 0.025126 avg weight 40.718
RMSE 0.284090578896
epoch 999 total error 0.021213 avg weight 59.626
RMSE 0.279144432592
epoch 999 total error 0.022866 avg weight 53.764
RMSE 0.281276528099
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.4,etaminus=
0.8,deltamin=0.000005)
epoch 999 total error 0.021005 avg weight 37.394
RMSE 0.270653533031
epoch 999 total error 0.022629 avg weight 21.342
RMSE 0.312831338623
epoch 999 total error 0.021947 avg weight 11.332
RMSE 0.260900568564
epoch 999 total error 0.020419 avg weight 120.24
RMSE 0.273523126907
epoch 999 total error 0.02262 avg weight 88.405
RMSE 0.289021416137
epoch 999 total error 0.021924 avg weight 338.96
RMSE 0.321115599559
epoch 999 total error 0.021492 avg weight 25.302
RMSE 0.306381650939
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.0001,delta0=1.15)
epoch 999 total error 0.024373 avg weight 825.66
RMSE 0.292993155583
epoch 999 total error 0.022222 avg weight 824.41
RMSE 0.306328034116
epoch 999 total error 0.021753 avg weight 194.65
RMSE 0.290563586813
epoch 999 total error 0.024944 avg weight 1104.6
RMSE 0.306258974178
epoch 999 total error 0.020375 avg weight 317.99
RMSE 0.311755064787
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.0000000093)
epoch 999 total error 0.022907 avg weight 682.92
RMSE 0.311056244836
epoch 999 total error 0.021838 avg weight 26.803
RMSE 0.268893764538
epoch 999 total error 0.023377 avg weight 126.41
RMSE 0.30366075568
epoch 999 total error 0.027927 avg weight 106.01
RMSE 0.309554624788
epoch 999 total error 0.023259 avg weight 630.07
RMSE 0.293376258454
epoch 999 total error 0.024153 avg weight 81.995
RMSE 0.283119237832
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.000000007)
epoch 999 total error 0.022385 avg weight 15.161
RMSE 0.273671683033
epoch 999 total error 0.023243 avg weight 76.072
RMSE 0.309163838271
epoch 999 total error 0.023193 avg weight 51.323
RMSE 0.29785559805
epoch 999 total error 0.022783 avg weight 161.48
RMSE 0.30685450958
epoch 999 total error 0.021541 avg weight 92.491
RMSE 0.270342766661
epoch 999 total error 0.023952 avg weight 49.608
RMSE 0.279775435475
trainer=RPropMinusTrainer(n,dataset=ds,verbose=True,deltamax=6.75,etaplus=1.45,etaminus
=0.8,deltamin=0.0000000025)
epoch 999 total error 0.02653 avg weight 694.73
RMSE 0.296991197898
epoch 999 total error 0.02427 avg weight 30.433
RMSE 0.297019991165
epoch 999 total error 0.023743 avg weight 35.816
RMSE 0.303097200072
Recommended