Skip to content

Investigate deployment-level models for mode inference based on trajectory characteristics #1100

@shankari

Description

@shankari

In e-mission, we currently use two methods for determining the mode automatically:

  • user level model to infer the (rich) mode from the user's prior travel history
  • ad-hoc set of rules to infer a simplified set of base modes (walk, bike, car, bus, train). We do this by using the motion activity to distinguish between non-motorized (walk, bike) and motorized (car, bus, train) modes and then a GIS integration to split the bus, train modes based on OSM bus routes.

However, as we have deployments with more complex modes, neither of these are sufficient. For example, in Laos, we want to be able to distinguish between cars and motorcycles, both of which are motorized modes without fixed routes. To this effect, we want to have the ability to build a deployment-specific model that uses sensor-level data to predict the rich modes that are relevant to this deployment.

The steps to this are fairly simple:

  • Pick a featurization that depends on the sensor characteristics and not the user
  • Create training and test sets.
    • Note that we should have at least one scenario in which the test set does not contain any user overlap with the training set
  • Build an RF model
  • Cross-validate

The initial featurization we should use is from

Zheng, Y., Li, Q., Chen, Y., Xie, X., Ma, W.-Y., 2008. Understanding mobility based on GPS data. In: Proceedings of the 10th international conference on Ubiquitous computing, Association for Computing Machinery, Association for Computing Machinery, Seoul, South Korea. pp. 312–321.
https://dl.acm.org/doi/10.1145/1409635.1409677

I implemented this featurization in https://github.com/e-mission/e-mission-server/tree/random-forest-mode-detection
and in https://github.com/e-mission/e-mission-server/blob/random-forest-mode-detection/emission/analysis/classification/inference/mode/pipeline.py in particular

Please put the initial results here and then we can decide how to proceed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues being worked on

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions