Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-05-15
年龄: 38
帖子: 1
声望力: 0 ![]() |
![]()
我要用matlab编一段程序用于神经网络的识别,就是给一些样本数据给你对该程序段进行训练,然后再给一组数据用于测试然后交换数据看这段程序的正确率,有哪位大哥帮忙啊.小弟在此谢谢啦.我把数据给出啊,还有就是我编,有错误的啊,帮忙改正!!!!红色的数值为标签!
0.7991 0.79077 0.85247 0.14303 0.56 0.56833 0.64133 0.070822; 5 0.924 0.84024 0.97764 0.10672 0.64324 0.91676 0.66025 0.072101; 5 1 1 1 0.20556 1 1 1 0.23637; 5 0.0057891 0.0023404 0 0.0074478 0.00023577 0.00042739 0 0.0041842; 2 0.015644 0.0085714 0.020563 0.0072649 0.0014496 0.0012986 0.0013977 0.0015721;2 0.013503 0.011346 0.021074 0 0.0043201 0.0027717 0.0017217 0;2 0.026938 0.0031588 0.0065868 0.12368 0.0065459 0.0041572 0.0042431 0.041063;2 0.12239 0.13281 0.10505 0.18537 0.064849 0.058244 0.051968 0.1003;4 0.15505 0.12107 0.14212 0.29998 0.077923 0.055586 0.073292 0.20449;4 0.014567 0.0077365 0.022655 0.10162 0.0089712 0.0073327 0.014954 0.021146;3 0.014262 0.0074819 0.020299 0.086135 0.0068783 0.0042903 0.0085916 0.015266;3 0.030836 0.015179 0.056716 0.052113 0.0085013 0.010717 0.014099 0.01408;3 0 0 0.0023987 0.062567 0 0 0.0011385 0.021423;3 0.017448 0.01054 0.035615 0.10072 0.0092133 0.0047904 0.013159 0.029627;1 0.0079591 0.0058186 0.0036841 0.033875 0.0011314 0.0020795 0.0029775 0.014785;1 0.023443 0.017684 0.032805 0.02157 0.0053974 0.0021727 0.0037674 0.0083976;1 0.019041 0.019262 0.036789 0.02836 0.0054088 0.006222 0.0078051 0.0057593;1 下面是我编的: %输入向量p和目标容量t clear clc p=[0.7991 0.79077 0.85247 0.14303 0.56 0.56833 0.64133 0.070822; 0.924 0.84024 0.97764 0.10672 0.64324 0.91676 0.66025 0.072101; 1 1 1 0.20556 1 1 1 0.23637; 0.0057891 0.0023404 0 0.0074478 0.00023577 0.00042739 0 0.0041842; 0.015644 0.0085714 0.020563 0.0072649 0.0014496 0.0012986 0.0013977 0.0015721; 0.013503 0.011346 0.021074 0 0.0043201 0.0027717 0.0017217 0; 0.026938 0.0031588 0.0065868 0.12368 0.0065459 0.0041572 0.0042431 0.041063; 0.12239 0.13281 0.10505 0.18537 0.064849 0.058244 0.051968 0.1003; 0.15505 0.12107 0.14212 0.29998 0.077923 0.055586 0.073292 0.20449; 0.014567 0.0077365 0.022655 0.10162 0.0089712 0.0073327 0.014954 0.021146; 0.014262 0.0074819 0.020299 0.086135 0.0068783 0.0042903 0.0085916 0.015266; 0.030836 0.015179 0.056716 0.052113 0.0085013 0.010717 0.014099 0.01408]; p=p'; t=[0 1 0 1;%5 0 1 0 1;%5 0 1 0 1;%5 0 0 1 0;%2 0 0 1 0;%2 0 0 1 0;%2 0 0 1 0;%2 0 1 0 0;%4 0 1 0 0;%4 0 0 1 1;%3 0 0 1 1;%3 0 0 1 1]';%3 %创建5个pnn,spreed不同 for i=1 net=newpnn(p,t,i/10); temp=sim(net,p); end %测试洋率 p_test=[0 0 0.0023987 0.062567 0 0 0.0011385 0.021423; 0.017448 0.01054 0.035615 0.10072 0.0092133 0.0047904 0.013159 0.029627; 0.0079591 0.0058186 0.0036841 0.033875 0.0011314 0.0020795 0.0029775 0.014785; 0.023443 0.017684 0.032805 0.02157 0.0053974 0.0021727 0.0037674 0.0083976; 0.019041 0.019262 0.036789 0.02836 0.0054088 0.006222 0.0078051 0.0057593]'; y_test=sim(net,p_test); yc_test=vec2ind(y_test) 不知道为什么输出的测试结果t都等于3.很郁闷.一开始我以为就是这样的,大不了正确率低,但是我把其中一组训练样本数据和测试数据调换输出的t还都是3,我调换几组都是这样的,所以这段程序是有错的,就不知道错在哪,请各位大侠帮忙啊!谢谢! |
![]() |
![]() |
![]() |
#2 |
版主
注册日期: 2008-12-03
年龄: 41
帖子: 43
声望力: 17 ![]() |
![]()
你没有采用训练结果比较好的网络!
修改了如下,你可参考下: clear clc p=[0.7991 0.79077 0.85247 0.14303 0.56 0.56833 0.64133 0.070822; 0.924 0.84024 0.97764 0.10672 0.64324 0.91676 0.66025 0.072101; 1 1 1 0.20556 1 1 1 0.23637; 0.0057891 0.0023404 0 0.0074478 0.00023577 0.00042739 0 0.0041842; 0.015644 0.0085714 0.020563 0.0072649 0.0014496 0.0012986 0.0013977 0.0015721; 0.013503 0.011346 0.021074 0 0.0043201 0.0027717 0.0017217 0; 0.026938 0.0031588 0.0065868 0.12368 0.0065459 0.0041572 0.0042431 0.041063; 0.12239 0.13281 0.10505 0.18537 0.064849 0.058244 0.051968 0.1003; 0.15505 0.12107 0.14212 0.29998 0.077923 0.055586 0.073292 0.20449; 0.014567 0.0077365 0.022655 0.10162 0.0089712 0.0073327 0.014954 0.021146; 0.014262 0.0074819 0.020299 0.086135 0.0068783 0.0042903 0.0085916 0.015266; 0.030836 0.015179 0.056716 0.052113 0.0085013 0.010717 0.014099 0.01408]; p=p'; % t=[0 1 0 1;%5 % 0 1 0 1;%5 % 0 1 0 1;%5 % 0 0 1 0;%2 % 0 0 1 0;%2 % 0 0 1 0;%2 % 0 0 1 0;%2 % 0 1 0 0;%4 % 0 1 0 0;%4 % 0 0 1 1;%3 % 0 0 1 1;%3 % 0 0 1 1]';%3 t=[5;5;5;2;2;2;2;4;4;3;3;3]; t=ind2vec(t); %创建5个pnn,spreed不同 % for i=1:5 % net=newpnn(p,t,i/10); % temp=sim(net,p); % yc=vec2ind(temp) % end net=newpnn(p,t,1/10); %测试洋率 p_test=[0 0 0.0023987 0.062567 0 0 0.0011385 0.021423; 0.017448 0.01054 0.035615 0.10072 0.0092133 0.0047904 0.013159 0.029627; 0.0079591 0.0058186 0.0036841 0.033875 0.0011314 0.0020795 0.0029775 0.014785; 0.023443 0.017684 0.032805 0.02157 0.0053974 0.0021727 0.0037674 0.0083976; 0.019041 0.019262 0.036789 0.02836 0.0054088 0.006222 0.0078051 0.0057593]'; y_test=sim(net,p_test); yc_test=vec2ind(y_test) 输出结果是:yc_test = 2 3 2 2 2 |
![]() |
![]() |