Linear Regressor with RMSE R2 and durbin watson Stats

 # -*- coding: utf-8 -*-

"""

Created on Wed Oct 18 23:37:32 2023


@author: Syed Kamran Bukhari

"""


import numpy as np

import pandas as pd

import matplotlib.pyplot as plt


#read CSV file

dataset = pd.read_csv('Assi_1_data.csv')


#impute mean values in replace of na

dataset=dataset[dataset>0]

data = np.array(dataset)


from sklearn.impute import SimpleImputer

Imputer = SimpleImputer(missing_values=np.nan, strategy='median')

Imputer.fit(data[:, 0:3])

data[:,0:3]= Imputer.transform(data[:,0:3])

data = pd.DataFrame(data)


X=data.iloc[:,-2].values

Y=data.iloc[:,-1].values



#diving dataset to training and Testing

from sklearn.model_selection import train_test_split

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size= 0.2 ,random_state=1)

X_train = X_train.reshape(-1, 1)

Y_train = Y_train.reshape(-1, 1)

X_test = X_test.reshape(-1, 1)

Y_test = Y_test.reshape(-1, 1)



#linear Regression

from sklearn.linear_model import LinearRegression

regressor=LinearRegression()

regressor.fit(X_train, Y_train)


print('The Slope is = ', regressor.coef_)

print('The X intercept is = ',regressor.intercept_)


#scatter plot for Training test

plt.scatter(X_train,Y_train ,color = 'red')

plt.plot(X_train, regressor.predict(X_train), color='Blue')

plt.title('Delivery Time vs Salary Time (training Set)')

plt.xlabel('Delivery Time')

plt.ylabel('Salary Time')

plt.show()


#prediction values

Y_pred=regressor.predict(X_test)

plt.scatter(X_test,Y_test, color = 'red')

plt.plot(X_train, regressor.predict(X_train), color='Blue')

plt.title('Delivery Time vs Salary Time (Testing Set)')

plt.xlabel('Delivery Time')

plt.ylabel('Salary Time')

plt.show()


#RMSE score

residual = abs(Y_test-Y_pred)

ss= residual**2

ss=ss.sum()/len(Y_test)

print('The RMSE score is =', ss)


#R2 score

from sklearn.metrics import r2_score

R2= r2_score(Y_test, Y_pred)

print('The R2 score is =',R2)


#Durbin Watson Statistics

from statsmodels.stats.stattools import durbin_watson

DW = durbin_watson(residual)

print('Durbin Watson Statistics =',DW)



Comments

Popular posts from this blog

PAKISTAN ANSWERS BACK TO INDIA

PRIME MINISTER OF PAKISTAN WINNING THE HEARTS OF THE POOR PAKISTANI PEOPLE.

LOCAL GOVERMENT SYSTEM OF ISLAMABAD THE CAPITAL