BP神经网络的数据分类MATLAB源代码_第1页
BP神经网络的数据分类MATLAB源代码_第2页
BP神经网络的数据分类MATLAB源代码_第3页
BP神经网络的数据分类MATLAB源代码_第4页
BP神经网络的数据分类MATLAB源代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、%清除空间clcclear all ; close all ;%训练数据预测数据提取以及归一化%下载四类数据load data1 c1load data2 c2load data3 c3load data4 c4%四个特征信号矩阵合成一个矩阵data ( 1:500 , : ) = data1 ( 1:500 , :) ;data ( 501:1000 , : ) = data2 ( 1:500 , : ) ;data ( 1001:1500 , : ) = data3 ( 1:500 , : ) ;data ( 1501:2000 , : ) = data4 ( 1:500 , : ) ;%

2、从1到2000间的随机排序k = rand ( 1 , 2000 ) ; m , n = sort ( k ) ; %m为数值,n为标号%输入输出数据input = data ( : , 2:25 ) ;output1 = data ( : , 1) ;%把输出从1维变到4维for i = 1 : 1 :2000switch output1( i ) case 1output( i , :) = 1 0 0 0 ;case 2 output( i , :) = 0 1 0 0 ;case 3output( i , :) = 0 0 1 0 ;case 4output( i , :) = 0 0

3、 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 ; %输入层

4、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

5、 = 1:10E( ii ) = 0 ;for i = 1:1:1500 ;%网络预测输出x = inputn ( : , j ) ;%隐含层输出for j = 1:1:midnuml (j) = inputn ( : , i )*w1( j , : ) + b1 (j) ;lout (j) = 1/( 1 +exp( -1(j) ) ) ;end%输出层输出yn = w2 * lout + b2 ;%权值阈值修正%计算权值变化率dw2 = e * lout ;db2 = e ;for j = 1:1:midnum S= 1/(1 + exp ( -l(j) ) ) ;Fl (j) = S *

6、 ( 1- S) ;endfor k = 1:1:innumfor j = 1:1:midnumdw1( k, j ) = Fl (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 ) = Fl (j) * *( e(1)*w2( j,1) + e(2)*w2( j,2) + e(3)*w2( j,3) + e(4)*w2( j,4) ) ;end endw1=w1_1+xite*dw1;b1=b1_1+xite*db1;w2=w2_1+xite*dw2;b2=b2_1+x

7、ite*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;endend %语音特征信号分类input_test = mapminmax ( apply , input_test , inputps );for ii = 1:1for i = 1:500%隐含层输出for j = 1:1:midnuml (j) = input_test ( : , i ) * w1( j , : ) + b1(j) ; lout ( j ) = 1/ ( 1 + exp( -l(j) ) ) ;endfor

8、e( :,i ) = w2 * lout + b2 ;endend%结果分析%根据网络输出找出数据属于哪类for i = 1:500output_fore (i) = find ( fore (:,i) = =max (fore(:,i) ) ) ;end%BP网络预测输出error = output_fore - output1 ( n( 1501:2000) ) ;%画出分类图figure (1)plot ( output_fore , r ) hold onplot (output1( n (1501:2000) , b ) ;legend ( 预测语音类别 , 实际语音类别 )%画出误

9、差图figure (2)plot (error)title ( BP网络分类误差 , fontsize , 12 )xlabel ( 语音信号 , fontsize , 12 )ylabel ( 分类误差 , fontsize , 12 )%找出属于哪种类型for i = 1:500if error (i) = 0 b,c = max (output_test( :,i ) );switch ccase 1k(1) = k(1) + 1 ;case 2k(2) = k(2) + 1 ;case 3k(3) = k(3) + 1 ;case 4k(4) = k(4) + 1 ;endendend%找出每一类的个体总和kk = zeros ( 1,4 )for i = 1:500 b,c = max ( output_test( :,i) ) ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论