\Header{knn.cv}{k-Nearest Neighbour Cross-Validatory Classification}
\keyword{classif}{knn.cv}
\begin{Description}\relax
k-nearest neighbour cross-validatory classification from training set.
\end{Description}
\begin{Usage}
\begin{verbatim}
knn.cv(train, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{train}] matrix or data frame of training set cases.

\item[\code{cl}] factor of true classifications of training set

\item[\code{k}] number of neighbours considered.

\item[\code{l}] minimum vote for definite decision, otherwise \code{doubt}. (More
precisely, less than \code{k-l} dissenting votes are allowed, even
if \code{k} is increased by ties.)

\item[\code{prob}] If this is true, the proportion of the votes for the winning class
are returned as attribute \code{prob}.

\item[\code{use.all}] controls handling of ties. If true, all distances equal to the \code{k}th
largest are included. If false, a random selection of distances
equal to the \code{k}th is chosen to use exactly \code{k} neighbours.

\end{ldescription}
\end{Arguments}
\begin{Details}\relax
This uses leave-one-out cross validation.
For each row of the training set \code{train}, the \code{k} nearest
(in Euclidean distance) other
training set vectors are found, and the classification is decided by
majority vote, with ties broken at random. If there are ties for the
\code{k}th nearest vector, all candidates are included in the vote.
\end{Details}
\begin{Value}
factor of classifications of training set. \code{doubt} will be returned as \code{NA}.
\end{Value}
\begin{References}\relax
Ripley, B. D. (1996)
\emph{Pattern Recognition and Neural Networks.} Cambridge.

Venables, W. N. and Ripley, B. D. (2002)
\emph{Modern Applied Statistics with S.} Fourth edition.  Springer.
\end{References}
\begin{SeeAlso}\relax
\code{\Link{knn}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
data(iris3)
train <- rbind(iris3[,,1], iris3[,,2], iris3[,,3])
cl <- factor(c(rep("s",50), rep("c",50), rep("v",50)))
knn.cv(train, cl, k = 3, prob = TRUE)
attributes(.Last.value)
\end{ExampleCode}
\end{Examples}

