# NOT RUN {
# }
# NOT RUN {
# toy example, kNN
set.seed(9999)
x <- runif(25)
y <- sample(0:2,25,replace=TRUE)
xd <- preprocessx(x,2,xval=TRUE)
kout <- knntrn(y,xd,m=3,k=2)
kout$regest # row 2: 0.0,0.5,0.5
predict(kout,matrix(c(0.81,0.55,0.15),ncol=1)) # 0,1,2
# sim data, kNN
set.seed(9999)
n <- 1500
# within-grp cov matrix
cv <- rbind(c(1,0.2),c(0.2,1))
xy <- NULL
for (i in 1:3)
xy <- rbind(xy,rmvnorm(n,mean=rep(i*2.0,2),sigma=cv))
y <- rep(0:2,each=n)
xy <- cbind(xy,y)
xdata <- preprocessx(xy[,-3],20)
oo <- knntrn(y,xdata,m=3,k=20)
predout <- predict(oo,xy[,-3])
mean(predout$predy == y) # about 0.87
library(mlbench)
data(Vehicle)
xdata <- preprocessx(Vehicle[,-19],25)
kout <- knntrn(Vehicle$Class,xdata,k=25)
predict(kout,as.matrix(Vehicle[1,-19])) # predicted Y is 3
# UCI Letter Recognition data
data(LetterRecognition)
# prep data
lr <- LetterRecognition
# code Y values
lr[,1] <- as.numeric(lr[,1]) - 1
# training and test sets
lrtrn <- lr[1:14000,]
lrtest <- lr[14001:20000,]
# kNN
xdata <- preprocessx(lrtrn[,-1],50)
# without setting priors
trnout <- knntrn(lrtrn[,1],xdata,26,50)
ypred <- predict(trnout,as.matrix(lrtest[,-1]))
# how well did it work?
mean(ypred$predy == lrtest[,1]) # 0.86
# logit
ologout <- ovalogtrn(26,lr[,c(2:17,1)])
ypred <- ovalogpred(ologout,lr[,-1])
mean(ypred == lr[,1]) # only 0.73
# try quadratic terms
for (i in 2:17)
lr <- cbind(lr,lr[,i]^2)
ologout1 <- ovalogtrn(26,lr[,c(2:33,1)])
ypred <- ovalogpred(ologout1,lr[,-1])
mean(ypred == lr[,1]) # increased to 0.81
library(mlbench)
data(PimaIndiansDiabetes)
pima <- PimaIndiansDiabetes
pima$diabetes <- as.integer(pima$diabetes == 'pos')
pwplot(pima$diabetes,pima[,1:8],25,pairs=cbind(c(2,3),c(2,6),c(6,8)),cex=0.8)
pwplot(pima$diabetes,pima[,1:8],25,pairs=cbind(c(2,3),c(2,6),c(6,8)),cex=0.8,band=0.05)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab