\HeaderA{lvq2}{Learning Vector Quantization 2.1}{lvq2}
\keyword{classif}{lvq2}
\begin{Description}\relax
Moves examples in a codebook to better represent the training set.
\end{Description}
\begin{Usage}
\begin{verbatim}
lvq2(x, cl, codebk, niter = 100 * nrow(codebk$x), alpha = 0.03,
     win = 0.3)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] a matrix or data frame of examples

\item[\code{cl}] a vector or factor of classifications for the examples

\item[\code{codebk}] a codebook

\item[\code{niter}] number of iterations

\item[\code{alpha}] constant for training

\item[\code{win}] a tolerance for the closeness of the two nearest vectors.

\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Selects \code{niter} examples at random  with replacement, and adjusts the nearest
two examples in the codebook if one is correct and the other incorrect.
\end{Details}
\begin{Value}
A codebook, represented as a list with components \code{x} and \code{cl}
giving the examples and classes.
\end{Value}
\begin{References}\relax
Kohonen, T. (1990) The self-organizing map.
\emph{Proc. IEEE}
\bold{78}, 1464--1480.

Kohonen, T. (1995)
\emph{Self-Organizing Maps.}
Springer, Berlin.

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{\LinkA{lvqinit}{lvqinit}}, \code{\LinkA{lvq1}{lvq1}}, \code{\LinkA{olvq1}{olvq1}},
\code{\LinkA{lvq3}{lvq3}}, \code{\LinkA{lvqtest}{lvqtest}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
data(iris3)
train <- rbind(iris3[1:25,,1], iris3[1:25,,2], iris3[1:25,,3])
test <- rbind(iris3[26:50,,1], iris3[26:50,,2], iris3[26:50,,3])
cl <- factor(c(rep("s",25), rep("c",25), rep("v",25)))
cd <- lvqinit(train, cl, 10)
lvqtest(cd, train)
cd0 <- olvq1(train, cl, cd)
lvqtest(cd0, train)
cd2 <- lvq2(train, cl, cd0)
lvqtest(cd2, train)
\end{ExampleCode}
\end{Examples}

