train <- read.table("loans.dat",header=F,col.names=c("x1","x2","y")); x1 <- train$x1; x2 <- train$x2; one <- mat.or.vec(length(x1),1) + 1.0; X <- cbind(one,x1,x2,x1*x2,x1^2,x2^2); y <- train$y; fit <- lsfit(X,y,intercept=FALSE); b <- as.numeric(fit$coef); y <- train$y; y <- (y==1); size <- 100; grid <- mat.or.vec((size+1)*(size+1),2); for (i in 0:size) { for (j in 0:size) { grid[(size+1)*j+i+1,1] <- i; grid[(size+1)*j+i+1,2] <- j; } } grid <- grid/(size+1); gx1 <- grid[,1]; gx2 <- grid[,2]; one <- mat.or.vec(length(gx1),1) + 1.0; X <- cbind(one,gx1,gx2,gx1*gx2,gx1^2,gx2^2); pred <- X%*%b; dflt <- (pred > 0.5); edge <- ((0.489 0.5); dflt <- as.numeric(dflt); err <- abs(dflt-ty); print(mean(err));