DEV Community

Haseeb Mohammed
Haseeb Mohammed

Posted on

What problem are you trying to solve with Machine Learning?

Machine Learning is not a black box of magic with 100% success rate. We have to be OK with the idea that what we hope to achieve is not solvable due to any number of reasons.

Machine learning can learn from the data, yes, but figuring out what problems we can solve with Machine Learning is tough. Every post and tutorial you read is the highlight reel of someone's journey into Machine Learning. What isn't seen is what it took to get there. What isn't seen is all the failed experiments.

There are ways we can reduce the risk of failure. At a high level, saying you want to use ML to solve a problem is like saying you want to use a particular language or framework to build a web application. That doesn't inherently give you something to work with. You don't immediately go for the most complex and crazy sounding algorithms. You don't apply ML simply to include it in your marketing materials.

wE uSe Ml In OuR aPPliCaTioN

You have to ask yourself:
What problem are you trying to solve?
What is the output you're trying to achieve?
What kind of data do you have to support your claim?
What has been done so far to try and solve this problem?

"As a user I want to see similar items to the one I just purchased."
^ An ML problem for sure, but say you're a small shop with only 50-100 items? Some simple code of checking the tags on the item selected and querying your list of items for similar tags will do. Only increase in complexity as you see this becoming unmaintainable. Now you're at thousands of items, and your data is all tagged properly, and you have shopping behavior of your customers. Now you can run an ML algorithm to find what customers bought with, or next, or prior to, the item in question, along with the tags. You can then submit the customer's shopping history, along with the item itself, to an ML model to determine the next best item for them to purchase.

Put the question in a way that helps you think about what inputs you have and explicitly states what output you are trying to achieve. Thinking about the data you have acquired so far, and if in hindsight, thinking about the data that is not being recorded that you should start logging from now. "We can start recording what other items users viewed, that way we can build a network of similar items for purchased vs non-purchased similar items." "We can add referral links to see what items users shared with others and weigh that with a higher score for recommendation items."

ML is only tool. Only use it if it is the right tool for the job.

Top comments (0)