自组织映射 (Self-organizing map, SOM)

SOM是一种无监督的神经网络模型,通过竞争学习保持输入数据的拓扑结构,常用于高维数据的降维和可视化。MiniSom是Python中的一个实现库,可用于训练和应用SOM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 算法原理

自组织映射 (Self-organizing map, SOM) 通过学习输入空间中的数据,生成一个低维、离散的映射(Map),从某种程度上也可看成一种降维算法。

SOM是一种无监督的人工神经网络。不同于一般神经网络基于损失函数的反向传递来训练,它运用竞争学习 (competitive learning) 策略,依靠神经元之间互相竞争逐步优化网络。使用近邻关系函数 (neighborhood function) 来维持输入空间的拓扑结构。

维持输入空间的拓扑结构:意味着什么 二维映射包含了数据点之间的相对距离。输入空间中相邻的样本会被映射到相邻的输出神经元。

由于基于无监督学习,这意味着训练阶段不需要人工介入(即不需要样本标签),我们可以在不知道类别的情况下,对数据进行聚类;可以识别出针对某问题具有内在关联的特征。
特点归纳:

  • 神经网络,竞争学习策略
  • 无监督学习,不需要额外标签
  • 非常适合高维数据的可视化,能够维持输入空间的拓扑结构
  • 具有很高的泛化能力,它甚至能识别之前从没遇过的输入样本

2. MiniSom库

2.1. 安装

pip install minisom

2.2. 使用

from minisom import MiniSom

data = [[ 0.80 , 0.55 , 0.22 , 0.03 ],
[ 0.82 , 0.50 , 0.23 , 0.03 ],
[ 0.80 , 0.54 , 0.22 , 0.03 ],
[ 0.80 , 0.53 , 0.26 , 0.03 ],
[ 0.79 , 0.56 , 0.22 , 0.03 ],
[ 0.75 , 0.60 , 0.25 , 0.03 ],
[ 0.77 , 0.59 , 0.22 , 0.03 ]]
  
som = MiniSom(6, 6, 4, sigma=0.3, learning_rate=0.5) # initialization of 6x6 SOM
som.train(data, 100) # trains the SOM with 100 iterations

参考文献

自组织映射(Self-organizing map, SOM) - 知乎

自组织映射(SOM)聚类分析Python第三方库实现<minisom>_府学路18号车神的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值