xyf {kohonen} | R Documentation |
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.
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)
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. |
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. |
Ron Wehrens
W.J. Melssen, R. Wehrens, and L.M.C. Buydens. Chemom. Intell. Lab. Syst., in press.
som
, bdk
,
plot.kohonen
, predict.kohonen
### 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)