Escalada López, Diego Ramos Benito, Mario. 5º Ingeniería de

Anuncio
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
Escalada López, Diego
Ramos Benito, Mario.
5º Ingeniería de Telecomunicación
1
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
1. Introducción.
El objetivo de esta práctica es desarrollar un sistema real de predicción
meteorológica para la ciudad de Madrid, utilizando técnicas de aprendizaje
automático para obtener modelos de caracterización y predicción, empleando como
herramienta la plataforma Weka.
El punto de partida es la información METAR (Meteorological Actual Report)
disponible en Internet. El código METAR, que fue establecido por la World
Meteorological Organization (WMO) y adoptado por todas las naciones del mundo,
sirve para representar condiciones meteorológicas en aeropuertos o estaciones
meteorológicas, habitualmente con medidas horarias. El código METAR es preciso y
fácil de leer y proporciona información muy valiosa que utilizan líneas aéreas y
organizaciones gubernamentales de todo el mundo.
Para esta práctica se proporciona este conjunto de datos meteorológicos en el
aeropuerto de Madrid Barajas (código internacional: LEMD), desde el año 1996 al
2004, con las siguientes medidas cada media hora (pueden faltar medidas):
•
•
•
•
•
•
•
•
•
•
•
•
HoraCET
Temperatura (grados Farenheit)
Punto de rocío (grados Farenheit)
Humedad
Presión (pulgadas)
Visibilidad
Dirección del viento
Velocidad del viento (millas por hora)
Velocidad de ráfagas de viento (millas por hora)
Precipitación
Eventos
Condiciones
El objetivo de la práctica es desarrollar un sistema de caracterización
meteorológica, utilizando la plataforma Weka como herramienta de aplicación de
algoritmos de aprendizaje.
En concreto hay que desarrollar tres modelos de predicción:
•
•
•
Predicción de temperatura a 1 hora
Predicción de temperatura a 24 horas
Predicción de condiciones meteorológicas (Despejado, Parcialmente Nublado,
etc) a 24 horas
Los modelos pueden basarse en cualquier técnica entre las disponibles en Weka,
incorporando las variables que se estimen oportunas entre las proporcionadas y
haciendo uso de toda la información histórica que se crea conveniente, es decir, la
matriz de minería de datos estaría compuesta por los valores de las variables
seleccionadas en diferentes instantes de tiempo.
2
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
Los datos están distribuidos por ficheros, correspondiendo cada uno de ellos a un
día del año, desde el 1/1/1994 al 31/10/2004 (3955 ficheros). El formato de los
datos es el siguiente (extracto de un día cualquiera):
HoraCET,TemperaturaF,Nivel de RocíoF,Humedad,PresiónIn,Visibilidad
MPH,Wind Direction,Velocidad del vientoMPH,RáfagaMPH,Precipitación
In,Hechos,Conditions
12:00 AM,37.4,33.8,87,30.39,7.0,NNE,2.3,-,N/A,,Parcialmente Nublado
12:30 AM, 35.6,33.8,93,30.39,7.0,Calm,Calm,-,N/A,,Parcialmente Nublado
1:00 AM,35.6,33. 8,93,30.39,7.0,Calm,Calm,-,N/A,,Nubes Dispersas
1:30 AM,35.6,33.8,93,30.36,7. 0,Norte,1.2,-,N/A,,Nubes Dispersas
2:00 AM,35.6,33.8,93,30.36,7.0,Norte,1.2,- ,N/A,,Nubes Dispersas
2:30 AM,35.6,33.8,93,30.36,7.0,NNO,1.2,-,N/A,,Nubes Dis persas
3:00 AM,35.6,33.8,93,30.36,7.0,NNO,1.2,-,N/A,,Nubes Dispersas
3:30 AM,33.8,32.0,93,30.33,7.0,Calm,Calm,-,N/A,,Parcialmente Nublado
4:00 AM,30.2, 32.0,100,30.33,7.0,Calm,Calm,-,N/A,,Parcialmente Nublado
4:30 AM,32.0,30.2,93 ,30.33,7.0,Calm,Calm,-,N/A,,Parcialmente Nublado
5:00 AM,32.0,30.2,93,30.30,7 .0,Calm,Calm,-,N/A,,Parcialmente Nublado
5:30 AM,30.2,30.2,100,-9999,5.6,Calm ,Calm,-,N/A,,Despejado
Pero se ha hecho uso de los datos facilitados en el fichero lemb.zip que contiene los
registros en el siguiente formato:
1996,07,01,4,75.2,50.0,41,30.01,-9999.0,Calm,Calm,-,N/A,?,Despejado
1996,07,01,5,75.2,50.0,41,30.01,-9999.0,Calm,Calm,-,N/A,?,Despejado
1996,07,01,6,73.4,48.2,41,30.01,-9999.0,Este,1.2,-,N/A,?,Despejado
1996,07,01,7,73.4,48.2,41,30.01,-9999.0,Este,1.2,-,N/A,?,Despejado
1996,07,01,8,69.8,48.2,46,29.98,-9999.0,Norte,3.5,-,N/A,?,Despejado
1996,07,01,9,69.8,48.2,46,29.98,-9999.0,Norte,3.5,-,N/A,?,Despejado
1996,07,01,10,66.2,41.0,40,29.98,-9999.0,Calm,Calm,-,N/A,?,Despejado
1996,07,01,11,66.2,41.0,40,29.98,-9999.0,Calm,Calm,-,N/A,?,Despejado
En cada fichero con código METAR se tiene la información de un día. No se han
utilizado todos los datos de todos los días ni de todas las horas, ya que mucha de
esta información no estaba disponible. Por tanto se ha realizado una limpieza previa
de los datos. Las fases del proyecto son:
•
•
•
Filtrado de datos Î El formato de los datos contenidos en la fuente de datos
nunca es el idóneo. Mediante el preprocesado, se filtran los datos (de forma
que se eliminan valores incorrectos, no válidos, desconocidos.
Selección de variables Î Aún después de haber sido preprocesados, en la
mayoría de los casos se dispone de una cantidad de datos excesiva. La
selección de características reduce el tamaño de los datos eligiendo las
variables más influyentes en el problema, sin apenas sacrificar la calidad del
modelo de conocimiento obtenido del proceso de minería. Se busca que las
variables elegidas estén lo menos correladas posibles y que representen de
la mejor manera el escenario del problema.
Algoritmos de extracción del conocimiento Î Mediante una técnica de
minería de datos, se obtiene un modelo conocimiento, que representa
patrones de comportamiento observados en los valores de las variables del
problema o relaciones de asociación entre dichas variables. También pueden
3
Diego Escalada López.
Mario Ramos Benito.
•
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
usarse varias técnicas a la vez para generar distintos modelos, aunque
generalmente cada técnica obliga a un preprocesado diferente de los datos.
Interpretación y evaluación: Una vez obtenido el modelo, se debe proceder a
su validación, comprobando que las conclusiones que arroja son válidas y
suficientemente satisfactorias. En el caso de haber obtenido varios modelos
mediante el uso de distintas técnicas, se deben comparar los modelos en
busca de aquel que se ajuste mejor al problema.
2. Desarrollo de la práctica.
Uno de los aspectos mas tediosos de la práctica es el preprocesado de los datos en
función de unos criterios descritos anteriormente y poner los datos en el formato
con el que trabaja Weka (ficheros .arff). Es importante notar que trabajaremos con
dos tipos de ficheros .arff, uno de entrenamiento (train) sobre los que se ha
ajustado los algoritmos de predicción y estimación de Weka que contiene los datos
desde el año 1994 hasta 2003; y otro fichero arff el cual contiene los datos de
validación (test) del año 2004 sobre los que se validarán los resultados obtenidos.
Gran trabajo del preprocesado de los datos y la conformación del fichero .arff se ha
realizado a través de un programa que parseaba el flujo de datos originales. Este
programa entre otras cosas elminina en primer lugar los registros con datos
erróneos. Por otra parte se ha realizado de manera manual el cambio de ciertos
valores de atributos para que Weka los pueda entender. Una vez que se tenían
todos los registros del fichero en un formato legible para Weka, se han suprimido la
cuarta parte de los registros de manera equiespaciada dado que se disponía de una
cantidad ingente de datos cuya información en principio no creemos que aporte
algo relevante al modelo.
A continuación se elegirán los atributos con los que se realizarán las secuencias de
entrenamiento, test y la posterior validación. Este procedimiento es de gran
importancia pues se tendrán que elegir los atributos que mejor caractericen al
problema. Se elegirán aquellos atributos que presenten una mayor incorrelación
entre ellos. Está elección se hara de manera plenamente subjetiva ya que
disponemos de una herramienta para conocer la correlación entre dos atributos.
Los atributos que definen el modelo son los siguientes:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Año.
Mes.
Dia.
Hora.
Temperatura (grados Farenheit).
Punto de rocío (grados Farenheit).
Humedad.
Presión (pulgadas).
Visibilidad.
Dirección del viento.
Velocidad del viento (millas por hora).
Velocidad de ráfagas de viento (millas por hora).
Precipitación.
Eventos.
Condiciones.
Temperatura en 1 hora.
Temperatura en 24 horas.
4
Diego Escalada López.
Mario Ramos Benito.
ƒ
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
Condiciones en 24 horas.
Hay que a notar que a cada registro del fichero original se le han añadido tres
nuevos campos al final: Temperatura en 1 hora, Temperatura 24 horas y
Condiciones 24 horas.
Finalmente los atributos que se ha elegido para realizar las predicciones son:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Temperatura.
Humedad.
Presión.
Condiciones.
Temperatura en 1 hora.
Temperatura en 24 horas.
Condiciones en 24 horas.
3. Algortimos empleados.
Los algoritmos escogidos para realizar la clasificación han sido:
3.1 Decision Table.
La tabla de decisión es un instrumento para decidir la mejor alternativa en un
proceso de decisión. Para ello se utiliza el concepto de regla de decisión, que es una
aplicación que asocia a cada alternativa un número, que expresa las preferencias
del decisor por los resultados asociados a dicha alternativa. Una tabla de decisión
se compone de una matriz en la que se almacenan una serie de condiciones y sus
correspondientes acciones. El problema de este algoritmo es decidir qué atributos
introducir en la tabla.
5
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.1.1 Predicción temperatura en 1 hora.
=== Run information ===
Scheme:
weka.classifiers.rules.DecisionTable -X 1 -S
5
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Decision Table:
Number of training instances: 7964
Number of Rules : 36
Non matches covered by Majority class.
Best first search for feature set,
terminated after 5 non improving subsets.
Evaluation (for feature selection): CV (leave one out)
Feature set: 1,5,6
Time taken to build model: 1.74 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.959
2.4081
3.156
27.7543 %
28.347 %
797
3.1.2 Predicción temperatura en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.rules.DecisionTable -X 1 -S 5
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Decision Table:
Number of training instances: 7964
Number of Rules : 152
Non matches covered by Majority class.
Best first search for feature set,
terminated after 5 non improving subsets.
Evaluation (for feature selection): CV (leave one out)
Feature set: 1,5,6,7
Time taken to build model: 1.44 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.872
4.0535
5.3774
47.3396 %
48.9952 %
797
6
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.1.3 Predicción condiciones en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.rules.DecisionTable -X 1 -S 5
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Decision Table:
Number of training instances: 7964
Number of Rules : 372
Non matches covered by Majority class.
Best first search for feature set,
terminated after 5 non improving subsets.
Evaluation (for feature selection): CV (leave one out)
Feature set: 2,3,4,6,7
Time taken to build model: 3.27 seconds
=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances
333
Incorrectly Classified Instances
464
Kappa statistic
0.2054
Mean absolute error
0.033
Root mean squared error
0.1313
Relative absolute error
90.0383 %
Root relative squared error
97.1535 %
Total Number of Instances
797
41.7817 %
58.2183 %
3.2 Regresión Lineal.
7
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.2.1 Predicción temperatura en 1 hora.
=== Run information ===
Scheme:
weka.classifiers.functions.LinearRegression -S 0 -R 1.0E-8
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Linear Regression Model
Time taken to build model: 94.08 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.9787
1.6306
2.2854
18.7938 %
20.5268 %
797
3.2.2 Predicción temperatura en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.functions.LinearRegression -S
0 -R 1.0E-8
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.8636
3.9785
5.5405
46.4631 %
50.4817 %
797
8
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.2.3 Predicción condiciones en 24 horas.
No se puede implementar ya que el atributo a clasificar ha de ser numérico.
3.3 IBK.
Es un algoritmo de clasificación basado observar de que tipo son los k vecinos mas
próximos de la muestra a clasificar. En nuestro caso se ha tomado la determinación
de tomar k=5 vecinos como referencia.
3.3.1 Predicción temperatura en 1 hora.
=== Run information ===
Scheme:
weka.classifiers.lazy.IBk -K 5 -W 0
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
IB1 instance-based classifier
using 5 nearest neighbour(s) for classification
Time taken to build model: 0.03 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.9476
2.405
3.5757
27.7185 %
32.1165 %
797
9
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.3.2 Predicción temperatura en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.lazy.IBk -K 5 -W 0
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
IB1 instance-based classifier
using 5 nearest neighbour(s) for classification
Time taken to build model: 0.02 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.8667
4.1186
5.4932
48.0997 %
50.0505 %
797
3.3.3 Predicción condiciones en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.lazy.IBk -K 5 -W 0
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
IB1 instance-based classifier
using 5 nearest neighbour(s) for classification
Time taken to build model: 0.02 seconds
=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances
312
39.1468 %
Incorrectly Classified Instances
485
60.8532 %
Kappa statistic
0.1895
Mean absolute error
0.0319
Root mean squared error
0.1378
Relative absolute error
87.0378 %
Root relative squared error
102.0112 %
Total Number of Instances
797
10
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.4 REPTree.
Es un método de aprendizaje rápido mediante árboles de decisión. Construye un
árbol de decisión usando la información de varianza y lo poda usando como criterio
la reducción del error. Solamente clasifica valores para atributos numéricos una
vez. Los valores que faltan se obtienen partiendo las correspondientes instancias.
3.4.1 Predicción temperatura en 1 hora.
=== Run information ===
Scheme:
weka.classifiers.trees.REPTree -M 2 -V
0.0010 -N 3 -S 1 -L -1
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,914
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Size of the tree : 2481
Time taken to build model: 0.97 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.9763
1.7199
2.4125
19.8224 %
21.6686 %
797
11
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
3.4.2 Predicción temperatura en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.trees.REPTree -M 2 -V
0.0010 -N 3 -S 1 -L -1
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R14,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Size of the tree : 1886
Time taken to build model: 1.39 seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
Root relative squared error
Total Number of Instances
0.8581
4.0835
5.6617
47.6901 %
51.5859 %
797
3.4.3 Predicción condiciones en 24 horas.
=== Run information ===
Scheme:
weka.classifiers.trees.REPTree -M 2 -V 0.0010
-N 3 -S 1 -L -1
Relation: datos_weka_levs_train_temp_1H_2Antweka.filters.unsupervised.attribute.Remove-R1-4,6,9-14
Instances: 7964
Attributes: 7
TemperaturaF
Humedad
PresionIn
Conditions
TemperaturaF_+1
TemperaturaF_+24
Conditions_+24
Test mode: split 90% train, remainder test
=== Classifier model (full training set) ===
Size of the tree : 630
Time taken to build model: 3.83 seconds
=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances
322
Incorrectly Classified Instances
475
Kappa statistic
0.1983
Mean absolute error
0.0327
Root mean squared error
0.1343
Relative absolute error
89.2027 %
Root relative squared error
99.3603 %
Total Number of Instances
797
40.4015 %
59.5985 %
12
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
4. Resultados obtenidos y conclusiones.
A continuación se muestran en una tabla los resultados obtenidos.
4.1. Predicción temperatura 1 hora.
Algoritmo
Decision table
Regresión Lineal
IBK
REPTree
Tiempo en
generar el
modelo (seg)
1.74
94.08
0.03
0.97
Root mean
square error
3.156
2.2854
3.5757
2.4125
Relative
absolute error
(%)
27.7543
18.7938
27.7185
19.8224
Visto los resultados el modelo que proporciona el mejor resultado es el de regresión
lineal dado que es el que presenta el menor relative absolute error. El algoritmo
REPTree proporciona un resultado muy parejo al de regresión lineal y sin embargo
el tiempo que tarda en generar el modelo es mucho menor que el caso de regresión
lineal por lo que si tuviésemos que elegir un modelo de los cuatro simulados nos
quedariamos con REPTree ya que los otros dos restantes, Decision Table e IBK
proporcionan unos resultados con un error mayor.
4.2. Predicción temperatura 24 horas.
Algoritmo
Decision table
Regresión Lineal
IBK
REPTree
Tiempo en
generar el
modelo (seg)
1.44
0.02
1.39
Root mean
square error
5.3774
5.5405
5.4932
5.6617
Relative
absolute error
(%)
47.3396
46.4631
48.0997
47.6901
En este caso la tabla muestra que de nuevo el algoritmo que mejor resultados
ofrece es el de regresión lineal. Sin embargo, la diferencia con respecto a los otros
algortimos es mínima y aunque en la tabla no se muestra (ya que no lo generó el
programa) el tiempo en generar el modelo es mucho mayor comparado con el resto
de los caso por lo que de tomar un modelo se podría elegir el REPTree o Decision
Table ya que proporcionan resultados muy parejos y el modelo se tarda poco en
generar.
4.3. Predicción condiciones 24 horas.
Algoritmo
Tiempo en
generar el
modelo (seg)
Root mean
square
error
Relative
absolute
error (%)
Decision table
IBK
REPTree
3.27
0.02
3.83
0.1313
0.1378
0.1343
90.0383
87.0378
89.2027
Instancias
mal
clasificadas
(%)
58.2183
60.8532
59.5985
Por último, se tiene que el algoritmo que resulta mejor para predecir las
condiciones meteorológicas es el decision table. Hemos tomado como criterio el
13
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
porcentaje de de las instancias mal clasificadas. A pesar de todo los otros dos
modelos proporcionan unos resultados muy parecidos a decision table por lo que
prácticamente daría igual elegir cualesquiera de ellos.
A nivel global podemos decir que de los algoritmos probados la regresión lineal es
la que mejor funciona con el inconveniente de que es un modelo que tarda mas en
generarse que el resto de los probados. Esto es norma general, los mejores
clasificadores tienen un alto coste computacional pero a cambio proporcionan unos
resultados bastante fiables. En un principio los clasificadores basados en redes
neuronales son los más potentes pero tienen una gran carga computacional. Si
queremos rapidez y una convergencia rápida optaremos por modelos como el IBK
que se basa en la clasificación atendiendo a la localización de las k muestras más
próximas.
Como comentario final nos gustaría señalar que nos hubiera gustado probar con
más modelos y observar los pros y contras de unos respecto de los otros. Sin
embargo esta labor no nos ha sido posible básicamente por falta de tiempo. El
preprocesado, limpieza y filtración de los datos así como el convertirlos al formato
.arff legible para Weka nos ha supuesto quebraderos de cabeza y el emplear una
gran cantidad de tiempo.
5. Anexo
Se proporciona como anexo el código java Parsear.java con el que se ha realizado
parte del parseado del flujo de datos.
import
import
import
import
java.io.*;
java.lang.*;
java.math.*;
java.util.*;
class Parsear{
public static void main (String arg[]){
try{
BufferedReader lector = new BufferedReader(new
FileReader(arg[0]));
BufferedWriter escritor = new BufferedWriter(new
FileWriter(arg[1]));
String linea="";
char c;
int cont=0;
int coma=0;
boolean fallo=false;
while ((linea = lector.readLine()) != null){
cont++;
fallo=false;
coma=0;
if(cont%2==0){
fallo=true;
14
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
}
for(int i=0;i<linea.length();i++){
c=linea.charAt(i);
if(c==','){
coma++;
if(coma==4 || coma==5 || coma==7 || coma==14 ||
coma==15 || coma==16 || coma==17){
char sig=linea.charAt(i+1);
if (sig=='?'){
fallo=true;
break;
}
}
}
}
if (coma!=17){
fallo=true;
}
if (fallo==false){
try{
escritor.write(linea);
escritor.newLine();
}
catch(Exception e){
e.printStackTrace();
System.out.println("Error al escribir la linea
"+linea+" en el fichero.");
}
}
}
escritor.flush();
escritor.close();
}
catch(Exception e){
System.err.println("Error al leer de fichero");
System.exit(-0);
}
}
}
15
Diego Escalada López.
Mario Ramos Benito.
Inteligencia Redes de Comunicación.
Minería de datos: Predicción Meteorológica.
16
Descargar