# Module 02: Machine learning algorithms

There are many standard machine learning algorithms that are used to solve the classification problem. Logistic regression is one such method, probably most widely used and most well know, also the oldest. Apart from that we also have some of the most advanced and complicated models ranging from decision tree to random forest, AdaBoost, XP boost, support vector machines, naïve baize, and neural network.

For the last couple of years, deep learning is running at the forefront. Typically neural network and deep learning are used to classify images. If there are a hundred thousand images of cats and dogs and you want to write a code that can automatically separate images of cats and dogs, you may want to go for deep learning methods like a convolutional neural network.

## Machine learning: regression techniques

Torch, cafe, sensor flow, etc. are some of the popular libraries in python to do deep learning. Regression is another class of problems in machine learning where we try to predict the continuous value of a variable instead of a class unlike in classification problems.

Regression techniques are generally used to predict the share price of a stock, sale price of a house or car, a demand for a certain item, etc. When time-series properties also come into play, regression problems become very interesting to solve. Linear regression with ordinary least square is one of the classic machine learning algorithms in this domain.

For time series based patterns, ARIMA, exponential moving average, weighted moving average, and simple moving average are used. Predictive Analytics there are some areas of overlap between machine learning and predictive analytics. While common techniques like logistic and linear regression come under both machine learning and predictive analytics, advanced algorithms like a decision tree, random forest, etc. are essentially machine learning.

Under predictive analytics, the goal of the problems remains very narrow where the intent is to compute the value of a particular variable at a future point of time. Predictive analytics is heavily statistics loaded while machine learning is more of a blend of statistics, programming, and mathematics.

A typical predictive analyst spends his time computing t square, f statistics, Innova, chi-square or ordinary least square. Questions like whether the data is normally distributed or skewed, should student’s t distribution be used or bells curve be used, should alpha be taken at 5% or 10% bug them all the time. They look for the devil in details.

A machine learning engineer does not bother with many of these problems e.g. SEO audit. Their headache is completely different, they find themselves stuck on accuracy improvement, false-positive rate minimization, outlier handling, range normalization or k fold validation.

A predictive analyst mostly uses tools like excel. scenario or goal seek are their favorite. They occasionally use VBA or micros and hardly write any lengthy code.

A machine learning engineer spends all his time writing complicated code beyond common understanding, he uses tools like R, Python, Saas. Programming is their major work, fixing bugs and testing on the different landscapes a daily routine.

These differences also bring a major difference in their demand and salary. while predictive analysts are so yesterday, machine learning is the future. A typical machine learning engineer or data scientist (as mostly called these days) are paid 60-80% more than a typical software engineer or predictive analyst for that matter and they are the key driver in today’s technology-enabled world.