xyf {kohonen}R Documentation

Supervised version of Kohonen's self-organising maps

Description

Supervised version of self-organising maps for mapping high-dimensional spectra or patterns to 2D. The name stands for X-Y fused SOMs. One vector for each object is created by concatenating X and Y, and a SOM is trained in the usual way, with one exception: the distance of an object to a unit is the sum of separate distances for X and Y spaces. Prediction is done only using the X-space.

Usage

xyf(data, Y, grid=somgrid(), rlen = 100, alpha = c(0.05, 0.01),
    radius = quantile(nhbrdist, 0.67), 
    xweight = 0.5, toroidal = FALSE, keep.data = TRUE)

Arguments

data a matrix, with each row representing an object.
Y property that is to be modelled. In case of classification, Y is a matrix of zeros, with exactly one '1' in each row indicating the class. For prediction of continuous properties, Y is a vector. A combination is possible, too, but one then should take care of appropriate scaling.
grid a grid for the representatives: see somgrid.
rlen the number of times the complete data set will be presented to the network.
alpha learning rate, a vector of two numbers indicating the amount of change. Default is to decline linearly from 0.05 to 0.01 over rlen updates.
radius the starting radius of the neighbourhood to be used for each update: the decrease is linear over rlen updates and reaches the value of 1 after one-third of the iterations.
xweight the weight given to the X map in the calculation of distances for updating Y. Default is 0.5.
toroidal if TRUE, the edges of the map are joined. Note that in a hexagonal toroidal map, the number of rows must be even.
keep.data save data in return value.

Value

an object of class "kohonen" with components

grid the grid, an object of class "somgrid".
changes vector of mean average deviations from code vectors
codes a matrix of code vectors.
codeYs a matrix of Y values associated with each unit.
toroidal whether a toroidal map is used.
data data matrix, only if keep.data is TRUE.
Y Y, only if keep.data is TRUE.

Author(s)

Ron Wehrens

References

W.J. Melssen, R. Wehrens, and L.M.C. Buydens. Chemom. Intell. Lab. Syst., in press.

See Also

som, bdk, plot.kohonen, predict.kohonen

Examples

### Simulated example
library(MASS)

csize <- 150
c1 <- mvrnorm(csize, mu=c(5,3,4),
              Sigma=matrix(c(2, 0,0,0, 2, 1, 0, 1, 2),3,3))
c2 <- mvrnorm(csize, mu=c(5.5, 3.5, 4.5),
              Sigma=matrix(c(2, 0,0,0, 2, 1, 0, 1, 2),3,3))
c3 <- mvrnorm(csize, mu=c(0,0,0),
              Sigma=matrix(c(2, 0,0,0, 2, 1, 0, 1, 2),3,3))

X <- rbind(c1, c2, c3)
classes <- c(rep(1, csize), rep(2, csize), rep(3, csize))

xyfmap <- xyf(X, classvec2classmat(classes), somgrid(8, 8, "hexagonal"))
plot(xyfmap, "prediction")

### Wine example
data(wines)
set.seed(7)

training <- sample(length(wine.classes), 120)
Xtraining <- scale(wines[training,])
xyf.wines <- xyf(Xtraining, classvec2classmat(wine.classes[training]),
  grid = somgrid(5, 5, "hexagonal"), rlen=100)
Xtest <- scale(wines[-training,],
               center = attr(Xtraining, "scaled:center"),
               scale = attr(Xtraining, "scaled:scale"))
xyf.prediction <- predict(xyf.wines, data=Xtest)
xyfclass.prediction <-
  classmat2classvec(xyf.wines$codeYs[xyf.prediction$unit.classif,])
table(wine.classes[-training], xyfclass.prediction)

[Package kohonen version 1.0.1 Index]