Let me guide you through the non-technical aspect first.
We will work our way with an example.
Let’s say that our friend Sara here loves reading. She signs up for an app where she can buy some books online. During sign up, she checked the box that said: “I prefer quick reads”.
After that, the app started to recommend some books to her. She liked & bought some (green) and disliked others (red). After a couple of months, the app recorded the following:
Now, There are 2 scenarios for the app’s recommendation system:
- If this app was using traditional if-else statements. It wouldn’t change anything about its recommendation system. It might as well not save this data. Unfortunately, it would continue to recommend short reads to Sara although she obviously does not want that.
## A sample of an old-fashioned code
if(sara.preferes_good_reads && new_book.number_of_pages < 300):
- If this app was smart, It would recognize this pattern using machine learning algorithms and would alter its recommendation system to be more suited to her needs. It would know that Sara has changed her mind about quick reading and that she now prefers big books. More importantly & what’s impressive is that it would figure out that Sara bears in mind the book reviews before buying any book.
Now the app just received 3 new books. A yellow, purple and a gray book.
What would a smart app recommend ?!
Disqualifying the gray book & recommending the yellow one seems like the logical thing to do. We can safely say that there is a very high probability that Sara would not like the gray book and that she will love the yellow one.
What about the purple book though? That is where machine learning proves it’s usefulness. Just by looking we were able to solve the more obvious problems, but it is not always that easy. Here we’re only considering 2 factors (Number of the book’s pages & its reviews). Factors like the cover page, title, book quality, reviews on the author, referrals, price, genre, etc. have not been added to our equation yet, making our problem a million times harder. A problem that is impossible for humans alone to solve.
This is a simple representation of the complex problems that Machine Learning helps us solve. There are million other fields in which Machine Learning is breaking through.
I am currently working on a project where machine learning is used to take a look at an MRI scan and detect whether this person has a tumor or not, pretty impressive, huh?! Not easy though.
Machine Learning in a nutshell
Machine learning is the study of algorithms and mathematical models that are used to solve a problem without being explicitly told what to do. Machine Learning programs rely on intelligent detection of patterns & connections in existing data to predict the solutions of problems that the program may have never seen before.
Machine learning is able to see what humans can not. It is able to calculate how much Sara takes into account how big the book is vs the book reviews. So when a book in an unclear area appears. It is able to estimate the weight of each factor based on Sara’s history, then applies these estimates on the current new book and predicts whether she will like it or not.