Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
debakarr
GitHub Repository: debakarr/machinelearning
Path: blob/master/Part 2 - Regression/Polynomial Regression/polynomial_regression.R
1009 views
1
# Polynomial Regression
2
3
# Importing the dataset
4
dataset = read.csv('Position_Salaries.csv')
5
dataset = dataset[2:3]
6
7
# Splitting the dataset into the Training set and Test set
8
# # install.packages('caTools')
9
# library(caTools)
10
# set.seed(123)
11
# split = sample.split(dataset$Salary, SplitRatio = 2/3)
12
# training_set = subset(dataset, split == TRUE)
13
# test_set = subset(dataset, split == FALSE)
14
15
# Feature Scaling
16
# training_set = scale(training_set)
17
# test_set = scale(test_set)
18
19
# Fitting Linear Regression to the dataset
20
lin_reg = lm(formula = Salary ~ .,
21
data = dataset)
22
23
# Fitting Polynomial Regression to the dataset
24
dataset$Level2 = dataset$Level^2
25
dataset$Level3 = dataset$Level^3
26
dataset$Level4 = dataset$Level^4
27
poly_reg = lm(formula = Salary ~ .,
28
data = dataset)
29
30
# Visualising the Linear Regression results
31
# install.packages('ggplot2')
32
library(ggplot2)
33
ggplot() +
34
geom_point(aes(x = dataset$Level, y = dataset$Salary),
35
colour = 'red') +
36
geom_line(aes(x = dataset$Level, y = predict(lin_reg, newdata = dataset)),
37
colour = 'blue') +
38
ggtitle('Truth or Bluff (Linear Regression)') +
39
xlab('Level') +
40
ylab('Salary')
41
42
# Visualising the Polynomial Regression results
43
# install.packages('ggplot2')
44
library(ggplot2)
45
ggplot() +
46
geom_point(aes(x = dataset$Level, y = dataset$Salary),
47
colour = 'red') +
48
geom_line(aes(x = dataset$Level, y = predict(poly_reg, newdata = dataset)),
49
colour = 'blue') +
50
ggtitle('Truth or Bluff (Polynomial Regression)') +
51
xlab('Level') +
52
ylab('Salary')
53
54
# Visualising the Regression Model results (for higher resolution and smoother curve)
55
# install.packages('ggplot2')
56
library(ggplot2)
57
x_grid = seq(min(dataset$Level), max(dataset$Level), 0.1)
58
ggplot() +
59
geom_point(aes(x = dataset$Level, y = dataset$Salary),
60
colour = 'red') +
61
geom_line(aes(x = x_grid, y = predict(poly_reg,
62
newdata = data.frame(Level = x_grid,
63
Level2 = x_grid^2,
64
Level3 = x_grid^3,
65
Level4 = x_grid^4))),
66
colour = 'blue') +
67
ggtitle('Truth or Bluff (Polynomial Regression)') +
68
xlab('Level') +
69
ylab('Salary')
70
71
# Predicting a new result with Linear Regression
72
predict(lin_reg, data.frame(Level = 6.5))
73
74
# Predicting a new result with Polynomial Regression
75
predict(poly_reg, data.frame(Level = 6.5,
76
Level2 = 6.5^2,
77
Level3 = 6.5^3,
78
Level4 = 6.5^4))
79