When you try to make a reservation and get a waiting list instead of a confirmed seat, what do you do? You try to make different guesses and improve your chances of getting a seat. Well, Trainman does exactly the same, the only difference is that it has a large dataset to train itself and as a result has much higher accuracy of prediction.
Trainman was started by Mohammad Amir, who graduated from IIT Roorkee in 2010. Amir had been staying away from his house since Class Six as a result of which travel by train was quite frequent for him. Having worked for some time in the field of machine learning and artificial intelligence, Amir wanted to put his knowledge to the use of the common man. And this opportunity was a perfect match for him. Amir says,
"My family mostly travels by train and that too frequently, so that aroused my interest in trains. A common problem in Indian Railways which we came across was whether the waiting list status will get confirmed or not. We used to guess-estimate this based on past journeys. We have been following train trends keenly. Trainman can be thought of as a merger of two interests viz. machine learning and train knowledge into one. Before trainman, it was a common scenario that somebody would come to us with a standard question: "yaar is train mein 25 waiting hai, confirm hogi kya!!!" With time, the question became too repetitive and we decided to come up with an automatic solution to this. Hence, trainman was born."
How it works
Trainman predicts the likely status of a ticket by using machine learning. It collects journey details in advance for each train and builds model based on heuristics. The system trains itself and the accuracy is increased as more searches happen.
Once a user logs on to the site, he can enter the source and destination of the journey, and is presented with a list of trains plying on his route. Upon clicking on the respective train, he gets to know whether it is advisable to book tickets on that train or not, in case the ticket is waitlisted. There is another feature known as trends which helps the user get more insights on the trains plying in that route. The chances of getting a confirmed seats are shown on the site. Apart from this, a user can also run a normal query for the PNR.
Though it looks simple on the surface, there were a lot of challenges Amir had to face while building Trainman.
Amir says, "The biggest bottleneck was getting the historical data, loads and loads of it. Without a large amount of data there was no way we could have cracked it. Fortunately, we worked out an interesting hack to collect the data. Overcoming this biggest roadblock gave us a lot of confidence.
“We were using a library called libsvm for machine learning. We soon realized that scalability is an issue with this tool. It took us more than four-five hours to build our model using this tool. Waiting for four hours for a script to complete was frustrating, especially when the same thing has to be done numerous times with many variations of parameters. We then researched and switched to a different technology which solved the same problem in much lesser time.
“Also, we had no experience in front end development before. So, developing trainman involved learning front-end development as well at a fast pace."
Fortunately it has worked in a nice manner thus far, and they were approached by the mobile-governance team of Karnataka government to integrate Trainman in their mobile governance platform which is scheduled to be released in the next few months. Furthermore, they had over 8,000 user sessions with more than 25,000 pageviews in last month alone.
Future and Lessons
Looking at the future, the founders are still waiting for more users to get on to the platform before deciding on other courses of action.
Sharing his experiences and lessons while building Trainman, Amir gives us the following pointers:
1) Work on the idea that is close to your heart, not that which gives maximum profit. You will get more satisfaction.
2) Always add value to whatever you do. Don't just copy for the sake of it. There are always pain points to address. 3) Stick to the basics: in our case, we have a plain and simple UI that loads very fast and gives fast results, without too many distractions.
Click here to visit Trainman.