Predicción meteorológica Trabajo hecho por: Roberto García Sanchez Pablo Casas Muñoz
Qué es WEKA? Acrónimo de Waikate Environment for Knowledge Analisis Es un entorno para experimentación de análisis de datos que permite aplicar, analizar y evaluar las técnicas más relevantes de análisis de datos, principalmente las provenientes del aprendizaje automático, sobre cualquier conjunto de datos del usuario.
Cómo se han tratado los datos? En nuestro caso el profesor se ha encargado de proporcionarnos un fichero procesado en el que se contemplan todos los datos en orden, hora a hora, desde el primer día hasta el último. El fichero "lemd.csv" proporcionado contiene estos datos, con el formato de 1 registro por línea (189.936 registros), correspondiente a datos cada media hora, con campos separados por comas, con valores nulos marcados con?, y comenzando por AÑO, MES, DIA, HORA donde HORA va de 0 (12:00AM) a 47 (11:30 PM).
Cómo se han tratado los datos?(ii) Despues se han hecho programas de concatenación(en Java) para añadir en cada caso, las variables que eran necesarias para la predicción a realizar. En el caso de la temperatura a una hora, a veinticuatro horas y condiciones meteorologicas se han añadido las condiciones de media hora antes,una hora antes y una hora y media antes con sus registros completos que serían posteriormente filtradas por distintos mecanismos.
Cómo se han tratado los datos?(iii) Para la realización del filtrado lo que se ha hecho es ó bien usar el comando de la shell de linux cut que permite eliminar registros(columnas) que estan separados por comas o bien usar el filtro remove que proporciona Weka y que permite eliminar aquellas variables que no son de importancia para la predicción
Cómo se han tratado los datos?(iv) Cómo saber que variables eliminar ha sido una de las cuestiones más dificiles de la practica, para ello se han utilizado los gráficos que permiten visualizar la relacion entre variables por medio de Weka. En función de dichos graficos y un poco nuestro sentido de selección se han escogido las variables más importantes a nuestro juicio.
Cómo se han tratado los datos? Previo paso, para la visualización de los datos en Weka hemos tenido que realizar un fichero con las variables que fuese entendible por Weka. La estrucutura general de los ficheros entendibles por Weka son de la siguiente forma:
Formato entendible por Weka (formato arff) % comentarios @relation NOMBRE_RELACION @attribute r1 real @attribute r2 real @attribute i1 integer @attribute i2 integer @attribute s1 {v1_s1, v2_s1,, vn_s1} @attribute s2 {v1_s1, v2_s1,, vn_s1} @data DATOS Los atributos pueden ser principalmente de dos tipos: numéricos de tipo real o entero (indicado con la palabra real o integer tras el nombre del atributo), y simbólicos, en cuyo caso se especifican los valores posibles que puede tomar entre llaves.
Adecuación del archivo a formato arff Para las condiciones se han tenido que sustituir los espacios en blanco por guiones bajos,_, porque sino Weka el fichero lo entendía como otro token(cada palabra separada por espacios en blanco) y el fichero no se cargaba en Weka correctamente. Los valores desconocidos para Weka como son 9999.0,-9999,N/A,-, y los datos vacíos han sido sustituidos por el valor desconocido que entiende la herramienta que es?.
Variables eleminidas para las predicciones Para las predicciones las variables que hemos eliminado han sido los eventos porque en muchos de los casos esta variable estaba vacía y no daba información, la precipitación y la velocidad de ráfagas del viento por la misma razón, ya que en el caso de la precipitación aparecía el valor N\A y en el de velocidad de ráfagas del viento venía un -, por lo que se ha considerado como falta de dato
Selección de líneas de código Para el uso de Weka hemos tenido que trabajar con archivos de menos líneas para poder hacer operable el programa Weka, ya que en caso contrario si usábamos toda la información disponible obteníamos problemas derivados con la sobrecarga de datos y nos salían errores de escasez de memoria para poder ejecutar los algoritmos.la selección de las líneas se ha hecho de forma aleatoria y de forma uniforme en todo el fichero incial con todos los registros.
Qué algoritmos hemos utilizado? Decision Table(perteneciente a rules) REPTree(perteneciente a trees) Kstar(perteneciente a lazy) IB1(perteneciente a lazy) Regresion lineal(perteneciente a functions) Decision Stump(perteneciente a trees) OneR(perteneciente a rules) SMO(perteneciente a functions) SMOReg(perteneciente a functions)
Resultados obtenidos (I) Para la predicción de la temperatura a una hora posterior Relative hemos Mean obtenido: Algoritm o Root Mean Squared Error Absolute Error(%) Absolute Error Decision Table 4.1705 22.8365 3.0151 RepTree 3.9841 21.548 2.845 Kstar 3.473 19.9362 2.6322 LeastMedSq 3.7665 18.9094 2.4966 SMOreg 4.3007 18.1676 2.3987 IB1 5.8299 31.0165 4.0951 IBK(K=1) 5.8299 31.0165 4.0951 Regresion Lineal 5.7214 20.5757 2.7166 Decision Stump 9.3118 57.9357 7.6493
Resultados obtenidos(ii) Desde el punto de vista del mean absolute error el mejor algoritmo es el de SMOreg
Resultados obtenidos(iii) Para la predicción a veinticuatro horas los resultados obtenidos han sido: Algoritmo Root Mean Squared Error Relative Absolute Error(%) Decision Table 18.8325 46.5582 6.1871 RepTree 18.0967 40.5375 5.387 Kstar 17.7841 40.1686 5.338 LeastMedSq 18.3754 37.6777 5.007 M5P 17.5404 36.4379 4.8409 Mean Absolute Error IB1 21.6829 82.1117 10.9118 IB5 19.6625 63.9462 8.4978 Regresion Lineal 18.0609 39.7511 5.2825 Decision Stump 20.1665 65.0802 8.6485
Resultados obtenidos (IV) En este caso el mejor método encontrado es el M5P que es el que menor mean absolute error tiene.
Resultados obtenidos(v) Para la predicción de las condiciones meteorológicas obtenemos la siguiente tabla de resultados Algoritmo Root Mean Squared Error Relative Absolute Error(%) Mean Absolute Error Tasa de aciertos Decision Table 0.1244 910.177 0.0299 44.0171 RepTree 0.1308 913.677 0.03 41.2393 Kstar 0.1437 874.079 0.0287 37.2863 SMO 0.1419 123.9237 0.0407 44.9786 LWL 0.1235 917.871 0.0302 42.6282 IB1 0.17 879.445 0.0289 33.547 IB5 0.1326 894.628 0.0294 39.1026 OneR 0.1578 75.785 0.0249 41.1325 Decision Stump 0.1237 929.109 0.0305 42.735
Resultados obtenidos(vi) En este caso el método OneR es el que mejor mean absolute error tiene. En este caso también se añade una tasa de aciertos, el método que mejor tasa de aciertos tiene es el SMO.
Final Fin de la presentación