BETA
This is a BETA experience. You may opt-out by clicking here

More From Forbes

Edit Story

The Best Machine Learning Engineers Have These 9 Traits In Common

Following
This article is more than 7 years old.

How can one become a good machine learning engineer? originally appeared on Quora: the knowledge sharing network where compelling questions are answered by people with unique insights.

Answer by Nikhil Dandekar, Engineering Manager, on Quora:

I'm going to talk about the traits you need to have or be able to cultivate in order to be a good machine learning engineer.

Here is a list of must-have traits, in no particular order:

  • You need to enjoy an iterative process of development. If you want to build a machine learning system, you need to be able to build a version 0.1 using a very simple model quickly. Then iterate on getting it better at every successive stage.
  • You also need to have a good intuition for when to stop. In any machine learning system, you can always improve the accuracy by iterating on it more. But at some point, the effort you put into it exceeds the value you derive from it. You need to be able to identify that point.
  • You should be comfortable with failure. A lot of your models and experiments will fail. And that’s ok.
  • You should be driven by curiosity. The best people are the ones who are genuinely curious about the world around them and channel that curiosity when working on machine learning.
  • You need to have a good data intuition. You should be good at identifying patterns in the data. Being able to create quick data visualizations (using R, Python, Matlab or Excel etc.) helps.
  • You need to have a good sense of metrics and be metrics-driven. You should to be able to establish metrics that define success or failure of your system. You should feel comfortable with blind experiments [1]  and terms like precision, recall, accuracy, ROC, conversion rates, NDCG etc.
  • Metrics are great at giving a high level view of how your system is doing. But at the same time, you should never stop directly looking at individual examples. Manually looking at your biggest wins and your biggest losses (e.g. worst performing queries for a search engine), as well as random samples of your data, teaches you a lot about your machine learning system that raw metrics don’t.
  • You should be able to develop a generalized approach to fixing the bugs/misclassifications in your models. Fixing individual bugs will only let you attain a local maxima. More often that not, individual fixes will also make your models more complex and harder to work with. Gathering all the issues together and identifying common themes will let you focus on the biggest impact issues that you can fix in your next round of iteration.
  • When developing your models, you should be able to put yourself in the minds of the users / customers of your system. It’s easy to build something that’s good enough for you. But your current and future users matter way more than you do. There are also a lot of biases [2] that affect individual decision making, and you should try to be aware of and account for as many of them as possible.

This list was adapted from a blog post I wrote a while ago: What makes a good data scientist/engineer?

Footnotes

[1] Blind experiment

[2] List of cognitive biases

This question originally appeared on Quora. Ask a question, get a great answer. Learn from experts and access insider knowledge. You can follow Quora on Twitter, Facebook, and Google+. More questions: