library(class)

train <- read.table("loans.dat",header=F,col.names=c("x1","x2","y"))

X <- cbind(train$x1,train$x2)
ty <- train$y
y <- as.factor(train$y)

valid <- read.table("eval.dat",header=F,col.names=c("x1","x2","y"))

vX <- cbind(valid$x1,valid$x2)
vy <- valid$y

idx <- seq(3,15,2)
n <- length(idx)

te <- mat.or.vec(n,1)
ve <- mat.or.vec(n,1)
K <- mat.or.vec(n,1)

j = 0
for (i in idx) {

  j <- j + 1
  K[j] = -i
  print(i)

  dflt <- knn(train=X,test=X,cl=y,k=i)

  dflt <- as.numeric((dflt==1))

  err <- abs(ty-dflt)
  te[j] <- mean(err)
  print(mean(err))

  dflt <- knn(train=X,test=vX,cl=y,k=i)

  dflt <- as.numeric((dflt==1))

  err <- abs(vy-dflt)
  ve[j] <- mean(err)
  print(mean(err))

}

source("psopts.r")
postscript(file="nearloss.eps")

plot(x=c(K,K),y=c(te,ve),type='n',xlab="Complexity",ylab="Loss")
  lines(x=K,y=te,lty="solid",col="red")
  lines(x=K,y=ve,lty="solid",col="green")
dev.off()

