此示例说明了自组织地图神经网络如何拓扑地将虹膜纳入类别,从而深入了解鲜花类型和进一步分析的有用工具。
在这个例子中,我们尝试构建一个神经网络,将虹膜植入自然类中,使得类似的类被分组在一起。每个虹膜由四个特征描述:
萼片长度厘米
萼片宽度为cm
花瓣长度(厘米)
瓣宽以厘米
这是一个聚类问题的例子,我们想根据样本之间的相似性将样本分组到类中。我们想创建一个神经网络,它不仅为已知的输入创建类定义,而且还将让我们对未知的输入进行相应的分类。
自组织地图(SOM)非常擅长创建分类。此外,该分类保留了与他人最相似的课程的拓扑信息。可以使用任何所需的详细信息创建自组织地图。它们特别适用于许多尺寸的聚类数据,以及复杂的形状和连接的特征空间。它们非常适合聚集虹膜花朵。
这四个花的属性将作为SOM的输入,SOM将把它们映射到一个二维的神经元层。
通过将数据组织到输入矩阵x中,为群集问题的数据设置为SOM。
输入矩阵的每个第i个列将有四个表示在单个花上拍摄的四个测量值的元素。
这里加载了这样一个数据集。
x = iris_dataset;
我们可以查看输入X的大小。
请注意,X有150列。这些代表了15套虹膜花属性。它有四行,四次测量。
尺寸(x)
Ans = 4 150
下一步是创建一个能够学习聚类的神经网络。
selforgmap.通过选择层的每个尺寸的神经元数,创建用于对样本进行分类的自组织地图,以通过选择的神经元数。
在这个例子中,我们将尝试一个由64个神经元组成的二维层,排列在一个8x8的六边形网格中。一般来说,更多的神经元可以实现更多的细节,更多的维度允许建模更复杂的特征空间的拓扑。
输入大小是0,因为网络还没有配置为与我们的输入数据匹配。这将发生在训练网络的时候。
Net = self - forgmap([8 8]); / /使用实例视图(净)
现在网络已准备好优化火车。
神经网络培训工具显示正在接受培训的网络和用于训练它的算法。它还在培训期间显示培训州,并在绿色中突出显示培训的标准。
底部的按钮可在培训期间和之后打开的有用图。算法名称旁边的链接和绘图按钮在这些主题上打开文档。
(净,tr) =火车(净,x);nntraintool
nntraintool ('关闭')
这里,自组织地图用于计算每个训练输入的类向量。这些分类涵盖了已知花朵填充的特征空间,现在可以使用相应地对新的花朵进行分类。网络输出将是64x150矩阵,其中每个第i个列代表每个第一个输入向量的jth群集,其中jth元素中的1个。
这个函数vec2ind.对于每个向量,返回该神经元的索引,输出为1。由64个神经元所代表的64个神经元簇的指数在1到64之间。
y =净(x);cluster_index = vec2ind (y);
Plotsomtop.绘制在8x8六边形网格中定位的64神经元的自组织地图拓扑。每个神经元都学会了代表不同类的花,其邻近神经元通常代表类似的类。
Plotsomtop(网)
plotsomhits计算每个花的类,并显示每个类中的花的数量。具有大量命中的神经元区域表示代表特征空间中相似的高度密集区域的类别。而命中数较少的区域表示特征空间中人口稀少的区域。
Plotsomhits(net,x)
plotsomnc显示神经元邻居连接。邻居通常对类似的样本进行分类。
plotsomnc(净)
plotsomnd显示遥远(在欧几里德距离的距离)每个神经元的班级来自邻国。光明的连接表示输入空间的高度连接区域。虽然黑暗连接表示代表相距远远的特征空间区域的类,但它们之间的少数或没有花。
深色连接的长边界分隔了输入空间的大片区域,这表明边界两边的类代表了具有非常不同特征的花朵。
Plotsomnd(网)
plotsomplanes为四个输入特征中的每一个显示重量平面。它们是将每个输入到8x8六边形网格中的64个神经元中的每一个的重量的可视化。较暗的颜色代表较大的重量。如果两个输入具有相似的重量平面(它们的颜色梯度可以是相同或反向的),则表示它们是高度相关的。
Plotsploupes(网)
这个例子说明了如何设计一种基于它们的四个特征的虹膜花卉簇的神经网络。
探索其他示例和文档,以了解内部网络及其应用程序的更多洞察力。