Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(e1071)
- library(kernlab)
- errors <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
- for(i in seq(1,50)) {
- enquesta<-read.csv("APA-TEMA7-P1.csv", header=TRUE, sep=",",dec=",")
- enquesta["Salary.3"]<-rep(nrow(enquesta), 0)
- enquesta$Salary.3[enquesta$Salary == "35k"] <- 2
- enquesta$Salary.3[enquesta$Salary %in% c("45k", ">45k")] <- 3
- enquesta$Salary.3[is.na(enquesta$Salary.3)] <- 1
- enquesta$Salary.3 <- as.factor(enquesta$Salary.3)
- L <- 5
- K <- 5
- tr <- sample(rep(1:nrow(enquesta)),round(.8*nrow(enquesta)))
- dades<-enquesta[tr,]
- test<-enquesta[-tr,]
- vectorC<-c(.25,.5,.75,1)
- errorsC <- rep(0, length(vectorC))
- for(cross in seq(1,L)) {
- folds <- sample(rep(1:K, length=nrow(dades)), nrow(dades), replace=FALSE)
- for(k in seq(1:K)){
- training <- dades[folds != k,]
- validation <- dades[folds == k,]
- for(i in seq(1,length(vectorC))){
- training.svm<-ksvm(training$Salary.3~., training, C=vectorC[i])
- p <- predict(training.svm, newdata=validation)
- error <- 1 - (sum(diag(table(p, validation$Salary.3)))/length(p))
- errorsC[i] <- errorsC[i] + error
- }
- }
- }
- errorsC <- errorsC/(L*K)
- bestC.index <- which(errorsC == min(errorsC))
- ksvm.result<-ksvm(dades$Salary.3~., dades, C=vectorC[bestC.index])
- p.result <- predict(ksvm.result, newdata=test)
- (error.result <- 1 - (sum(diag(table(p, validation$Salary.3)))/length(p)))
- errors[i] <- error.result
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement