Path: blob/master/Part 2 - Regression/Polynomial Regression/polynomial_regression.R
1009 views
# Polynomial Regression12# Importing the dataset3dataset = read.csv('Position_Salaries.csv')4dataset = dataset[2:3]56# Splitting the dataset into the Training set and Test set7# # install.packages('caTools')8# library(caTools)9# set.seed(123)10# split = sample.split(dataset$Salary, SplitRatio = 2/3)11# training_set = subset(dataset, split == TRUE)12# test_set = subset(dataset, split == FALSE)1314# Feature Scaling15# training_set = scale(training_set)16# test_set = scale(test_set)1718# Fitting Linear Regression to the dataset19lin_reg = lm(formula = Salary ~ .,20data = dataset)2122# Fitting Polynomial Regression to the dataset23dataset$Level2 = dataset$Level^224dataset$Level3 = dataset$Level^325dataset$Level4 = dataset$Level^426poly_reg = lm(formula = Salary ~ .,27data = dataset)2829# Visualising the Linear Regression results30# install.packages('ggplot2')31library(ggplot2)32ggplot() +33geom_point(aes(x = dataset$Level, y = dataset$Salary),34colour = 'red') +35geom_line(aes(x = dataset$Level, y = predict(lin_reg, newdata = dataset)),36colour = 'blue') +37ggtitle('Truth or Bluff (Linear Regression)') +38xlab('Level') +39ylab('Salary')4041# Visualising the Polynomial Regression results42# install.packages('ggplot2')43library(ggplot2)44ggplot() +45geom_point(aes(x = dataset$Level, y = dataset$Salary),46colour = 'red') +47geom_line(aes(x = dataset$Level, y = predict(poly_reg, newdata = dataset)),48colour = 'blue') +49ggtitle('Truth or Bluff (Polynomial Regression)') +50xlab('Level') +51ylab('Salary')5253# Visualising the Regression Model results (for higher resolution and smoother curve)54# install.packages('ggplot2')55library(ggplot2)56x_grid = seq(min(dataset$Level), max(dataset$Level), 0.1)57ggplot() +58geom_point(aes(x = dataset$Level, y = dataset$Salary),59colour = 'red') +60geom_line(aes(x = x_grid, y = predict(poly_reg,61newdata = data.frame(Level = x_grid,62Level2 = x_grid^2,63Level3 = x_grid^3,64Level4 = x_grid^4))),65colour = 'blue') +66ggtitle('Truth or Bluff (Polynomial Regression)') +67xlab('Level') +68ylab('Salary')6970# Predicting a new result with Linear Regression71predict(lin_reg, data.frame(Level = 6.5))7273# Predicting a new result with Polynomial Regression74predict(poly_reg, data.frame(Level = 6.5,75Level2 = 6.5^2,76Level3 = 6.5^3,77Level4 = 6.5^4))7879