Self-Organizing Maps,简称 SOM

简介: 自组织映射(Self-Organizing Maps,简称 SOM)是一种用于降维和可视化高维数据的机器学习算法。它是一种人工神经网络,通过模拟人脑对信号处理的特点,将高维数据映射到低维空间,同时保持数据的拓扑结构。SOM 常用于聚类、分类和异常检测等任务。

自组织映射(Self-Organizing Maps,简称 SOM)是一种用于降维和可视化高维数据的机器学习算法。它是一种人工神经网络,通过模拟人脑对信号处理的特点,将高维数据映射到低维空间,同时保持数据的拓扑结构。SOM 常用于聚类、分类和异常检测等任务。
SOM 主要包括以下几个步骤:

  1. 初始化:随机设置输入层和输出层的权重,权重向量表示神经元对输入特征的响应。
  2. 训练:对于每个训练样本,计算输入层到输出层的权重更新值,使得相似的样本在输出层靠近彼此。这一过程通过竞争学习(competitive learning)完成,即寻找最优参考矢量集合来对输入模式集合进行分类。
  3. 更新:更新输出层神经元的权重,使得相似的样本在输出层靠近彼此,同时保持拓扑结构不变。
    SOM 的应用场景包括:
  4. 数据降维:将高维数据映射到低维空间,便于可视化和分析。
  5. 聚类:将相似的数据点映射到输出层中的相邻位置,形成聚类。
  6. 分类:通过映射后的低维数据进行分类任务。
  7. 异常检测:将正常数据映射到输出层的某个区域,异常数据则被映射到远离正常数据的区域。
    下面是一个简单的 SOM Demo:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

加载数据集

iris = load_iris()
X = iris.data
y = iris.target

数据预处理

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

创建 SOM 模型

som = somoclu.SOM(n_components=2, learning_rate=0.01, n_iter=1000)

训练模型

som.fit(X_train)

绘制结果

fig, ax = plt.subplots(figsize=(10, 8))
ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap='viridis')
ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap='viridis', alpha=0.5)
ax.set_title('SOM')
plt.show()
CopyCopy

在这个示例中,我们使用了 Iris 数据集,首先对数据进行预处理,然后创建一个 SOM 模型,训练模型并将结果可视化。

目录
相关文章
|
2月前
|
存储 算法 计算机视觉
【博士每天一篇文献-模型】Meta-Learning Based Tasks Similarity Representation for Cross Domain Lifelong Learning
本文提出了一种基于元学习的跨域终身学习框架,通过跨域三元组网络(CDTN)学习任务间的相似性表示,并结合自注意模块与软注意网络(SAN)来增强特征提取和任务权重分配,以提高学习效率并减少对先前知识的遗忘。
44 1
【博士每天一篇文献-模型】Meta-Learning Based Tasks Similarity Representation for Cross Domain Lifelong Learning
|
2月前
|
移动开发 算法 数据挖掘
【博士每天一篇文献-算法】Extending stability through hierarchical clusters in Echo State Networks
本文研究了在回声状态网络(ESN)中引入分层聚类结构对网络稳定性的影响,发现通过调整簇内和簇间的连接性及每个簇的主干单元数量,可以扩展谱半径的稳定范围,从而提高网络的稳定性和性能。
30 2
|
2月前
|
算法 前端开发 数据可视化
【博士每天一篇文献-综述】Brain network communication_ concepts, models and applications
本文综述了脑网络通信的概念、模型和应用,将脑网络通信模型分为扩散过程、参数模型和路由协议三大类,并探讨了这些模型在理解大脑功能、健康和疾病方面的应用,同时提出了未来研究方向和使用Brain Connectivity Toolbox等工具箱进行实际研究的指导。
35 1
【博士每天一篇文献-综述】Brain network communication_ concepts, models and applications
|
2月前
|
机器学习/深度学习 算法 网络架构
【博士每天一篇文献-算法】CircuitNet:A Generic Neural Network to Realize Universal Circuit Motif Modeling
本文介绍了CircuitNet,这是一种新型神经网络,它受到神经回路结构的启发,通过使用电路基元单元(CMUs)来模拟通用电路基元,并通过调整CMU内部权重来实现建模,在多种机器学习任务中展现出优于传统前馈网络的性能。
49 3
|
2月前
|
算法 数据挖掘
【博士每天一篇文-算法】Community Detection and Classification in Hierarchical Stochastic Blockmodels
本文介绍了2015年Lyzinski V, Tang M, Athreya在马里兰大学的研究,提出了一种在分层随机块模型中进行社区检测和分类的综合方法,适用于社交网络分析和神经科学等领域,并通过模拟数据和真实数据的实验验证了该方法的有效性。
13 2
|
2月前
|
存储 机器学习/深度学习 算法
【博士每天一篇论文-综述】An overview of brain-like computing Architecture, applications, and future trends
本文提供了对脑科学计算的介绍,包括神经元模型、神经信息编码方式、类脑芯片技术、脑科学计算的应用领域以及面临的挑战,展望了脑科学计算的未来发展趋势。
34 0
【博士每天一篇论文-综述】An overview of brain-like computing Architecture, applications, and future trends
|
机器学习/深度学习 数据采集 数据可视化
自组织映射(Self-Organizing Map, SOM
自组织映射(Self-Organizing Map, SOM)是一种聚类方法,它属于非线性降维技术。SOM 的主要思想是将原始数据映射到一个较低维的子空间,同时保持数据之间的原始结构和关系。SOM 的特点是可视化程度较高,可以直观地展示数据中的簇结构和关联关系。
238 1
|
机器学习/深度学习 资源调度 算法
自组织图(Self-Organizing Map,SOM)
自组织图(Self-Organizing Map,SOM),也称为Kohonen网络,是一种无监督学习算法,用于将高维输入数据映射到低维的拓扑结构中。它主要用于数据的聚类、可视化和特征提取。
220 1
|
机器学习/深度学习
【论文阅读】(2019)SimGNN:A Neural Network Approach to Fast Graph Similarity Computation
- 图形相似性搜索是最重要的基于图形的应用程序之一,例如查找与查询化合物最相似的化合物。 - 图相似性距离计算,如图编辑距离(GED)和最大公共子图(MCS),是图相似性搜索和许多其他应用程序的核心操作,但实际计算成本很高。 - 受神经网络方法最近成功应用于若干图形应用(如节点或图形分类)的启发,我们提出了一种新的基于神经网络的方法来解决这一经典但具有挑战性的图形问题,**旨在减轻计算负担,同时保持良好的性能**。 - 提出的**方法称为SimGNN**,它结合了两种策略。 - 首先,我们**设计了一个可学习的嵌入函数**,将每个图映射到一个嵌入向量中,从而提供图的全局摘要。**提出了一种新的
250 0
【论文阅读】(2019)SimGNN:A Neural Network Approach to Fast Graph Similarity Computation
|
机器学习/深度学习 算法 数据挖掘