 Artificial intelligence is a very complex field. It is not only about computer science, but also mathematics, logic, neurobiology or physics. Diverse nature of the AI allows many approaches to encountered problems. Depending on the solution you are looking for, different techniques are used. We are dealing with many algorithms that function in different ways. Although it is not easy because some algorithms can be matched to more than one category, we will try to classify them based on how they work.

## Regression Algorithms The main goal of regression is to build a model that will be used to predict one variable based on the known values of other variables. Regression analysis is used to determine the value of parameters for a function that will be adequate to a set of observed data and useful for future predictions.

Regression is one of the basic methods of statistics and has been adopted into machine learning. It works greatly in many areas that require numerical estimations such as trend analysis, business planning, marketing, financial forecasting.

## Instance-Based Algorithms The instance-based learning model is a type of algorithms that does not train, but rather stores the examples of training data in memory, and uses them to compare with new problem instances. The goal is to find the best match based on similarity.

Instead of creating a target function for the entire set, instance-based algorithms analyze each new case differently, using only training examples. They work very well when a target function is very complex but can be simplified into less complex generalizations.

## Decision Tree Algorithms Decision tree methods serve to extract knowledge from the set of examples. Each node in a tree reflects individual attributes of input, branches are values corresponding to those attributes, and the leaves make up the individual decisions.

The algorithm works recursively for each node of the tree. We have to decide whether the node will end this recursive call or assign the input to the following child node based on the value given to considered attribute. For every child node, a list of attributes is reduced by the attribute chosen for the previous nodes.

## Clustering Algorithms Clustering is a method of grouping elements into relatively homogeneous classes. The basis for grouping in most algorithms is the similarity between elements – expressed by the similarity function.

Clustering methods are effective for preliminary data analysis and the isolation of homogeneous groups (subpopulations) which are subject to further statistical or econometric analysis or data mining, where grouping is used, for example, to divide customers into certain subgroups.

## Association Rule Learning Algorithms An associative (association discovery) method is one of the most popular methods of data mining, which involves analyzing a set of attributes from a database for repetitive dependencies. The result of this method is associative rules and corresponding parameters.

Data mining based on extracting the associative rules apply wherever the purpose is to determine cause and effect relationships between events recorded in the analyzed database. The results of this method can be very useful to analyze shopping cart or develop offers for specific customer groups.

## Ensemble Algorithms

Ensemble methods use multiple weaker learning algorithms that are independently trained and merge the results into one overall output.

In this method, it is very important to choose the right models and find the right way to combine them together. With the proper implementation, this class of techniques is very powerful.

## Artificial Neural Network Algorithms Artificial Neural Networks are models that are inspired by the structure of biological neural networks. They are commonly used for regression and classification. ANN field is extremely complex, consisting many variations and algorithms for specific problems.

This field is rapidly growing and gaining a lot of popularity. You can read more about ANNs in the following article.

## Deep Learning Algorithms Deep learning is a new approach to the neural networks. These methods use larger models with a hierarchical structure composed of many nonlinear layers.

These algorithms are very effective in tasks such as object recognition or machine translation.