问题定义
本示例用于说明一个自组织映射神经网络(self-organizing map neural network)如何通过拓扑角度将鸢尾花进行聚类。
每一个鸢尾花采用以下四个特征进行描述:【说明:具体特征含义不是很懂】
-
Sepal length in cm
-
Sepal width in cm
-
Petal length in cm
-
Petal width in cm
这是一个聚类问题,根据样本的相似性进行分组。
【说明:之前的几篇文章中的分类问题,待分类项在问题求解之初就已经明确,如螃蟹的公母(2种)、酒的分类(3种)、字母的分类(26种)、数字的分类(10种)。此问题的特点是待形成的分类无法提前知道。】
数据准备
x = iris_dataset;
数据集维度如下所示,x*包含150组数据,每一组数据为前述的四组特征。
size(x)
ans =
4 150
采用神经网络进行聚类
selforgmap函数是专门设计的用于自组织分类的函数,通过选择足够多的神经元,可以捕获足够多的细节。
采用8×8的六方网格神经元进行聚类。
net = selforgmap([8 8]);
view(net)
网络如下图所示:
训练过程如下:
[net,tr] = train(net,x);
nntraintool
得到如下结果:
迭代终止条件为达到了设定的最大迭代次数。
SOM Topology:SOM拓扑
显示了神经网络的拓扑结构。每一个神经元作为一个分类,邻接的神经元表明是相似的分类。
SOM Neighbor Connections:SOM邻接关系
SOM Neighbor Distances:SOM邻接距离
在欧氏距离范数上显示神经元与邻接神经元的距离。颜色越明亮,则说明距离越近。颜色越深,说明距离越远。
SOM Input Planes:SOM 输入平面
SOM Sample Hits:SOM 采样命中
展示了每类花的个数。
SOM Weight Positions:SOM 权重距离