# What are the most suitable machine learning algorithms according to type of data? [closed]

I am beginner to data science. I found that some machine learning algorithms perform better, when given particular kind of data(ie - numerical, categorical, text, graphical). I searched about this topic on the web, but no luck.

I would like to know what kind of data performs best according to given machine learning algorithm?

It is better to explain briefly why certain kinds of data suitable for certain machine learning algorithms?

Hope answer to this question will help beginners in data science.

Update: It is better if you can explain what are the types of data most suitable for following algorithms. Naive Bayes, SVM, Regression, K-Means, Deep Neural networks.

• It does not quite work that way, but you are getting at something: it is important whether your model can capture the structure of your data. Other considerations include interpretability, scalability (of the model complexity to fit the size of data), flexibility to incorporate assumptions, and computational complexity. You develop an intuition for these things with a little practice. – Emre Jun 23 '17 at 3:47
• I think this question is too broad to produce any answers that have practical value. Maybe you can restrict your question to one particular algorithm or a certain "kind of data". – oW_ Jun 23 '17 at 18:17
• you are suggesting to be limited specific set of algorithms. Ok. – user158 Jun 24 '17 at 2:52

Given the list of algorithms you provided, these falls under 3 major classification of ML algorithms.

1) Classification Algorithms - Naive Bayes Classification, Decision Tree, Random Forest, kNN, Support Vector Machine (SVM), Neural Networks, etc.

2) Regression Algorithms - Linear Regression, Logistic Regression, Lasso Regression, etc.

(Note: Although Logistic Regression has Regression in its name, it is essentially a classification algorithm.

3) Clustering Algorithms - K-Means Clustering, Fuzzy C Means, Mixture of Gaussian, etc.

You might also be knowing there are 4 types of ML algorithms:

1) Supervised Learning

2) Unsupervised Learning

3) Reinforcement Learning

4) Semi-supervised Learning

Among these 4. first and second are the most important ones.

Supervised Learning is applied when we have a labelled data set i.e., we already our output variable/dependent variable. For example, a data set which contains the size of the house (independent variable) and corresponding house price (dependent variable). We can predict the house price of new data points with respect to the size of the house. Another example is, determining if a tumor is harmful or not harmful when we already have a list of tumors which are harmful or not. In supervised learning we know the problem statement and have all the necessary features to get answer.

In Unsupervised Learning, we do not have labelled data. We do not have any output variable. We do not know the problem statement. It is applied when we need to find a structure in the data set and extract meaningful insights out of it. For example, a data set of Walmart containing its customer's buying pattern. Given this, Walmart will ask its data scientists to extract some meaning. The data scientist may choose to apply K-Means Clustering and find how customers are segmented. Group A customers -- buys X,Y,Z products; Group B customers -- buys U,V,X products.

Classification and regression algorithms are used when dealing with a supervised learning problem and clustering algorithms are used when dealing with unsupervised learning.

Now coming back to your original query, 1) Naive Bayes -- best applied to a data set containing multiple features (independent variable) and an output variable which takes two discrete value (Yes/No). Thus, categorical data.

2) SVM -- best applied to a data set containing infinite number of features and you need to reduce these features down to a number so that it can be computed. Since it's a classification algorithm so it best works upon categorical data.

3) Regression -- Linear Regression is applied to a continuous numerical data set in which the dependent and independent variable exhibits linear relationship. For example, size of the house vs house price. Logistic Regression is a classification algorithm so it is best applied to categorical data.

3) K-Means -- K-Means can applied to many types of data sets. What it does is segmenting data points into clusters. Data points with similar features are clustered together.

4) Neural Networks -- Neural Networks can be shallow neural networks and deep neural networks and both of these could be applied to supervised or unsupervised problem as it has separate algorithms for both the cases. It is the most powerful and popular class of ML algorithms. It can be used in every problem statement. Main intuition behind it learning from its own error. I do not have much knowledge about neural network so I will not write further more.

If you want to learn more about ML and Neural Network you can apply for Machine Learning by Andrew Ng class. It's the best course out there for beginners like us.