5-SOM神经网络
https://blog.csdn.net/gavinlyy/article/details/8302814
https://blog.csdn.net/u011314012/article/details/51191006
%神经网络:
%随机生成1000个二维向量,作为样本,并绘出其分布
P = rands(2,1000);
plot(P(1,:),P(2,:),'+r')
title('初始随机样本点分布');
xlabel('P(1)');
ylabel('P(2)');
%建立网络,得到初始权值
net=newsom([0 1; 0 1],[5 6]);
w1_init=net.iw{1,1}
%绘出初始权值分布图
figure;
plotsom(w1_init,net.layers{1}.distances)
%分别对不同的步长,训练网络,绘出相应的权值分布图
for i=10:30:100
net.trainParam.epochs=i;
net=train(net,P);
figure;
plotsom(net.iw{1,1},net.layers{1}.distances)
end
%对于训练好的网络,选择特定的输入向量,得到网络的输出结果
p=[0.5;0.3];
a=0;
a = sim(net,p)
%SOM神经网络
clc, clear;
pp = xlsread('E:\a-建模\第六轮\附件4副本.xlsx', 'A1:E4961');
P = pp'; %一横行表示一组属性数据
%生成一个som网络
net = newsom(minmax(P), [6 6]);
%训练次数
net.trainparam.epochs = 1;
%训练网格和查看分类
net=train(net,P);
y = sim(net, P);
yc(7,:) = vec2ind(y);
% hold on
plotsom(net.iw{1,1},net.layers{1}.distances)
yc
% hold off
%%网格作分类的预测
%测试样本输入
t = P;
%sim()来做网格仿真
r = sim(net, t);
%变换函数 将单值向量转变成下标向量
rr = vec2ind(r) %得到每个组数据在那个格子里面
fenlei_4 = rr'
save fenlei_4; %找出分类和对应的值:
ct = zeros(36);
%正常样本类
% zhengchan = [7 8 13 14 15 19 20 21 25 26 27 28 31 32 33 34];
%找出分类点: % dian = []; %存放需要剔除的类别编号
% dian = [1 2 3 7 8 9 13 14 19 20];
dian = [1 2 3 7 8 13 14];
% [zn, zlen] = size(zhengchan);
% cz = 0;
% bj = zeros(1,36); %1表示正常,0表示需要剔除的类别
% for i = 1:zlen
% bj(zhengchan(i)) = 1; %标记正常
% end
% cct = 0;
% for i = 1:36
% if bj(i) == 0 %需要剔除的
% cct = cct + 1;
% dian(cct) = i;
% end
% end %统计
[n,len] = size(dian);
for i = 1:4961
for j = 1:len
if fenlei_4(i) == dian(j)
ct(j) = ct(j) + 1;
bianhao(j, ct(j)) = i;
end
end
end
zongshu = sum(sum(ct)) %总数 %剔除数据:
%需要剔除的标号:
len2 = 4961;
tichu = zeros(1,len2);
for i=1:10 %bianhao的行数
for j = 1:360 %提出类中最多数据个数,bianhao的列数
if bianhao(i,j) > 0
tichu(bianhao(i,j)) = 1;
end
end
end
tichuhouP = []; %存放剔除后的数据
myct = 0;
for i=1:len2
if tichu(i) == 0 %只取正常数据
myct = myct + 1;
tichuhouP(:,myct) = P(:,i);
end
end %画图:
%剔除前:
% plot(P(1,:)', '-r');
hold on;
% plot(P(2,:)', '-b');
plot(P(3,:)', '-g');
% plot(P(4,:)', '-k');
% plot(P(5,:)', '-y');
% plot(P(6,:)', '-c');
% plot(P(7,:)', '-m');
xlabel('序号');
ylabel('测量值');
title('附件四原始数据'); %剔除后:
% plot(tichuhouP(1,:)', '-k');
% plot(tichuhouP(2,:)', '-g');
plot(tichuhouP(3,:)', '-m');
xlabel('序号');
ylabel('测量值');
title('附件四去异常后数据'); yst2 = tichuhouP'; hold on;
for i = 1:5
plot(P(i,:)');
end
xlabel('序号');
ylabel('测量值');
title('一次风机部分检测数据');
5-SOM神经网络的更多相关文章
- R语言实现SOM(自组织映射)模型(三个函数包+代码)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔 ...
- [软件推荐、资料分享]MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分. Matlab ...
- 机器学习及其matlab实现—从基础到实践
第1周 MATLAB入门基础 第2周 MATLAB进阶与提高 第3周 BP神经网络 第4周 RBF.GRNN和PNN神经网络 第5周 竞争神经网络与SOM神经网络 第6周 支持向量机(Support ...
- Self Organizing Maps (SOM): 一种基于神经网络的聚类算法
自组织映射神经网络, 即Self Organizing Maps (SOM), 可以对数据进行无监督学习聚类.它的思想很简单,本质上是一种只有输入层--隐藏层的神经网络.隐藏层中的一个节点代表一个需要 ...
- 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分
前面两篇介绍了SOM的基本概念和算法,第一部分,第二部分,本篇具体展开一下应用中的一些trick设定. SOM设计细节 输出层设计 输出层神经元数量设定和训练集样本的类别数相关,但是实际中我们往往不能 ...
- [Machine Learning & Algorithm] 神经网络基础
目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ...
- matlab神经网络实验
第0节.引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集.Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- SOM自组织映射网络 教程
概述 SOM是芬兰教授Teuvo Kohonen提出的一种神经网络算法,它提供一种将高维数据在低维空间进行表示的方法(通常是一维或二维).缩减向量维度的过程,叫做向量量化(vector quantis ...
随机推荐
- angularJS自定义一个过滤器
ng允许我们自定义指令 下面来我们自己来定义一个过滤指令:filter,返回一个函数的形式 filter(name,callback(){//name:过滤器的名字,callback:匿名函数 ret ...
- 页面加载完之后在执行js代码
把代码写在 window.onload = function () { //js代码 //此处js代码是页面完全加载完之后执行 } 即可. 例: <script type="text/ ...
- c#通过app.manifest使程序 右键 以管理员身份运行
c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集+本站整理 作者:jtydl 点击: 1175 次 微软在Windows Vista开始引入 ...
- 基于INTEL FPGA硬浮点DSP实现卷积运算
概述 卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波.而随着人工智能及深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络.本参考设计主要介绍如何基于INTEL 硬浮点的DS ...
- TCP之二:TCP的三次握手与四次分手
一.TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续.它只是一个超级麻烦的协议,而它又是互联网的基础 ...
- 读取web外的配置文件
一般web项目配置文件都放在classPath下面,读取的时候: 1 import java.io.InputStream; 2 import java.util.Properties; 3 publ ...
- cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
问题:利用Python连接Oracle时报错,完整过程如下 import cx_Oracle conn = cx_Oracle.connect('testma/dingjia@192.168.88.1 ...
- IDA Pro 权威指南学习笔记(十) - 栈帧
栈帧(stack frame)是在程序的运行时栈中分配的内存块,用于特定的函数调用 如果一个函数没有执行则不需要内存,当函数被调用时就需要用到内存 1.传给函数的参数的值需要存储到函数能够找到它们的位 ...
- python开发_自己开发的一个小游戏
先看看游戏的运行效果: 看完游戏的运行情况,你可能对游戏有了一定了了解: #运行游戏后,玩家首先要进行语音的选择,1选择英语,2选择汉语,其他则默认选择英语 #根据玩家选择的语音,进入不同的语音环境 ...
- 26_java之进程|线程|线程池
01进程概念 *A:进程概念 *a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 02线程的概念 *A:线程的概 ...