目录
摘要:
对数据进行聚类是神经网络的另一个绝佳应用。此过程涉及按相似性对数据进行分组。以下是一些可以使用数据聚类技术的场景:
1. 根据人们的购买模式对他们进行分组,从而进行市场细分
2. 通过将数据划分为相关子集来进行数据挖掘
3. 通过对具有相关表达模式的基因进行分组来进行生物信息学分析
针对这一重要的技术,本文使用自组织映射神经网络(Self-OrganizingMapping, SOM)和Matlab自带的数据集进行测试,本文使用的数据有150个样本,每个样本有4个特征,考虑聚类的个数为4,搭建SOM网络并进行训练,使网络对上述数据进行有效的聚类划分,并绘制聚类结果图,本文数据和聚类个数均可自行决定。
代码结构简单,注释详细,附带参考文献和数据,适合初学者学习参考。
背景介绍:
在生物学中,自组织现象是指人脑在许多区域是有组织的,不同区域的作用各不相同,不同的感官输入被传递给不同位置的脑细胞群,这种神经元所具有的特性并不是完全来自生物遗传,而是在很大程度上依赖于后天的学习过程。
基于生物神经元的这一特性,芬兰人Kohonen于1982年提出SOM,即Self-OrganizingMapping(自组织映射网络),或称为Self-OrganizingFeatureMapping(自组织特征映射网络),它是一种无指导训练的神经网络,自组织的过程实际上就是一种无指导的学习。它通过自身训练,自动对输入模式进行聚类。它的拓扑结构图如图1所示
在图1中,网络上层为输出结点(m个),按二维形式排成一个结点矩阵;输入结点处于下方,若输入向量有n个元素,则输入端共有n个结点;所有的输入结点到所有的输出结点都有权值连接。
自组织映射( SOM) 网络的原理:
自组织映射的主要目的就是将任意维数的输入信号模式转变为一维或二维的离散映射,并且以拓扑有序的方式自适应实现这个变换。
SOM网络中,某个输出结点能对某一类模式作出特别的反应以代表该模式类,输出层上相邻的结点能对实际模式分布中相近的模式类作出特别的反映,当某类数据模式输入时,对某一输出结点产生最大刺激(获胜结点),同时对获胜结点周围的一些结点产生较大刺激。在训练的过程中,不断对获胜结点的连接权值作调整,同时对获胜结点的邻域结点的连接权值作调整;随着训练的进行,这个邻域范围不断缩小,直到最后,只对获胜结点进行细微的连接权值调整。具体实现步骤如下:
①连接权值初始化:给从输入结点到输出结点的所有权值赋予较小的随机数。时间计数t=0;
②对网络输入模式:xk=(x1k,x2k,…,x1k);
③计算输入xk与全部输出结点所连的权向量的欧氏距离;
④具有最小欧氏距离的输出结点获胜;⑤调整输出结点所连接的权值以及其邻域内的输出结点所连权值:△Wij=η(t)(xk-Wij)Nj∈NEj*(t)i∈{1,2,…,n}
⑥若还有输入样本数据,则t=t+1,转第②步。
算法中,η(t)是可变学习速度,随时间的增加而减小。也就是说,随着训练过程的进行,权值的调整幅度越来越小;NEj*(t)也随着时间而收缩,最后t足够大时,NEj*(t)={Nj*},即只训练获胜结点本身;η(t)和NEj*(t)有多种不同的形式,在具体训练过程中可以根据不同的要求不同的数据分布进行设计。