| 查看: 2373 | 回复: 0 | |||
刀光木虫 (著名写手)
铁虫
|
[求助]
matlab 神经网络3分类代码求助!
|
|
本人现在在做毕业设计,做了一下支持向量机3分类和智能算法优化支持向量机参数,还想做一下SVM分类和神经网络,决策树,KJ近邻等算法的分类准确率的比较,由于时间比较紧急,神经网络以前没接触过,网上找到一个参考程序,语音信号4分类,我的数据是放在一个文本文档里面的210行9列(第一列是类别标签)的数据,要实现我的三分类,代码要怎么改?求大神相助,感激不尽!!! 网上参考代码如下: web browser http://www.ilovematlab.cn/thread-60056-1-1.html %% 清空环境变量 clc clear %% 训练数据预测数据提取及归一化 %下载四类语音信号 load data1 c1 load data2 c2 load data3 c3 load data4 c4 %四个特征信号矩阵合成一个矩阵 data(1:500, =c1(1:500, ;data(501:1000, =c2(1:500, ;data(1001:1500, =c3(1:500, ;data(1501:2000, =c4(1:500, ;%从1到2000间随机排序 k=rand(1,2000); [m,n]=sort(k); %输入输出数据 input=data(:,2:25); output1 =data(:,1); %把输出从1维变成4维 for i=1:2000 switch output1(i) case 1 output(i, =[1 0 0 0];case 2 output(i, =[0 1 0 0];case 3 output(i, =[0 0 1 0];case 4 output(i, =[0 0 0 1];end end %随机提取1500个样本为训练样本,500个样本为预测样本 input_train=input(n(1:1500), ';output_train=output(n(1:1500), ';input_test=input(n(1501:2000), ';output_test=output(n(1501:2000), ';%输入数据归一化 [inputn,inputps]=mapminmax(input_train); %% 网络结构初始化 innum=24; midnum=25; outnum=4; %权值初始化 w1=rands(midnum,innum); b1=rands(midnum,1); w2=rands(midnum,outnum); b2=rands(outnum,1); w2_1=w2;w2_2=w2_1; w1_1=w1;w1_2=w1_1; b1_1=b1;b1_2=b1_1; b2_1=b2;b2_2=b2_1; %学习率 xite=0.1 alfa=0.01; %% 网络训练 for ii=1:10 E(ii)=0; for i=1:1:1500 %% 网络预测输出 x=inputn(:,i); % 隐含层输出 for j=1:1:midnum I(j)=inputn(:,i)'*w1(j, '+b1(j);Iout(j)=1/(1+exp(-I(j))); end % 输出层输出 yn=w2'*Iout'+b2; %% 权值阀值修正 %计算误差 e=output_train(:,i)-yn; E(ii)=E(ii)+sum(abs(e)); %计算权值变化率 dw2=e*Iout; db2=e'; for j=1:1:midnum S=1/(1+exp(-I(j))); FI(j)=S*(1-S); end for k=1:1:innum for j=1:1:midnum dw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4)); db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4)); end end w1=w1_1+xite*dw1'; b1=b1_1+xite*db1'; w2=w2_1+xite*dw2'; b2=b2_1+xite*db2'; w1_2=w1_1;w1_1=w1; w2_2=w2_1;w2_1=w2; b1_2=b1_1;b1_1=b1; b2_2=b2_1;b2_1=b2; end end %% 语音特征信号分类 inputn_test=mapminmax('apply',input_test,inputps); for ii=1:1 for i=1:500%1500 %隐含层输出 for j=1:1:midnum I(j)=inputn_test(:,i)'*w1(j, '+b1(j);Iout(j)=1/(1+exp(-I(j))); end fore(:,i)=w2'*Iout'+b2; end end %% 结果分析 %根据网络输出找出数据属于哪类 for i=1:500 output_fore(i)=find(fore(:,i)==max(fore(:,i))); end %BP网络预测误差 error=output_fore-output1(n(1501:2000))'; %画出预测语音种类和实际语音种类的分类图 figure(1) plot(output_fore,'r') hold on plot(output1(n(1501:2000))','b') legend('预测语音类别','实际语音类别') %画出误差图 figure(2) plot(error) title('BP网络分类误差','fontsize',12) xlabel('语音信号','fontsize',12) ylabel('分类误差','fontsize',12) %print -dtiff -r600 1-4 k=zeros(1,4); %找出判断错误的分类属于哪一类 for i=1:500 if error(i)~=0 [b,c]=max(output_test(:,i)); switch c case 1 k(1)=k(1)+1; case 2 k(2)=k(2)+1; case 3 k(3)=k(3)+1; case 4 k(4)=k(4)+1; end end end %找出每类的个体和 kk=zeros(1,4); for i=1:500 [b,c]=max(output_test(:,i)); switch c case 1 kk(1)=kk(1)+1; case 2 kk(2)=kk(2)+1; case 3 kk(3)=kk(3)+1; case 4 kk(4)=kk(4)+1; end end %正确率 rightridio=(kk-k)./kk web browser http://www.ilovematlab.cn/thread-60056-1-1.html |
» 收录本帖的淘帖专辑推荐
source |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有8人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复

找到一些相关的精华帖子,希望有用哦~
基于MATLAB的BP神经网络
已经有9人回复
求matlab编程代码,求帮助,谢谢!
已经有11人回复
matlab小作业求点建议
已经有6人回复
matlab中BP神经网络问题
已经有6人回复
求在matlab中进行分类的程序
已经有5人回复
神经网络模拟的文章在哪发表好
已经有3人回复
BP神经网络的数据反演求解
已经有8人回复
求助:遗传算法的matlab编程求解资源优化问题
已经有7人回复
求助SURF算法的源代码
已经有3人回复
请教个最简单的BP神经网络matlab仿真
已经有9人回复
人工神经网络BP算法源代码与演示程序
已经有222人回复
利用matlab 编写BP神经网络的代码
已经有9人回复
用matlab来实现分类汇总
已经有3人回复
matlab论文分享(包括神经网络,遗传算法,粒子群算法)
已经有442人回复
Matlab人工神经网络工具箱的位置及使用
已经有5人回复
求助matlab编程
已经有13人回复
【求助】用matlab编程,需要将数据自检分类(高手进来指点下)
已经有5人回复
科研从小木虫开始,人人为我,我为人人












=c1(1:500,
回复此楼

点击这里搜索更多相关资源