Skip to main content

How Machine Learning (ML) started becoming my thing?

Hello guys. I am back to my home country for semester vacation. I wanted to write this blog post since days back, but finally I could spare some time to grab my laptop and log in inside blogger to complete this post.

In this particular post, I'll be sharing my way from being "just another computer engineering graduate" to a "machine learning enthusiast". 

Second semester of my M.Tech played a vital role in deciding which career path I should be taking. And most importantly, I had to choose a domain to research-on for my dissertation.

I wasn't acquainted with the word 'machine learning' at all. I did not have any idea regarding supervised ML, unsupervised ML. Whenever people around me talked about these stuffs, their discussion went all over my head.

In second semester I had to complete a mini-project in-order the fulfil the requirement of the course "Artificial Intelligence". I must admit that I probably got a good professor who could clearly explain the behinds of ML with real world examples. After few classes, my professor asked each and every one of to get our-self involved in any ML project that might represent a real-world problem.

Some of my friends went with building chatbot, facial recognition based attendance, gestures recog., some proposed to build emotion based movie suggestion app. And there I was, unable to extract a real-world problem.

One weekend, I was watching a cricket match and there was a stats shown while the match was going on. One of the commentator read the displayed stats as "if this team (suppose A) scores X runs before the death overs, they have Y% probability of winning the match against this team (suppose B)". And that was it. I got the hint about the domain in which my ML project will be based on.

And yes, I started collecting the materials I'll be in need of, for getting started to build the project.

My project was "Prediction model for Indian Premier League match".

I was just starting to get my hands on python for writing some of the ML algorithms like Linear Regression, KNN and KMeans. It didn't get difficult for me to work with Python, since I was well acquainted with Java.

I needed a way to get started, right? Well, I went to Google and searched for "first program in machine learning". Google came out of numerous results, and the top most result was a blog which seemed relevant to a ML newbie like me,

You can check out that blog, and I swear you won't be disappointed.

Besides Artificial Intelligence, the same semester I took Data Mining course too. This course, for me, was a cherry on top of a cake. My attendance in these two subjects were cent percent. It was not because my university brought minimum attendance rule into action; it was completely because I was enjoying learning these subjects. I was getting theoretically good with the algorithms in AI class, and in Data Mining I was doing numerical on various topics including: decision trees (Information Gain, Gini Index), classification, clustering (kmeans, hierarchical clustering), association rules mining.
For the first time in my academic life, I knew I was enjoying learning something.

Getting Started: I had the theory, and I did the mathematics, now only thing that was left was to follow the basics; start learning by writing the very first ML program which was a classification problem of an Iris Flower Dataset. For info about the dataset visit this Wikipedia page.

That was a wow moment for me! I wrote my first program which learnt from the data it was fed and now whenever a new input (flower description) was provided, the algorithm could instantly classify the flower into one of the three classes. Back then, for me this was something cool.

Given a dataset, finding interesting details from the data started exciting me. I can't explain that feeling which was driving me into a whole new exciting world. I went through some of the IEEE papers, which discussed how a dataset can be efficiently fed to a ML algorithm and how we can test the accuracy of the developed model. I got acquainted with various strategies like k-fold, and cross-fold validation techniques. Data analysis, feature selection, developing various learning models; day by day I was enjoying what I was learning. 

The project: I finally, built a prototype of the match prediction model. The model could predict the winner of a IPL match before hand. The model needed these five attributes: home team, away team, stadium, toss winner, toss decision. 

But this prediction model was only a prototype, and it didn't take the players into consideration. Matches are played by the players, right? So it was necessary to add the player's details and calculate the total average weights of both the playing teams. There come various factors into play including: last games win pattern, how a player is playing the season. So only above five attributes aren't only sufficient to correctly predict a match.

Finally, I came up with a solution to take player's performance into the model. Well, the final model did consider all these factors. More than 15 attributes were taken into consideration for building the final model. Soon I'll be coming up with a paper describing all the strategies taken for developing this ML project.

Novelty: The project does have some novelty. There are some related works that has been done in this area. But they have not considered players performance into their model, and their focus is only for a team where players usually do not transfer i.e. national teams, state based teams. But, since IPL is a auction based cricket league, where most of the players get swapped each season; building a prediction model for such series is indeed a tedious task. 

What now: Started as a mini project for a course, I finally found out where my interest lies, and I think I am quite ready to dive deep into this field of Machine Learning.

This way Machine Learning started becoming my thing.