R语言kohonen包主要函数介绍
最近准备写一篇关于自组织映射 (Self-organizing map)的文章。SOM的代码很多,研究了一圈之后目前使用最顺手的是R语言的kohonen包。
这个kohonen包功能很丰富,但是接口不是特别合理。R语言包大部分是统计学家写的,功能强大,数学上严谨,但是不怎么考虑代码的规范和简洁。
kohonen最重要的四个函数:
somxyfsupersomsomgrid
这个命名的随意性容易让程序员抓狂。简单说,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,
normalizeDataLayers = TRUE)
som中的参数X是输入的数据集,可以是矩阵,不能是data frame。需要注意,xyf中的X和Y都是输入的数据集,并不是指输入和输出。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)
xdim,ydim和topo是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越多。
R语言kohonen包主要函数介绍的更多相关文章
- R语言 arules包 apriori()函数中文帮助文档(中英文对照)
apriori(arules) apriori()所属R语言包:arules Mining Associations w ...
- R语言 ggplot2包
R语言 ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- R语言dplyr包初探
昨天学了一下R语言dplyr包,处理数据框还是很好用的.记录一下免得我忘记了... 先写一篇入门的,以后有空再写一篇详细的用法. #dplyr learning library(dplyr) #fil ...
- R语言-Knitr包的详细使用说明
R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...
- R语言扩展包dplyr——数据清洗和整理
R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报 分类: R Programming(11) ...
- 安装R语言的包的方法
安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA") # 安装 TSA install.packages("TS ...
- python 和 R 语言 中的 range() 函数
1.python 中的 range() 函数生成整数序列,常用于 for 循环的迭代. 示例: 2.R 语言中的 range() 函数返回一个数值向量中的最小值和最大中,常用于求极差. 示例: 按语: ...
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
随机推荐
- 菜鸟教程-python中的包
转载自:http://www.runoob.com/python/python-modules.html 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python ...
- IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值 的解决方法一例
如题 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值 很多网上的文章是设置表的 IDENTITY_INSERT 为 ON EF中还要对模型就行设置 [Column(N ...
- [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast
[源码分析] 从实例和源码入手看 Flink 之广播 Broadcast 0x00 摘要 本文将通过源码分析和实例讲解,带领大家熟悉Flink的广播变量机制. 0x01 业务需求 1. 场景需求 对黑 ...
- python-文本字符串
2019-12-05 14:41:36 一.Unicode 编码问题一直都是文本处理的时候的大难题,python2中的编码异常混乱,本章节主要讨论python3中的编码情况. python3 str的 ...
- 5L-链表导论心法
链表是比数组稍微复杂一点的数据结构,也是两个非常重要与基本的数据结构.如果说数组是纪律严明排列整齐的「正规军」那么链表就是灵活多变的「地下党」. 关注公众号 MageByte,有你想要的精彩内容. 链 ...
- MFC之创建多级动态菜单
一开始以我是这样做的,结果是错误的: 这段代码第一次点击时,会在第6个位置创建MFC菜单,我本以为再次点击,menu->GetSubMenu(5)返回的值就不会为空了,但事实是它返回了NULL, ...
- socket,实现服务器和客户端对话
服务器: #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string>#include<WinSock ...
- algorithm++:一个整数称为是:【幸运数】,如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数
1):一个整数称为是:[幸运数],如果这个整数的各位数字的平方和为1或者反复计算各位数字的平方和为1 例如 19 是个幸运数 coding:java程序实现 import org.junit.Test ...
- eureka和zookeeper注册中心的区别
ookeeper与Eureka区别 CPA理论:一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡. ...
- iOS 性能优化收集
iOS 性能调试 instrument Instrument Instrument之Core Animation工具 避免图层混合 ①.确保控件的opaque属性设置为true,确保backgroun ...