Hello I am very new into the field of machine learning/deep learning , and I am finding it hard to select the right model for my research.

What I am trying to build is a model to classify which subway route a user have used based on travel time and transfer time given the origin station and destination station.

Here is a description of my data set.

 69551 1001  1703  1703     0     0     0     0     0     0 1003    399  2933
 69664 1001  1703  1703     0     0     0     0     0     0 1006    399  2284
 66606 1001  1703  1703     0     0     0     0     0     0 1701    118  1750
 66600 1001  1703  1703     0     0     0     0     0     0 1701    118  1750
 66601 1001  1703  1703     0     0     0     0     0     0 1701    118  1750
 69434 1001     0     0     0     0     0     0     0     0 1703      0  1005

ASTN1,BSTN2,ASTN2...BSTN5 refers to via stations BSTN ASTN refers to boarding and arrival stations.

I have a another data set of route information labeled.

The problem starts here.

I am trying to build a model that can classify which route a user have used given BSTN, ASTN, and time info BSEC, TFtime, Ttime. There are too many labels of routes because the routes all differs for each pair of Origin Station and Destination Station.

Below are number of routes per origin station and destination station

   BSTN  ASTN trips    
  <dbl> <dbl> <int>
1   150   152     3     
2   150   153     7     
3   150   154     2     
4   150   156     2     
5   150   157     2     
6   150   158     4     

as described there are already 20 different routes for only 5 Origin Destination pair. There are total of 109,425 pairs of origin and destination and 236,213 number of routes. I could not give label to every 236,213 routes for the model to classify.

i tried making random forest model for every pair of Origin Destination pair. But I was not able to tune or interpret them because there are too many type of models.

What would be a proper model for my situation? Would there be a way the model could interpret given OD pair, and then perform classification within the Origin Destinatnion pair assembly?

I would really appreciate some advice or help.


1 Answer 1


It looks like a very difficult problem, since there are many possible classes and very little information in the features to distinguish them. For the record, the reverse problem of estimating the travel time based on the route would probably be more feasible.

So you can't expect great performance on a problem like this, the goal will be to design the problem in a way which makes things as simple as possible for the classifier to do a decent enough job. Here are some suggestions:

  1. Start with training a model specific to a pair BSTN,ASTN.
  2. Discard the least likely routes, i.e. routes which are rarely used for the pair BSTN,ASTN (for instance routes with frequency lower than 10).
  3. Inspect the data to see if the features allow a distinction between the (main) classes. For instance you can plot the distribution of BSEC, TFtime, Ttime for different routes: if the distributions are close there's little chance the classifier will succeed. You can also train a decision tree and inspect it manually so see what happens.
  • $\begingroup$ Thanks for the advice. I have already done discarding rarely used routes, and i tried applying a classification model for all pair of BSTN/ASTN s . Though my question is , is there a way I could building model that could cognize given Origin Destination pair and them perform classification with the given Origin Destinationpair?. I have already tried building seperate models for each OD pair. $\endgroup$ Jun 15, 2020 at 4:10
  • $\begingroup$ @YunHyunsoo you can perfectly give the origin/destination as features to any classification model, but it's unlikely to work well because it makes it even harder for the model to work. If it doesn't work for the simple case of a single origin/destination, it's not going to work better this way. $\endgroup$
    – Erwan
    Jun 15, 2020 at 13:28
  • $\begingroup$ You could also try to design a custom bayesian model or a graph-based model which takes into account the train map, but this would probably be a lot of work. Usually if a human expert with a lot of time would not be able to find the answer, it's unlikely that any ML model will find it. $\endgroup$
    – Erwan
    Jun 15, 2020 at 13:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.