• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言kohonen包主要函数介绍

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近准备写一篇关于自组织映射 (Self-organizing map)的文章。SOM的代码很多,研究了一圈之后目前使用最顺手的是R语言的kohonen包。

这个kohonen包功能很丰富,但是接口不是特别合理。R语言包大部分是统计学家写的,功能强大,数学上严谨,但是不怎么考虑代码的规范和简洁。

kohonen最重要的四个函数:

  1. som
  2. xyf
  3. supersom
  4. somgrid

这个命名的随意性容易让程序员抓狂。简单说,somxyfsupersom的封装版本,分别对应单层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,
         normalizeDataLayers = TRUE)

som中的参数X是输入的数据集,可以是矩阵,不能是data frame。需要注意,xyf中的XY都是输入的数据集,并不是指输入和输出。xyf用于双层SOM,所以X和Y分别对应各自的Layer层。

supersom中的data参数应对输入的数据库,如果是多层SOM,data是一个列表list,每个元素都是一个数据库。

somgrid函数

主要函数中,除了数据集以外,另外主要参数是somgrid()函数,用于建立SOM网络。其他参数可以使用默认值,但是somgrid()必须给定。

somgrid(xdim = 8, ydim = 6, topo = c("rectangular", "hexagonal"),
        neighbourhood.fct = c("bubble", "gaussian"), toroidal = FALSE)

xdimydimtopo是SOM网络的最基本拓扑信息,包括网络大小和拓扑形状。 neighbourhood.fct是邻域函数,可以选高斯函数和“泡泡”bubble函数。 高斯函数和bubble函数的区别会在另一篇文章中详细介绍。toroidal函数设置为TRUE可以把默认的SOM拓扑图变成环形。此时的SOM拓扑相当于是把环形切割后并展开。toroidal的作用看情况,它主要改变的是SOM的拓扑关系,对训练结果本身并没有影响。

可视化

plot(x, type = c("codes", "changes", "counts",
                       "dist.neighbours", "mapping", "property", "quality"),
                       whatmap = NULL, classif = NULL, labels = NULL,
                       pchs = NULL, main = NULL, palette.name = NULL,
                       ncolors, bgcol = NULL, zlim = NULL,
                       heatkey = TRUE, property, codeRendering = NULL,
                       keepMargins = FALSE, heatkeywidth = .2,
                       shape = c("round", "straight"), border = "black",
                       na.color = "gray", …)

SOM会调用系统的plot函数,x是训练好的SOM,type是画图类型,比如

changes:训练过程中the mean distance to the closest codebook vector
codes:SOM中的codebook vector
counts:SOM中每个单元对应的sample数量



实际使用中,习惯把counts图中的颜色反过来,即越深的单元表示上面的sample越多。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
从零开始学习R语言(六)——数据结构之“数据框(Data Frames)” ...发布时间:2022-07-18
下一篇:
R语言现学现做发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap