Machine Learning is turning things (data) into numbers and **finding patterns** in those numbers.

Before starting the roadmap, I would like to take a minute to explain Traditional Programming (s/w 1.0) vs. Machine Learning (s/w 2.0).

**Traditional Programming** refers to any manually created program that uses input data and runs on a computer to produce the output.

**Machine Learning**, also known as augmented analytics, the input data and output is fed to an algorithm to create a program.

This yields powerful insights that can be used to predict future outcomes.

**Introduction**

This is a complete end-to-end machine learning roadmap, whether you are a beginner or an expert in machine learning, this is a comprehensive roadmap for one to ace in machine learning.

If you are a beginner then first you need to identify which type of beginner you are, there are quite a different type of beginners as follows:

Who new to programming and have no prior experience.

Who knows a little bit of programming.

Who currently studying computer science

Who knows good maths and new to machine learning.

**a. New to programming**

The one who is new to programming, don't know anything about it, is an absolute beginner, this kind of people should start learning to a program like C++, Java, Python, etc.

Following 4 Programming Language That Will Dominate 2021 will be helpful for absolute beginners.

You can pick programming languages followed by the resources from the above link.

**b. Little Experience in programming**

The 2nd type of people who know programming language how it works but don't know a great deal about programming.

They can directly jump into problem-solving using their favorite language on Leetcode or Hackerrank to brush up their concepts.

**c. Who Studying Computer & Good in Maths**

The same approach & guide for problem-solving would be recommended for the 3rd type and 4th type of candidate.

Now you know how to code, write loops, if-else, and basic constructs.

**Machine Roadmap**

To learn machine learning and data science you need to learn some specific libraries in python where each library has its own importance in the field of machine learning.

**1. Libraries**

**Numpy**: Used for optimized numerical computations

```
import numpy as np
# Creating two arrays of rank 2
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
```

**Resources**

**Pandas**: For Handling Data Manipulation

```
import pandas as pd
data = {"country": ["Brazil", "Russia", "India", "China", "South Africa"],
"capital": ["Brasilia", "Moscow", "New Dehli", "Beijing", "Pretoria"],
"area": [8.516, 17.10, 3.286, 9.597, 1.221],
"population": [200.4, 143.5, 1252, 1357, 52.98] }
data_table = pd.DataFrame(data)
print(data_table)
```

**Resources**

**Matplotlib**: For Data Visualization

```
import matplotlib.pyplot as plt
import numpy as np
# Prepare the data
x = np.linspace(0, 10, 100)
# Plot the data
plt.plot(x, x, label ='linear')
```

**Resources**

**Scipy**: Used for optimization, linear algebra, integration, and statistics.

```
# Python script using Scipy
# for image manipulation
from scipy.misc import imread, imsave, imresize
# Read a JPEG image into a numpy array
img = imread('/var/tmp/cat.png') # path of the image
print(img.dtype, img.shape)
# Tinting the image
img_tint = img * [1, 0.45, 0.3]
```

**Resources**

**Scikit-Learn**: Used for data-mining and data analysis.

```
from sklearn import datasets
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# load the iris datasets
dataset = datasets.load_iris()
# fit a CART model to the data
model = DecisionTreeClassifier()
model.fit(dataset.data, dataset.target)
print(model)
```

**Resources**

**Theano**: Used to define, evaluate, and optimize mathematical expressions involving multi-dimensions arrays in an efficient manner.

```
import theano
import theano.tensor as T
x = T.dmatrix('x')
s = 1 / (1 + T.exp(-x))
logistic = theano.function([x], s)
logistic([[0, 1], [-1, -2]])
```

**Resources**

At this time you know the language, already solved a bunch of questions in problem-solving with your favorite language, you also know about basic libraries to use.

**2. Mathematics**

Now, this is the time to learn about mathematics, you had already learned mathematics at **high school or at graduation** but we **recommend revising all the concepts again** before starting with machine learning.

**Difference between high school maths and machine learning math?**

The main difference between the mathematics required to solve machine learning problems and what we study at school is, here in **machine learning we need applied mathematics**, we need to apply theorems and concepts to **solve real-world problem** whereas in school we only solve **questions based on theorems and equations**, but here we need to make equations and then solve them.

**Extra Resource who have fear in Maths**

**3. ML Tools**

Now you know the language, already solved a bunch of questions in problem-solving with your favorite language, you also know about basic libraries to use and now you also know what maths topic is important to proceed with machine learning.

Now it's time to know about the Machine Learning tools used across the industry at the global level.