#------------------ # Data Preparation #------------------ #Read datasets #Download the data from http://www.saedsayad.com/datasets/BikeRental.zip train <- read.csv("bike_rental_train.csv") test <- read.csv("bike_rental_test.csv") #Rows and Cols dim(train) dim(test) #Columns name colnames(train) colnames(test) #Show head(train) head(test) #Rows and Cols dim(train) dim(test) #Columns name colnames(train) colnames(test) #Show head(train) head(test) #Scatter plot pairs(~temp+humidity+windspeed+bike_rent_count, data=train, main="Scatterplot - train", col="darkgreen") pairs(~temp+humidity+windspeed+bike_rent_count, data=test, main="Scatterplot - test", col="brown") #---------------------------------------- # Artificial Neural Network - Regression #---------------------------------------- library(nnet) #Train model.ANN <- nnet(bike_rent_count~., train, linout=TRUE, size=10, MaxNWts=10000, maxit=10000) summary(model.ANN) #Residual plot res.ANN = train$bike_rent_count-predict(model.ANN, newdata=train) plot(train$temp, res.ANN, ylab="Residuals", xlab="Temperature", main="Residual Plot") abline(0, 0) #Q-Q plot stdres.ANN = scale(res.ANN) qqnorm(stdres.ANN, ylab="Standardized Residuals", xlab="Normal Scores", main="QQ Plot") qqline(stdres.ANN) #Test pred.ANN <- predict(model.ANN, newdata=test) err.ANN <- test$bike_rent_count - pred.ANN rmse.ANN <- sqrt(mean((err.ANN^2))) #Errors histogram hist(err.ANN, main="bike_rent_count", sub="(Actual-Predicted)", xlab="Error", breaks=10, col="darkred")