Random Forest Regressor
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 8 10:54:34 2023
@author: Syed Kamran Bukhari
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
dataset = pd.read_csv("Position_Salaries.csv")
X= dataset.iloc[:,1:2].values
Y= dataset.iloc[:,-1].values
from sklearn.ensemble import RandomForestRegressor
regressor = RandomForestRegressor(n_estimators=90,random_state=0)
regressor.fit(X,Y)
Y_pred = regressor.predict([[6.5]])
print('The Predicted Salary is = ', Y_pred)
#visualizing the data
plt.scatter(X,Y, color='red')
plt.plot(X,regressor.predict(X), color='blue')
plt.xlabel('Salary')
plt.ylabel('Salary')
plt.title('Position vs Salary')
plt.show()
#high resolution plot
X_grid = np.arange(min(X),max(X),0.1)
X_grid=X_grid.reshape(len(X_grid),1)
plt.scatter(X,Y, color='red')
plt.plot(X_grid,regressor.predict(X_grid), color='blue')
plt.xlabel('Salary')
plt.ylabel('Salary')
plt.title('Position vs Salary')
plt.show()
Y_ideal=np.arange(min(Y),max(Y))
plt.scatter(Y, regressor.predict(X), color='red')
plt.plot(Y_ideal,Y_ideal, color='blue')
plt.xlabel('Original Values')
plt.ylabel('Predicted Values')
plt.title('Original vs Predicted Values')
plt.show()
ss= abs(Y-regressor.predict(X))
ss=ss.sum()/len(Y)
from math import sqrt
ss=sqrt(ss)
print('The RMSE score is =', ss)
#R2 score
from sklearn.metrics import r2_score
R2= r2_score(Y, regressor.predict(X))
print('The R2 score is =',R2)
#Durbin Watson Statistics
from statsmodels.stats.stattools import durbin_watson
DW = durbin_watson(abs(Y-regressor.predict(X)))
print('Durbin Watson Statistics =',DW)
Comments
Post a Comment