[关闭]
@devilogic 2016-08-10T04:59:43.000000Z 字数 1030 阅读 2093

通过自组织映射神经网络进行聚类数据(基础应用三)

matlab


聚类数据也是神经网络的一项应用。它会将数据按照相似性进行分组。如果你想:
* 通过分组人们的购买模式来做市场规划
* 数据挖掘通过分区数据到相关的子集
* 在生物信息学上通过相对的表示模式对基因进行分类

假设你想将花进行分类依赖花瓣的长度,宽度。花萼的长度与宽度,你有150个4种测量特征样本。

定义问题

定义聚类数据问题,简单的设置一个列的输入矩阵(参见理解神经网络工具箱的数据结构理解数据输入格式)。举一个实际的例子,你输入以下这样的向量。

  1. inputs = [7 0 6 2 6 5 6 1 0 1; 6 2 5 0 7 5 5 1 2 2]

对于聚类问题,自组织映射神经网络(SOM)是最常用的,因为当网络训练完毕之后,有许多可视化工具能分析聚类的结果。这个网络仅有一层,通过组织神经元在一个网格。(详细请参见使用自组织映射神经网络进行聚类算法)当创建一个网络,你需要指定网格的行列数。对于SOM训练,权值与每个移动到聚类输入向量中心的神经元关联。神经元应该被调整到接近输入空间其余的位置上,因此,设想一个高维度的输入空间在两维的网络拓扑中。为了研究SOM的可视化工具。可以使用Plots面板。

脚本

  1. % Solve a Clustering Problem with a Self-Organizing Map
  2. % Script generated by NCTOOL
  3. %
  4. % This script assumes these variables are defined:
  5. %
  6. % simpleclusterInputs - input data.
  7. inputs = simpleclusterInputs;
  8. % 创建自映射网络
  9. dimension1 = 10; % 网格的行
  10. dimension2 = 10; % 网格的列
  11. net = selforgmap([dimension1 dimension2]);
  12. % 训练网络
  13. [net,tr] = train(net,inputs);
  14. % 测试网络
  15. outputs = net(inputs);
  16. % 浏览网络
  17. view(net)
  18. % 绘图
  19. % Uncomment these lines to enable various plots.
  20. % figure, plotsomtop(net)
  21. % figure, plotsomnc(net)
  22. % figure, plotsomnd(net)
  23. % figure, plotsomplanes(net)
  24. % figure, plotsomhits(net,inputs)
  25. % figure, plotsompos(net,inputs)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注