# Linear Regression on Sonar Data - Ten Fold Cross Validation # Example for Homework #3 # Author: PatriciaHoffman ############################################################################### rm(list=ls()) setwd("C:/Users/PatriciaHoffman/workspaceR/TestDataSets") # create the model (use the "train" function in R) train<-read.csv("sonar_train.csv",header=FALSE) test<-read.csv("sonar_test.csv",header=FALSE) sonar<- rbind(train,test) nxval <- 10 out <- matrix(nrow = nxval, ncol = 2) I <- seq(from = 1, to = nrow(sonar)) trainErr <- 0.0 testErr <- 0.0 for(ixval in seq(from = 1, to = nxval)){ Iout <- which(I%%nxval == ixval%%nxval) trainIn <- sonar[-Iout,] trainOut <- sonar[Iout,] yin <- trainIn[,61] yout <- trainOut[,61] xin <- trainIn[,1:60] xout <- trainOut[,1:60] mod <- lm(V61~.,data = trainIn) tr <- sum(abs(yin - predict(mod,xin)))/(nrow(as.matrix(yin))) te<-sum(abs(yout - predict(mod,xout)))/(nrow(as.matrix(yout))) trainErr <- trainErr + tr/nxval testErr <- testErr + te/nxval out[ixval,1] <- tr out[ixval,2] <- te } print(out) print(trainErr) print(testErr)