
sTrainSeq
is supposed to perform sequential 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, each training cycle consisting of: i) randomly
choose one input vector; ii) determine the winner
hexagon/rectangle (BMH) according to minimum distance of
codebook matrix to the input vector; ii) update the
codebook matrix of the BMH and its neighbors via updating
formula (see "Note" below for details). It also returns an
object of class "sMap".
sTrainSeq(sMap, data, sTrain)
nHex
: the total number
of hexagons/rectanges in the grid xdim
:
x-dimension of the grid ydim
: y-dimension 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 sTrainology
, visKernels
# 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, algorithm="sequential",
stage="rough")
# 5) training at "rough" stage
sM_rough <- sTrainSeq(sMap=sI, data=data, sTrain=sT_rough)
# 6) define trainology at "finetune" stage
sT_finetune <- sTrainology(sMap=sI, data=data, algorithm="sequential",
stage="finetune")
# 7) training at "finetune" stage
sM_finetune <- sTrainSeq(sMap=sM_rough, data=data, sTrain=sT_rough)
Run the code above in your browser using DataLab