Tema: Sesión de ejercicios 5. Docente: Andrés Auquilla. Integrantes: Mateo Reinoso, Mateo Flores. Ejercicio 1 El objetivo de este ejercicio es que el estudiante utilice Deep Neural Networks, específicamente la arquitectura LTSM para realizar forecast. Así mismo, el estudiante comenzará a analizar de forma objetiva series de tiempo. Ejercicio 1.1 Ejecute y analice el siguiente código Figura. 1 Gráfica de datos de prueba y entrenamiento del dataset gas. En base a este gráfico: ● Como podría comparar los valores de prueba y los de entrenamiento: tendencia, amplitud, etc De manera gráfica no se puede apreciar un parecido, en cuanto a tendencia no está claro puesto a que no se puede ver alguna clase de patrón en el comportamiento hay varias subidas y bajadas repentinas, y con los datos de prueba se observa una tendencia a la disminución. En cuanto a la amplitud de la misma manera no está claro debido a que en ciertos instantes el precio se elevo bastante sin embargo con las pruebas este tiende a disminuir. ● ¿Cree que es factible que un modelo pueda capturar las dinámicas intrínsecas de la serie de tiempo para predecir valores futuros acertadamente? ¿Por qué? Si es factible pues los valores futuros van a tener una relación directa con eventos que caracterizan los históricos de los datos y van a tratar de replicar su comportamiento por ello se lograrán generar predicciones que se ajusten de una manera más precisa. Ejercicio 1.2 ● ¿Los resultados son lo suficientemente aceptables para aplicar este modelo en predicción? ¿Por qué? No, ya que si bien el modelo se ajusta de buena manera para los datos de entrenamiento ya que el R2 es casi uno lo que lo hace altamente fiable, para los datos de prueba no ya que su R2 baja de 0.98 a 0.62 por lo que sus resultados no son lo suficientemente aceptables para aplicar el modelo en la predicción; esto nos dice que el modelo no está generalizando bien y está realizando overfitting con los datos de entrenamiento. ● Durante el entrenamiento de la red, ¿Que realiza el dropout? Durante el proceso de entrenamiento en cada iteración simula la eliminación de una o más neuronas haciendo que el modelo se entrene sin la discriminante que tiene la neurona para la predicción, es decir entrena sin el conocimiento de la neurona lo que evita el overfitting y va realizando este proceso de manera aleatoria. Ejercicio 1.3 ¿Puede mejorar de alguna manera los resultados de este problema? ● Test Base Figura. 2 Prueba con configuración Base. ● lag: 60, épocas: 12, capas: 2, neuronas: 50, dp: 0.1 Figura. 3 Prueba con configuración 1. ● lag: 60, épocas: 15, capas: 3, neuronas: 50, dp: 0.2 Figura. 4 Prueba con configuración 2. ● lag: 80, épocas: 20, capas: 4, neuronas: 50, dp: 0.1 Figura. 5 Prueba con configuración 3. Por tema de recursos del ordenador utilizado para realizar las pruebas se redujeron los datos. Se hicieron varias pruebas y en las figuras de la 2 a la 5 se muestran los resultados con más diferencias. Como podemos observar el mejor resultado lo obtuvimos en la prueba con la configuración 1, lo destacable es que en esta prueba se utiliza el menor número de capas con ello podemos decir que para este conjunto de datos es más beneficioso restar complejidad al modelo además en las gráficas observamos que no se produce underfitting ni overfitting. También podemos mencionar que el modelo está generalizando correctamente y para afirmar esto nos apoyamos del hecho en el cual restar complejidad al modelo le resulta más beneficioso. Ejercicio 1.4 Utilizar ahora SVR para el mismo problema. ¿Los resultados son mejores o peores? ● Prueba 1 - C=10, gamma=0.001, kernel=linear Prueba 2 - C=1, gamma=10, kernel=linear ● Prueba 3 - C=10, gamma=0.001, kernel=rbf Prueba 4 - C=1, gamma=10, kernel=rbf ● Prueba 5 - C=10, gamma=0.001, kernel=poly Prueba 6 - C=1, gamma=10, kernel=poly Los resultados en todas las pruebas arrojan predicciones del precio del gas peores que antes, en donde en ningún caso vemos la más mínima mejoría o siquiera que se acerquen a los resultados obtenidos anteriormente. Solamente la prueba 6 arroja resultados mínimamente buenos pero ni aún así logran llegar a ser aceptables para elegir un modelo de SVR sobre el modelo LTSM actual, para este problema. Ejercicio 1.5 Comparar los resultados anteriores con los resultados de un modelo persistente. Un modelo persistente en términos de forecast es un modelo que predice el valor futuro repitiendo lo que sucede actualmente; es decir, 𝐹(𝑥𝑡+1) = 𝑥𝑡. ● Habiendo probado varios modelos, ¿Qué modelo le parece mejor? ¿Por qué? Entrenamiento Prueba RMSE 0.23 0.12 R2 0.99 0.86 Figura. 6 Resultados modelo SVR con kernel rbf, C=50 y gamma=0.05. En este modelo como observamos en el gráfico podríamos pensar que existe overfitting y que el modelo está generalizando mal, sin embargo tiene buenos resultados con los datos de prueba, datos que nunca antes ha visto entonces el modelo está generalizado bien así que concluimos que el modelo persistente se ajusta de manera increíble a este problema por lo que es el mejor modelo a seleccionar. Con los datos de R2 siendo tan alto y con un RMSE tan bajo no necesitamos ni mirar el gráfico para concluir que es el mejor modelo ya que en los otros modelos ni siquiera se acerca a tener datos de R2 tan alto y cercanos a uno y tampoco un RMSE tan cercano a 0. Ejercicio 2 El objetivo de este ejercicio es que el estudiante utilice Deep Neural Networks, específicamente la arquitectura LTSM para realizar forecast. Así mismo, el estudiante comenzará a analizar de forma objetiva series de tiempo. Ejercicio 2.1 Ejecute y analice el siguiente código Figura. 7 Gráfica de datos de prueba y entrenamiento del dataset milk. En base a este gráfico: ● Como podría comparar los valores de prueba y los de entrenamiento: tendencia, amplitud, etc. Claramente en la gráfica podemos observar un patrón que se repite a lo largo del tiempo, en la mitad del periodo de la repetición tenemos una alza abrupta que cae rápidamente hasta el final del mismo. Conforme las repeticiones suceden el gráfico tiende al alza es decir el precio de la leche en cada periodo sube y baja de precio pero la caída no lo vuelve al precio inicial sino sufre esta abrupta caída pero el precio termina un poco más alto que en el inicio del periodo. Ejercicio 2.2 En base a los resultados de la predicción: ● ¿Los resultados son lo suficientemente aceptables para aplicar este modelo en predicción? ¿Por qué? No, solo observando el siguiente gráfico notamos un claro underfitting donde pareciera que el modelo solamente genera una línea recta más no aprende bien. Figura 8. Modelo entrenado con datos por defecto de la hoja Por otro lado, analizando el RMSE siendo tan alto en entrenamiento y prueba sabemos que el modelo no está bien ni genera resultados aceptables para aplicar el modelo en predicción, aparte con un R2 negativo notamos que los resultados son sumamente inaceptables y el modelo no está aprendiendo nada simplemente da predicciones incorrectas e inútiles. Ejercicio 2.3 ¿Puede mejorar de alguna manera los resultados de este problema? ● Base Figura. 9 Prueba con configuración Base. ● lag: 60, épocas: 12, capas: 2, neuronas: 50, dp: 0.1 Figura. 10 Prueba con configuración 1. ● lag: 80, épocas: 10, capas: 3, neuronas: 50, dp: 0.2 Figura. 11 Prueba con configuración 2. ● lag: 60, épocas: 7, capas: 4, neuronas: 50, dp: 0.1 Figura. 12 Prueba con configuración 3. En este problema no se pueden mejorar los resultados, es más empeoran. No existe una prueba en la que los resultados hayan sido mejores y el principal problema que hemos identificado es la cantidad de datos en el dataset pues debemos recordar que en los modelos de redes neuronales tienen la desventaja de que necesitan una gran cantidad de datos de entrada para funcionar de una manera correcta la cual es uno de sus mayores inconvenientes si no es el peor. En este caso sería aconsejable optar por otros modelos como los de SVR. Ejercicio 2.4 Utilizar ahora SVR para el mismo problema. ¿Los resultados son mejores o peores? ● Prueba 1 - C=0.1, gamma=0.001, kernel=linear Prueba 2 - C=0.05, gamma=0.001, kernel=linear ● Prueba 3 - C=50, gamma=0.05, kernel=rbf ● Prueba 5 - C=10, gamma=0.001, kernel=poly Prueba 4 - C=1, gamma=10, kernel=rbf Prueba 6 - C=100, gamma=0.005, kernel=poly Los resultados en casi todas las pruebas excepto en la prueba 4 y en la prueba 5 son mejores que los obtenidos en la arquitectura LTSM esto puede ser debido a que para este problema se ajustan mejores los datos para las predicciones empleando SVR a diferencia de con el dataset anterior que se ajustaba mejor con la arquitectura LTSM. Un punto clave o importante es que en estos problemas ligeros cambios en C y GAMMA incluso un tanto bruscos produce exactamente el mismo resultado en el modelo por lo que para estas pruebas tuvimos que hacer cambios sumamente agresivos o no podríamos obtener diferentes resultados en el mismo kernel para poder comparar. Ejercicio 2.5 Comparar los resultados anteriores con los resultados de un modelo persistente. Un modelo persistente en términos de forecast es un modelo que predice el valor futuro repitiendo lo que sucede actualmente; es decir, 𝐹(𝑥𝑡+1) = 𝑥𝑡. ● Habiendo probado varios modelos, ¿Qué modelo le parece mejor? ¿Por qué? Como podemos observar en el siguiente gráfico no es la mejor opción para este problema el modelo persistente, ya que si bien los resultados no son pesimos como en otro modelos de este análisis donde el R2 llegaba a ser negativo y en este caso solamente es bajo también tenemos resultados como en la prueba 3 del punto 2.4 donde el R2 es casi el doble que en el modelo persistente y hasta gráficamente podemos notar que se ajusta mejor a los datos del problema por lo que con todos los modelos probados para este problema el mejor es el SVR con kernel rbf y una buena combinación de C y gamma donde inicialmente encontramos la más óptima C=50 y gamma=0.05. Entrenamiento Prueba RMSE 48.38 48.54 R2 0.77 0.24 Figura. 13 Resultados modelo Persistance con dataset milk. Entrenamiento Prueba RMSE 24.26 22.27 R2 0.89 0.82 Figura. 14 Resultados modelo SVR con kernel rbf, C=50 y gamma=0.05.