`sTrainBatch`

is supposed to perform batch training algorithm. It
requires three inputs: a "sMap" or "sInit" object, input data, and a
"sTrain" object specifying training environment. The training is
implemented iteratively, but instead of choosing a single input vector,
the whole input matrix is used. In each training cycle, the whole input
matrix first land in the map through identifying the corresponding
winner hexagon/rectangle (BMH), and then the codebook matrix is updated
via updating formula (see "Note" below for details). It returns an
object of class "sMap".

sTrainBatch(sMap, data, sTrain, verbose = TRUE)

- sMap
- an object of class "sMap" or "sInit"
- data
- a data frame or matrix of input data
- sTrain
- an object of class "sTrain"
- verbose
- logical to indicate whether the messages will be displayed in the screen. By default, it sets to TRUE for display

an object of class "sMap", a list with following components:

`nHex`

: the total number of hexagons/rectanges in the grid`xdim`

: x-dimension of the grid`ydim`

: y-dimension of the grid`r`

: the hypothetical radius of the grid`lattice`

: the grid lattice`shape`

: the grid shape`coord`

: a matrix of nHex x 2, with each row corresponding to the coordinates of a hexagon/rectangle in the 2D map grid`init`

: an initialisation method`neighKernel`

: the training neighborhood kernel`codebook`

: a codebook matrix of nHex x ncol(data), with each row corresponding to a prototype vector in input high-dimensional space`call`

: the call that produced this result

Updating formula is: ```
m_i(t+1) =
\frac{\sum_{j=1}^{dlen}h_{wi}(t)x_j}{\sum_{j=1}^{dlen}h_{wi}(t)}
```

,
where

`t`

denotes the training time/step`x_j`

is an input vector`j`

from the input data matrix (with`dlen`

rows in total)`i`

and`w`

stand for the hexagon/rectangle`i`

and the winner BMH`w`

, respectively`m_i(t+1)`

is the prototype vector of the hexagon`i`

at time`t+1`

`h_{wi}(t)`

is the neighborhood kernel, a non-increasing function of i) the distance`d_{wi}`

between the hexagon/rectangle`i`

and the winner BMH`w`

, and ii) the radius`\delta_t`

at time`t`

. There are five kernels available:- For "gaussian" kernel,
`h_{wi}(t)=e^{-d_{wi}^2/(2*\delta_t^2)}`

- For "cutguassian" kernel,
`h_{wi}(t)=e^{-d_{wi}^2/(2*\delta_t^2)}*(d_{wi} \le \delta_t)`

- For "bubble" kernel,
`h_{wi}(t)=(d_{wi} \le \delta_t)`

- For "ep" kernel,
`h_{wi}(t)=(1-d_{wi}^2/\delta_t^2)*(d_{wi} \le \delta_t)`

- For "gamma" kernel,
`h_{wi}(t)=1/\Gamma(d_{wi}^2/(4*\delta_t^2)+2)`

- For "gaussian" kernel,

# 1) generate an iid normal random matrix of 100x10 data <- matrix( rnorm(100*10,mean=0,sd=1), nrow=100, ncol=10) # 2) from this input matrix, determine nHex=5*sqrt(nrow(data))=50, # but it returns nHex=61, via "sHexGrid(nHex=50)", to make sure a supra-hexagonal grid sTopol <- sTopology(data=data, lattice="hexa", shape="suprahex") # 3) initialise the codebook matrix using "uniform" method sI <- sInitial(data=data, sTopol=sTopol, init="uniform") # 4) define trainology at "rough" stage sT_rough <- sTrainology(sMap=sI, data=data, stage="rough") # 5) training at "rough" stage sM_rough <- sTrainBatch(sMap=sI, data=data, sTrain=sT_rough)1 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)2 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)3 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)4 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)5 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)6 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)7 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)# 6) define trainology at "finetune" stage sT_finetune <- sTrainology(sMap=sI, data=data, stage="finetune") # 7) training at "finetune" stage sM_finetune <- sTrainBatch(sMap=sM_rough, data=data, sTrain=sT_rough)1 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)2 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)3 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)4 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)5 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)6 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)7 out of 7 (2018-01-18 16:56:12)updated (2018-01-18 16:56:12)

`sTrainBatch.r`

`sTrainBatch.Rd`

`sTrainBatch.pdf`

`sTrainology`

, `visKernels`