Machine learning (ML) is the study of computer algorithms that improve automatically through experience. It is seen as a subset of Artificial Intelligence. Machine learning algorithms build a mathematical model based on sample data, known as "training data", to make predictions or decisions without being explicitly programmed to do so.

### Why Machine Learning?

The data is growing day by day, and it is impossible to understand all of the data with speed and accuracy. More than 90% of the data is unstructured that is audios, videos, photos, documents, graphs, etc. To find patterns in these unstructured datasets is a very big deal for human brains and therefore Machine Learning comes into action, to help developers to find significant information out of the data in minimum time.
Various algorithms are designed for different purposes. In this section, we will not be discussing those algorithms but we will focus on: Are we ready to learn Machine Learning?

### What are the prerequisites?

To get started with Machine Learning, you must be familiar with the following topics.

• Statistics
• Linear Algebra
• Probability
• Calculus
• Programming Language (Python)

Let's understand this by taking an example that why do we need to know the basic concepts of Mathematics.
Let's suppose we are given a few values of x and y. Now, we will train our algorithm on the given values of x and y and ML will work in such a way that it will try to find out a relation y = f(x) as per the given values of x and y. Now, the task is to find a new y for a new x. So let's see how it is done using ML. We'll be using Python here.

So, there is an algorithm known as Linear Regression which finds out the pattern after training the data and then predicts the future for the testing data.

```import numpy as np
import matplotlib.pyplot as plt
```
```x = np.array([1,2,3,4,5,6])
y = np.array([5,4,6,5,6,7])
plt.scatter(x,y)
plt.show()
plt.plot(x,y)
plt.show()
```

Output:  ```from sklearn.linear_model import LinearRegression
alg = LinearRegression()
x_reshaped = x.reshape((6,1))
alg.fit(x_reshaped,y)
```

Output: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

```xp = [,,]
yp = alg.predict(xp)
plt.plot(xp,yp,marker='^',color='r')
plt.plot(x,y,'g*')
plt.show()
```

Output: So, these red markers are giving results for x = 0, 4, and 10. What Linear Regression is doing is, it is trying to find out a straight line as per the given x and y and then predicts the value for new x. Now, to understand how is it working, you need to know maths behind it. Every Machine Learning algorithm is having use of mathematics.

Apart from these concepts of Mathematics, you need to know the beauty of Data Structures because most of the time, you will be provided unstructured data and then you'll have to convert it into a structured form.

### Conclusion

You should have good knowledge of the above mentioned concepts of Mathematics and before diving into Machine Learning, get your hands dirty in Python with Data Structures.(or any of your favourite languages that supports Machine Learning)