3-Polynomial Regression Using Python
3-Polynomial Regression Using Python
3-Polynomial Regression Using Python
19ME 3220
III/IV B.Tech
Odd Sem
for the Academic Year 2021-21
Sesion-23
Polynomial Regression
S. Ramesh Kumar
Course Co-ordinator
TYPES OF MACHINE LEARNING
Polynomial Regression
Polynomial Regression is a regression algorithm that models the relationship
between a dependent(y) and independent variable(x) as nth degree polynomial.
Hence, if the datasets are arranged in a non-linear fashion, then we should use
the Polynomial Regression model instead of Simple Linear Regression.
The Simple and Multiple Linear equations are also Polynomial equations
with a single degree, and the Polynomial regression equation is Linear
equation with the nth degree. So if we add a degree to our linear equations,
then it will be converted into Polynomial Linear equations.
Implementation of Polynomial Regression
Problem Description: using Python
There is a Human Resource company, which is going to hire a new
candidate. The candidate has told his previous salary 160K per annum,
and the HR have to check whether he is telling the truth or bluff. So to
identify this, they only have a dataset of his previous company in which
the salaries of the top 10 positions are mentioned with their levels.
By checking the dataset available, we
have found that there is a non-linear
relationship between the Position
levels and the salaries.
Predict the output for level 6.5 because the candidate has 4+ years' experience
as a regional manager, so he must be somewhere between levels 6 and 7.
Polynomial Regression
Steps for Polynomial Regression:
1. Data Pre-processing
2. Build a Linear Regression model and fit it to the dataset
3. Build a Polynomial Regression model and fit it to the dataset
4. Visualize the result for Linear Regression and Polynomial Regression model.
5. Predicting the output.
Data Pre-processing Step:
The data pre-processing step will remain the same as in previous regression
models, we will not use feature scaling, and also we will not split our dataset
into training and test set. It has two reasons:
The dataset contains very less information which is not suitable to divide it
into a test and training set, else our model will not be able to find the
correlations between the salaries and levels.
In this model, we want very accurate predictions for salary, so the model
should have enough information.
Polynomial Regression
Code for Polynomial Regression
STEP-1
# importing libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#importing datasets
data_set= pd.read_csv('Position_Salaries.csv')
#Extracting Independent and dependent Variable
x= data_set.iloc[:, 1:2].values
y= data_set.iloc[:, 2].values
Polynomial Regression
Build and fit the Linear regression model to the dataset.
STEP-2
#Fitting the Linear Regression to the dataset
from sklearn.linear_model import LinearRegression
lin_regs= LinearRegression()
lin_regs.fit(x,y)
#Visulaizing the result
for Linear Regression model
plt.scatter(x,y,color="blue")
plt.plot(x,lin_regs.predict(x), color="red")
plt.title("Bluff detection model(Linear Regression)")
plt.xlabel("Position Levels")
plt.ylabel("Salary")
plt.show()
Polynomial Regression
STEP-3
#Fitting the Polynomial regression to the dataset
from sklearn.preprocessing import PolynomialFeatures
poly_regs= PolynomialFeatures(degree= 2)
x_poly= poly_regs.fit_transform(x)
lin_reg_2 =LinearRegression()
lin_reg_2.fit(x_poly, y)
After executing the code, we will get another matrix x_poly, which can be
seen under the variable explorer option:
Polynomial Regression
Visualizing the result for Polynomial Regression
STEP-4
#Visulaizing the result for Polynomial Regression
plt.scatter(x,y,color="blue")
plt.plot(x, lin_reg_2.predict(poly_regs.fit_transform(x)), color="red")
plt.title("Bluff detection model(Polynomial Regression)")
plt.xlabel("Position Levels")
plt.ylabel("Salary")
plt.show()
Polynomial Regression
the predictions are close to the real values. The above plot will vary as we will
change the degree.
For degree= 3 For degree= 4
Chang in degree
If we change the degree=3, then we will give a more accurate plot.
If we change the degree=4, will get the most accurate plot.
Hence we can get more accurate results by increasing the degree of Polynomial.
Polynomial Regression
STEP - 5
Predicting the final result with the Linear Regression model:
Now, we will predict the final output using the Linear regression model to see
whether an employee is saying truth or bluff. So, for this, we will use
the predict() method and will pass the value 6.5.