Presentación de Lidia Contreras (@liconoc) en la reunión de Usuarios de R de Valencia del 9 de marzo de 2016.
Predicción de contaminación con técnicas de Machine Learning
Países por velocidad de sus misiles hipersónicos (2024).pdf
Predicción de contaminación con técnicas de Machine Learning (Contamination Forecasting)
1. Predicción de contaminación con
técnicas de Machine Learning
Lidia Contreras
Dpt. Sistemes Informàtics i Computació UPV
@liconoc
REUNIÓN GRUPO DE USUARIOS R VALENCIA 09/03/2016
@ValenciaRUsers https://valenciarusers.wordpress.com/
3. Índice
2
• Fuentes de datos y parámetros
• Estudio de los datos
• Tráfico y viento
• Predicción
• Extrapolación
• Web
• Posibles mejoras
4. Fuentes de datos y parámetros
3
Datos históricos horarios de tres años (2013-2014-2015)
• CONTAMINACIÓN
• Fuente: GeneralitatValenciana
• Parámetros: CO, NO, NO2, PM 2.5, PM10, SO2, O3
• DATOS METEOROLÓGICOS
• Fuente: AEMET
• Parámetros:Temperatura, Humedad,Velocidad y Dirección del viento, Precipitación y Presión
• TRÁFICO
• Fuente: Ayuntamiento deValencia
• Parámetros: Intensidad de los Puntos de Medida deTráfico - Espiras electromagnéticas
(vehículos/hora)
6. Estudio de los datos
5Librería: openair
windRose(dat, breaks=c(0,5,10,15,20,25,30), angle=20, cols="jet", paddle=FALSE, offset=5,
key.header= "Wind speed", key.footer="m/s", key.position="right", main="WindRose")
calendarPlot(dat, pollutant = "No2", year = 2014, annotate =
"ws", main="Dirección del viento en 2014 (+NO2 en Bulevar)")
7. Estudio de los datos
6
summaryPlot(dat, percentile=0.98, na.len=12, col.trend="blue", xlab=c("Gráficas de evolución
anual", "Histogramas"), main="Gráfica resumen de parámetros")
polarFreq(dat, pollutant=“NO”, statistic="mean", ws.int=0.4,
ws.upper=8, min.bin=5, grid.line=2, border.col="white",
main="Distribution of no depending on wind speed and wind
direction”,key.header="Mean", key.footer="")
8. Estudio de los datos
7
timeVariation(dat, pollutant=objs2[1:4], normalise =TRUE, difference=FALSE,
ylab="Concentration", xlab=c(paste(estaciones[i],": Hour",sep = ""), "Hour", "Month", "Week"))
11. Tráfico y viento –Versión sin viento
10
Todo el tráfico en un radio de 1km
E
12. Tráfico y viento –Versión con viento
11
Todo el tráfico en un radio de 1km dentro de ±30º en la dirección del viento
E
13. Tráfico y viento –Versión con viento y distancia
12
Todo el tráfico en un radio de 1km, dando más peso a aquellos puntos dentro
de ±30º en la dirección del viento
E
Librería: geosphere
Distancia de la estación al punto de tráfico (LAT, LON):
distHaversine(Estación, Punto) metros
Dirección del punto de tráfico respecto a la estación (LAT, LON):
bearingRhumb(Punto, Estación) grados
14. Predicción
13
Para cada contaminante en cada estación:
• Parámetros usados:
• Día, mes, año, hora, día de la semana
• Temperatura, presión, humedad, velocidad del
viento, precipitación
• Trafico (Según versión)
• Contaminante 3h antes, Tráfico 3h antes,
Temperatura 3h antes.
• Contaminantes relacionados:
• O3NO 3h antes, NO2 3h antes
• NO, NO2O3 3h antes
Librerías: Rweka, quantreg, randomForest
• Modelos:
• Linear Regression (lr)
• Quantile Regression (qr) with lasso method
• K nearest neighbours (IBKreg) with k=10
• Decision tree for regression (M5P)
• Random Forest (RF)
• Tres modelos básicos:
• TrainMean: Siempre predice la media deTrain
• TestMean: Siempre predice la media deTest
• X3H:Valor del contaminante 3h antes
Data Splitting
• Test: 1,2,3 y 4 meses
• Train: Dataset-Test
Librería: caret
#24h al dia * 30 dias = 720h al mes
#mesestest va de 1 a 4
numtest=mesestest*720
timeSlices<-createTimeSlices(1:nrow(dat), initialWindow = nrow(dat)-numtest,
horizon = numtest, fixedWindow = FALSE, skip = 720)
19. Web
18
Librerías:
• geosphere
• randomForest
• quantreg
Tráfico en tiempo real
Observación meteorológica
Modelos predictivos
.RData por contaminante y estación
API Google Maps
15min
• Id punto de medida tráfico
• Coordenadas
• Nombre vía
• Intensidad horaria tráfico
• Datos meteorológicos
• Predicción contaminantes
21. Posibles mejoras
20
• Mejorar la predicción/extrapolación
• Web:
• Cambiar AEMET por OpenWeatherMap para los datos
meteorológicos
• Cambiar Google Maps por OpenStreetMap
• Usar Leaflet + Mapbox para crear mapas temáticos
• Aplicar extrapolación a toda la ciudad y no solo a los puntos
de tráfico