# Which Machine Learning Algorithms Your Machine Learning Software Needs?

**Which Machine Learning Algorithms To Choose?**

Generally, we can divide machine learning into three big categories :

- Supervised learning
- Unsupervised learning
- Reinforcement learning.

Do you know what is the main difference and how to determine which category fits your machine learning software product the best?

Let’s try to figure that out. But first, let’s cover the machine learning developer basics.

**First category – Supervised Learning**

It is to be implemented when there is a label for a particular dataset, but it’s missing for other cases, so you need to predict it.

**Algorithm examples: **

**A decision tree algorithm**: it’s the basic yes/no questions, which should be asked to determine the probability of making a correct decision, letting you structure the problem in a structured and systematic manner to get a logical conclusion. It often mimics the human level thinking. For instance, the bank loan app could be classified into the following way:**Naive Bayes algorithm:**it’s a set of basic probabilistic classifiers that helps to take the right decision. It is used, for instance, to determine if an email is spam or not or to figure out which text expresses positive emotions and which one shows negative emotions. It’s also used for image recognition software, for instance, in self-driving cars.

**Second Category – Unsupervised Learning**

It is to be implemented when there is a need to figure out the implicit relationships in a stated unlabeled dataset (note that items here aren’t pre-assigned).

**Algorithm example: Clustering Algorithms (k-Means).** It’s a non-hierarchical method of grouping objects together. This algorithm can be used in an online store, for example, to sort their incoming merchandise in a fast and efficient manner.

**Third Category – Reinforcement Learning **

It is used when an agent receives a delayed reward in the next time step to evaluate its previous action. In other words, it’s a goal-oriented learning based on interaction with the environment.

**Algorithm example:** The Sarsa algorithm, which is an On-Policy algorithm used for TD-Learning. Typically, it’s used in robotics where a robot can learn to avoid collisions by getting a negative feedback once it bumps into obstacles.

Anyway, there are dozens of other ML algorithms, but in most cases, they belong to these 3 categories. Every product can feature only one group of ML algorithms or cover several ones at the same time. It depends on the product and its own requirements and functionality.