最近准备写一篇关于自组织映射 (Self-organizing map)的文章。SOM的代码很多,研究了一圈之后目前使用最顺手的是R语言的kohonen包。
这个kohonen包功能很丰富,但是接口不是特别合理。R语言包大部分是统计学家写的,功能强大,数学上严谨,但是不怎么考虑代码的规范和简洁。
kohonen最重要的四个函数:
som
xyf
supersom
somgrid
这个命名的随意性容易让程序员抓狂。简单说,som
和xyf
是supersom
的封装版本,分别对应单层SOM和双层SOM,如果是两层以上的多层SOM,必须使用supersom
。这里需要注意一下函数的输入参数。
主要函数
som(X,...)
xyf(X, Y, ...)
supersom(data, grid=somgrid(), rlen = 100, alpha = c(0.05, 0.01),
radius = quantile(nhbrdist, 2/3),
whatmap = NULL, user.weights = 1, maxNA.fraction = 0L,
keep.data = TRUE, dist.fcts = NULL,
mode = c("online", "batch", "pbatch"), cores = -1, init,