《模式识别与智能计算》源码程序-第3章        [↓跳到下载地址]

源码简介

>>x1=xy(:,1:4);y1=xy(:,5);r=size(x1,1);
>>a1=max(x1);b1=min(x1);a2=max(y1);b2=min(y1);
>>x1=0.002+0.996*(x1-b1(ones(r,1),:))./(a1(ones(r,1),:)-b1(ones(r,1),:)); %归一化
>>y1=0.002+0.996*(y1-b2(ones(r,1),:))./(a2(ones(r,1),:)-b2(ones(r,1),:));
>>m=randperm(r);　　　%产生1～23间的随机自然数
>>x_train=x1(m(1),:);y_train=y1(m(1),:);
>>for i=1:r-5
x_train=[x_train;x1(m(i),:)]; y_train=[y_train;y1(m(i),:)]; 　%随机抽取19个样品作为训练集
end
>>x_test=x1(m(r-6),:);y_test=y1(m(r-6),:);　　%其余作为测试集
>>for i=r-5:r
x_test=[x_test;x1(m(i),:)]; y_test=[y_test;y1(m(i),:)];
end
>>net=newff(minmax(x_train'),[40 1],{'logsig','logsig'},'trainlm');　　%设置网络结构
>>net.trainparam.epochs=10000;net.trainparam.lr=0.2;net.trainparam.show=200;%网络训练参数
>>net.trainparam.goal=5e-3;
>>[net,tr]=train(net,x_train',y_train');　%对网络训练
>>y_test1=sim(net,x_test');　　　　　%仿真计算
>>y_error=y_test-y_test1;　　　　　%计算预测误差

>>x=guiyi(mydata);y=[0;0;0;0;0;1;1;1;1;1];
>> y1=netcpn_sim(x1(1:10,:),y,x1(12,:))    %来自乙地
y1 = 1
>> y1=netcpn_sim(x1(1:10,:),y,x1(11,:))　　%来自甲地
y1 = 0

function y=netcpn_sim(x_test,y_test,sample)  %网络仿真函数
[w,v]=netcpn_train(x_test,y_test);     %网络训练函数
[m1,n1]=size(x_test);[m3,n3]=size(y_test);p=10*n1;
out_sa=zeros(1,n3);m=size(sample,1);
for k=1:m
sample(k,:)=sample(k,:)/norm(sample(k,:));
for i=1:p;sc(i)=sample(k,:)*w(i,:)';end
[temp,num]=max(sc);out_sa(1,:)=v(:,num)';out_sam=round(out_sa');  out_same=num2str(out_sam);
for i=1:n3
out_sample(i)=bin2dec(out_same(i)');y(k,i)=out_sample(i);
end
end

function [w,v]=netcpn_train(x_test,y_test)  %训练函数
[m1,n1]=size(x_test);[m3,n3]=size(y_test);
for i=1:m1;x_test(i,:)=x_test(i,:)/norm(x_test(i,:));end
maxiterm=6000;t=1;p=10*n1;w=rands(p,n1)/2+0.5;v=rands(n3,p)/2+0.5;  %p为竞争层单元数      T=y_test;
while t<maxiterm
for j=1:m1  %
for i=1:p;w(i,:)=w(i,:)/norm(w(i,:));s(i)=x_test(j,:)*w(i,:)';end
[temp,num]=max(s);　　　%距离最近的向量
w(num,:)=w(num,:)+0.1*(x_test(j,:)-w(num,:));　　%修正
w(num,:)=w(num,:)/norm(w(num,:));
v(:,num)=v(:,num)+0.1*(y_test(j,:)'-T(j,:)');
T(j,:)=v(:,num)';
end
t=t+1;
end

>>p=mydata(:,2:end);p=guiyi(p);  %自编的归一化函数
>>t=mydata(:,1)';
>> y=bpselect_num(p,t);      %变量筛选函数
y =30.7223    0.0005   28.7262   28.5135   -0.0006  -28.7257    0.0179  -76.7274

function MIV=bpselect_num(p,t)   %变量筛选
nntwarn off;　　　%为了更好地运行各种神经网络函数
net=newff(minmax(p'),[50,1],{'tansig','purelin'},'traingdm');   %设计BP网络
net.trainParam.show=NaN;net.trainParam.lr=0.05;net.trainParam.epochs=2000;　%网络参数
net=train(net,p',t);　　　%网络训练
[m,n]=size(p);temp=p;
for i=1:n    %每个变量值增加10%后的矩阵仿真结果
pX=p(:,i);pa=pX*1.1;p(:,i)=pa;b1(i,:)=sim(net,p');p=temp;
end
for i=1:n   %每个变量减少10%后的矩阵仿真结果
pX=p(i,:);pa=pX*0.9;p(i,:)=pa;b2(i,:)=sim(net,p');p=temp;
end
MIV=mean((b1-b2),2)';

本站长期招聘程序代写高手，欢迎加入华南地区matlab团队

 想创业却没有经验的人 无论你是否有过网上开店的经验，都可以随时联系在线客服，建立自己独立的网站 想开网店却不知道如何入手 淘宝创业成本低而且风险小，如果想开淘宝店的朋友可以联系在线客服。 想兼职创业，却不擅长交际与服务的人 在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格，这样你网赚的条件全具备了。每天3小时管理、推广、收钱。 缺乏能快速赢利型产品的人 导入多种最新流行营销软件+网赚教程，让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点，与本站立场无关！

评论摘要(共 0 条，得分 0 分，平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开，随时随地浏览!
* MATLAB软件如用于商业用途，请购买正版!
* 如果您发现下载链接错误，请点击报告错误谢谢！
* 站内提供的所有软件包含破解及注册码均是由网上搜集，若侵犯了你的版权利益，敬请来信通知我们!