Project overview
The Milan Mobility Project investigates how anonymised and aggregated mobile-phone network activity can be used to identify population and functional patterns across an urban area.
The project uses the Telecom Italia Big Data Challenge dataset for Milan, which contains aggregated Call Detail Record activity for incoming and outgoing calls, incoming and outgoing SMS messages, and internet connections. The observations are organised into temporal intervals and represented over a regular 100 × 100 spatial grid covering the metropolitan area.
Rather than tracking individual users, the dataset provides aggregate activity signatures for each grid cell. These signatures can be analysed using machine-learning methods to identify area-level functional characteristics, such as predominantly residential or employment-related activity.
Initial research question
The initial phase of the project examined whether supervised classification could identify residential and work-related areas more effectively than the clustering techniques commonly used in mobility-data analysis.
To create labelled training data, two sampling strategies were developed:
- a contiguous 20 × 20 subgrid containing residential, industrial and mixed-use areas;
- a set of 250 randomly selected cells.
The cells were manually labelled according to their predominant residential or work-related function. These data were then used to train and evaluate a k-nearest neighbours classifier.
For comparison, the same mobile activity data were analysed using k-means and k-medoids clustering.
SAMPLID: supervised identification of meaningful places
This initial work led to the development of SAMPLID—Supervised Approach for Meaningful Place Identification.
The main idea behind SAMPLID is that place-identification methods should learn from categories defined according to the purpose of the analysis. Unsupervised clustering forms groups according to similarities present in the data, but those groups do not necessarily correspond to meaningful categories such as residential and work-related areas.
The best SAMPLID result was obtained using the contiguous 20 × 20 subgrid, outgoing-call activity from one working day and a k-nearest neighbours classifier with (k=10). This configuration achieved an accuracy of 78.5% and outperformed the k-means and k-medoids alternatives considered in the study.
The experiments also showed that the geographically coherent 20 × 20 subgrid produced better training information than the randomly selected cells. This suggests that including transitions and boundaries between different urban functions is valuable when constructing the labelled sample.
After evaluation, the trained classifier was applied to the complete Milan grid to produce area-level predictions of residential and work-related functions.
Related publication:
Mendoza-Hurtado, M., Romero-del-Castillo, J. A., and Ortiz-Boyer, D. (2024). “SAMPLID: A New Supervised Approach for Meaningful Place Identification Using Call Detail Records as an Alternative to Classical Unsupervised Clustering Techniques”. ISPRS International Journal of Geo-Information, 13(8), 289. https://doi.org/10.3390/ijgi13080289
[Read the SAMPLID project post]
MAPLID: representing mixed-use urban areas
The second stage of the project addressed an important limitation of assigning only one category to each location.
Urban areas frequently perform several functions simultaneously. A grid cell may contain residential buildings, workplaces and a particular level of urban density. Representing such an area using a single class can therefore omit relevant information.
This motivated the development of MAPLID—Multi-label Approach for Place Identification. The Milan cells were described using five labels:
- home;
- work;
- high density;
- medium density;
- low density.
The home and work labels could coexist within the same cell, while the density labels represented alternative levels of urban morphology.
MAPLID compared Binary Relevance, Label Powerset, Classifier Chains and Multi-Label k-Nearest Neighbours. The best overall Milan configuration used Label Powerset with Random Forest and outgoing-call data, achieving an average precision of 88.3%.
The selected model was subsequently applied to the complete Milan grid, producing an independent map for each label. This provides a more detailed representation of the city than a single-class map because residential and employment-related functions can be identified simultaneously.
The methodology was also evaluated using data from the Province of Trento, providing evidence that the multi-label framework can be applied in a substantially different geographical environment.
Related publication:
Mendoza-Hurtado, M., Romero-del-Castillo, J. A., and Ortiz-Boyer, D. (2026). “MAPLID: A new multi-label approach for place identification using data supplied by mobile network operators”. International Journal of Geographical Information Science. https://doi.org/10.1080/13658816.2026.2617932
[Read the MAPLID project post]
Spatially aware multi-label classification
The project was later extended to investigate whether the spatial relationships between neighbouring cells could improve multi-label classification.
The resulting ML-proxkNN method combines:
- similarity between temporal mobile-phone activity patterns;
- physical adjacency between cells in the spatial grid;
- a locally optimised number of neighbours for each part of the feature space.
The method was evaluated using the Milan and Trento datasets. It achieved an average precision of 92.0% in Milan and 90.4% in Trento, while spatial block cross-validation was used to reduce the risk of optimistic results caused by spatial autocorrelation.
[Read the ML-proxkNN project post]
Visualisation and source code
The GitHub repository contains the data-processing scripts, labelled subgrids, GeoJSON files and prediction outputs used during the different stages of the project.
The geographic outputs can be visualised using tools such as GeoJSON.io. They include:
- the manually labelled 20 × 20 Milan subgrid;
- residential and work-related predictions;
- density-label predictions;
- multi-label combinations;
- full-grid functional maps.

Representative 20 × 20 Milan subgrid used to construct and evaluate the supervised classification models. (geojson.io)
Interpretation and limitations
The outputs generated by this project are functional proxy maps derived from aggregate telecommunications activity. Labels such as home and work describe the predominant characteristics of an area and should not be interpreted as identifying the home or workplace of individual users.
The results are affected by the spatial aggregation of the dataset, radio-base-station coverage, the quality of the manually assigned labels and the representativeness of the selected training region.
Despite these limitations, the project demonstrates that a relatively small labelled sample can be used to train interpretable machine-learning models and generate detailed functional descriptions of a much larger urban area.