In this article, we list fundamental machine learning techniques with their common applications. Furthermore, it also presents example codes and data sets that present how they can be implemented easily in Python via machine learning libraries.

Machine learning methods are generally considered under two groups: Supervised Machine Learning and Unsupervised Machine Learning Algorithms. We can briefly explain them as:

Supervised Machine Learning Algorithms: These methods find linear or non-linear relations between the input parameters and output data and map them each other. Therefore, the data must be labelled in advance. The supervised machine learning algorithms firstly evaluate the data and create a map or a function between input and output data. This process is known as training, and then the trained machine learning network (or function) can be used to forecast the output when a new set of input parameters are sent through. This process is known as prediction. Supervised machine learning methods are very strong tools when we have a large amount data to extract useful information and predict the future events. Some supervised learning methods can be as simple as a linear functions while some of them can be very sophisticated. Some of the supervised learning methods are:

1. Linear Regression
2. Logistic Regression
3. Naive Bayes Classifier
4. Support-Vector Machines (SVM)
5. Linear Discriminant Analysis
6. K-nearest Neighbour (kNN)
7. Artificial Neural Networks (ANN)
8. Deep Learning (DL)
9. Similarity Learning
10. Random Forest
11. Dimensionality Reduction

What kind of data is suitable for supervised machine learning algorithms ?

Any labelled data can be used in supervised learning. For instance; predicting house prices based on the its location, number of rooms and size. In this example, data of the previously sold properties can be used. Another example can be a data set obtained through experiments with various input parameters.

Unsupervised Machine Learning Algorithms: A labelled data set may not be available every time. Even without any labels, it would be possible to find some statistical relations or data groups among the data by performing some dedicated machine learning algorithms. These algorithms are generally called unsupervised machine learning algorithms. Unsupervised learning strives to find logical patterns among the data and cluster or group the data. Some of the well-known unsupervised machine learning methods:

1. Principal Component Analysis (PCA)
2. Cluster Analysis: Hierarchical Clustering, K-means, Mixture Models
3. Method of Moments

What kind of data is suitable for unsupervised machine learning algorithms ?

Any data set can be processed by unsupervised machine learning algorithms. Although it is expected that supervised learning methods outperform unsupervised learning methods when we have a labelled data set, unsupervised learning methods may still reveal some interesting information or relations in labelled data sets as well. For example, nowadays, medical imaging data sets are widely studied by researchers using unsupervised learning methods to detect anomalies to diagnose some health issues in advance.

Note that these are not extensive lists of machine learning algorithms, there are more supervised and unsupervised learning algorithms and even mixed algorithms which combine at least two different algorithms. Furthermore, reinforcement learning is widely considered outside of these two main groups, although it is accepted as an unsupervised learning algorithm by some researchers. As machine learning is a very active research area, it is quite difficult to talk about all available machine learning algorithms. In the next articles, we will explain the machine learning methods listed above with example implementations in Python.