# Train Linear Regression with the direct method.

Hello, Today I am going to share with you the basics of linear regression. For this, I haven’t planned to use ** Gradient Descent** as I want the model to be a little fast and quick.

So, I am going to apply **Closed-Form**(Normal Equation) on L**inear Regression** with **RMSE **to get **θ** (model’s parameter vector).** **we will see this as we go on.

# Ok let’s start with Linear regression

The linear model predicts by simple computing a weighted sum of the input features, plus a constant called bias term.

**θ**: model’s parameter vector, containing the bias term theta-0 =1 and the feature weights theta-1 to theta-n

**x **is the instance’s feature vector, containing **x0 **to** xn, **with x**0** always equal to 1.

**θ. x: **is the dot product of the vectors θand **X.**

**h(θ):** hypothesis function, using the model parameter **θ.**

import numpy as np# input X

X=2*np.random.rand(100,1)

y=4+3*X+np.random.rand(100,1) # I have used y = Gaussian Noise

# Apply MSE to reduce Loss

now apply mse on the above equation to reduce the error and fit the model.

# Let’s calculate: best θ (Normal Equation)

By applying the Above equation we got a normal equation

Now we have to find the value of **Theta **that minimizes the cost function, there is a closed-form solution also known as **Normal Equation **which can give you direct results.

`# concatinate x0 =1 to each instance with X`

X_=np.c_[np.ones((100,1)),X]

theta_cap = np.lialg.inv(X_.T.dot(X_)).dot(X_.T).dot(y)

Yes now we got our **theta_cap **now we can use this **theta_cap** for our prediction.

read here for derviation .

**Now Let’s move for prediction**

`X_new=np.array([[0],[2]]) # create input`

X_new_b=np.c_[np.ones(2,1)),X_new) # add x0=1 to each instance

y_predict=X_new_b.dot(theta_best)

y_predict

**y_predict **will give you output as theta value

**Conclusion**

The computational complexity of inverting such a matrix is typically about O(n³) depending on implemetation.

once you have trained your Linear Regression model, prediction are very fast.

I hope you enjoyed my post flow me for more updates.

**Thanks**