\HeaderA{olvq1}{Optimized Learning Vector Quantization 1}{olvq1}
\keyword{classif}{olvq1}
\begin{Description}\relax
Moves examples in a codebook to better represent the training set.
\end{Description}
\begin{Usage}
\begin{verbatim}
olvq1(x, cl, codebk, niter = 40 * nrow(codebk$x), alpha = 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

\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Selects \code{niter} examples at random with replacement, and adjusts the
nearest example in the codebook for each.
\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{lvqtest}{lvqtest}}, \code{\LinkA{lvq1}{lvq1}}, \code{\LinkA{lvq2}{lvq2}}, \code{\LinkA{lvq3}{lvq3}}
\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)
cd1 <- olvq1(train, cl, cd)
lvqtest(cd1, train)
\end{ExampleCode}
\end{Examples}

