deep-maps-pm25-eval
Deep-MAPS: Machine Learning based Mobile Air Pollution Sensing — Jun Song et al. (2019) (arXiv:1904.12303, 2019)
What this evaluates
This benchmark evaluates a model's ability to infer high-resolution (1km×1km, hourly) PM2.5 concentrations across an urban area using sparse mobile and fixed sensor data combined with multi-scale urban features. It probes spatial-temporal prediction capabilities and measures how well the model integrates local, neighboring, and macro-scale regional transport dynamics to improve air quality estimation accuracy.
Datasets
- Beijing PM2.5 Mobile Sensing Dataset — total 50736; splits: test (9200), train (-1)
Metrics
RMSE— range: other- Root Mean Squared Error: sqrt(mean((y_true - y_pred)^2)). Measures the average magnitude of prediction errors in the original units.
SMAPE— range: percent- Symmetric Mean Absolute Percentage Error: (100/n) * sum(|y_true - y_pred| / ((|y_true| + |y_pred|)/2)). Provides a symmetric percentage-based error metric.
R²(primary) — range: [0, 1]- Coefficient of Determination: 1 - (sum((y_true - y_pred)^2) / sum((y_true - mean(y_true))^2)). Represents the proportion of variance in the target variable explained by the model.
Input / output format
Input: Hourly feature vectors for each 1km×1km grid cell, comprising local urban features (L), neighboring grid features (N), macro-scale regional transport features (M), meteorological conditions, POI/AOI data, traffic conditions, and population vitality.
Output: Predicted PM2.5 concentration value in μg/m³ for the target grid cell and hour.
Scoring recipe
def compute_metrics(y_true, y_pred):
rmse = np.sqrt(np.mean((y_true - y_pred) ** 2))
smape = 100 * np.mean(np.abs(y_true - y_pred) / ((np.abs(y_true) + np.abs(y_pred)) / 2))
ss_res = np.sum((y_true - y_pred) ** 2)
ss_tot = np.sum((y_true - np.mean(y_true)) ** 2)
r2 = 1 - (ss_res / ss_tot)
return {'RMSE': rmse, 'SMAPE': smape, 'R2': r2}
Common pitfalls
- Macro features specifically refer to regional pollution transport from fixed stations outside the study area, not just adjacent grid cells.
- Training set composition varies by mobile data coverage percentage (0%, 20%, 40%, 60%, 80%, 100%), so performance metrics are not directly comparable without specifying the coverage level.
- SMAPE is reported as a percentage in the paper; using a non-symmetric variant (dividing only by y_true) will yield different values and break reproducibility.
Evidence (verbatim from paper)
A five-fold cross validation, along with RMSE, SMAPE and $R^{2}$, are used to assess the validity and accuracy of the machine learning model (Deep-MAPS). Table [1] compares Deep-MAPS with several benchmark methods including spatial interpolation (SI), k-nearest neighbors (KNN), and support vector regression (SVR.
Citation
@misc{song2019deepmaps,
title={Deep-MAPS: Machine Learning based Mobile Air Pollution Sensing},
author={Jun Song et al. (2019)},
year={2019},
note={arXiv:1904.12303}
}
- arXiv: 1904.12303