Machine Learning (ML)  may not feel particularly bleeding edge anymore. Some might argue that those now using the technology are late to the party. Reading the marketing materials of many companies, the evidence suggests this is true, but Machine Learning is far less widespread in practice. Adopting ML could be an expensive experiment that you want to do for the right reasons. As with any good experiment you should test often and fail fast. Here are some red flags that should make you reconsider using ML, at least in the short term.

1.   It’s the solution! I just need to find the problem

Many technology companies are getting on board with ML because of the competitive pressures. Naturally much of that competitive intelligence will be driven by companies’ marketing, it is the hot new tech right now. That doesn’t mean that these companies are actually making use of ML, let alone effectively.

Consider your problem, before the solution. ML is a set of techniques which can solve specific problems better than before, but the moment you stray from that particular problem set, it is likely that there are better techniques. Searching for a problem to solve with ML is likely to lead to vast complexity and expense delivering questionable value to your customers.

2.   More data in = more insights out

ML model performance is closely linked with the volume and quality of data available for training, but that doesn’t make it the right answer just because you have a lot of data. Training a computer vision algorithm to identify the speed on road signs where 90% of the training set are cat images is a non-starter. Improving the quality of the dataset may improve the accuracy of a model, but it won’t add capability.

3.   We can’t solve our problem any other way

It’s not wrong to be keen to pursue cutting-edge technology and methods. When done correctly they can be exciting for engineers, remain current for longer and provide better business results. However, in the world of ML this statement is a warning sign that this is a hobby project. Neural networks have conceptually existed since the 1940s and only recently have had improved results for some problem sets. It is well worth considering simpler first steps to solving a problem, and iterating on those over time.

4.   Library X Will Solve Our Problem In A Day!

The ML ecosystem is a truly beautiful thing. With thousands of excellent libraries and a thriving developer community, there are now some elegant examples of user-friendly ML libraries. The challenge is that few of their “hello world” use cases survive first contact with real-world problems. Soon those 10 lines become hundreds, including patching out functions and other ugly hacks that are not for polite conversation.

This ecosystem is still evolving rapidly, libraries are updating daily, often without backwards compatibility, or cease to exist altogether. Even the behemoth of Google makes massive changes to Tensorflow (the most-widely known ML Library) with each new version. If you develop ML capabilities on these libraries, don’t underestimate the maintenance workload.

5.   Because investor/C-suite/product/marketing said so

If you are in this camp, then you probably already agree that ML may not be the right answer. But do not dismay. What many companies market as ML encompass a broad range of classical techniques, and that’s fine. Consider the full gambit of tools available to you – heuristics, Bayesian statistics, Levenshtein distance, etc. To the outside world, these techniques may be indistinguishable from Machine Learning, but may yield better results faster. Doing that will not only help your team, but also the aforementioned enthusiastic task setter who set you on this path in the first place.

But that doesn’t mean you shouldn’t use ML for the problems it’s good at

These five examples are some hard-learned lessons, but that doesn’t mean it’s all bad. There are so many great use cases for machine learning. Whether it’s image recognition, pattern matching, recommendation engines, autocomplete, the list goes on. If you keep your problem space small, develop specific, testable ML software, and iterate quickly then you will find you will develop some awesome capabilities. When used correctly, ML will make your customer experience easier, faster, and more insightful.