cv.vda.r(x, y, k, lam.vec)
cv.vda(x, y, k, lam.vec)
K
used for the K-fold cross validation.
lam.vec
that returns the smallest prediction error. This value is the optimal lambda
value for use in link{vda.r}
.
lambda
for use in Vertex Disciminant Analysis (vda.r
). The optimal value is considered the lamda
value that retuns the lowest testing error over the cross validation. If more than one lambda
value give the minumum testing error, the largest lambda
is selected. A plot of the cross validation errors can be viewed through plot.cv.vda.r
.
# load zoo data
# column 1 is name, columns 2:17 are features, column 18 is class
data(zoo)
# feature matrix without intercept
x <- zoo[,2:17]
# class vector
y <- zoo[,18]
# lambda vector
lam.vec <- (1:10)/10
# searching for the best lambda with 10-fold cross validation and plot cv
cv <- cv.vda.r(x, y, 10, lam.vec)
plot(cv)
# run VDA
out <- vda.r(x,y,cv$lam.opt)
# Predict five cases based on VDA
fivecases <- matrix(0,5,16)
fivecases[1,] <- c(1,0,0,1,0,0,0,1,1,1,0,0,4,0,1,0)
fivecases[2,] <- c(1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1)
fivecases[3,] <- c(0,1,1,0,1,0,0,0,1,1,0,0,2,1,1,0)
fivecases[4,] <- c(0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0)
fivecases[5,] <- c(0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0)
predict(out, fivecases)
Run the code above in your browser using DataLab