BP神经网络用于分类

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

clear,clc%关闭图形窗口closeall%%读入数据%打开文件fid=fopen('german.data','r');%按格式读取每一行%每行包括21项,包括字符串和数字C=textscan(fid,'%s%d%s%s%d%s%s%d%s%s%d%s%d%s%s%d%s%d%s%s%d\n');%关闭文件fclose(fid);%将字符串转换为整数N=20;%存放整数编码后的数值矩阵C1=zeros(N+1,1000);fori=1:N+1%类别属性ifiscell(C{i})forj=1:1000%eg:'A12'-2ifi10d=textscan(C{i}{j},'%c%c%d');%eg:'A103'-3elsed=textscan(C{i}{j},'%c%c%c%d');endC1(i,j)=d{end};end%数值属性elseC1(i,:)=C{i};endend%%划分训练样本与测试样本%输入向量x=C1(1:N,:);%目标输出y=C1(N+1,:);%正例posx=x(:,y==1);%负例negx=x(:,y==2);%训练样本trainx=[posx(:,1:350),negx(:,1:150)];trainy=[ones(1,350),ones(1,150)*2];%测试样本testx=[posx(:,351:700),negx(:,151:300)];testy=trainy;%%样本归一化%训练样本归一化[trainx,s1]=mapminmax(trainx);%测试样本归一化testx=mapminmax('apply',testx,s1);%%创建网络,训练%创建BP网络net=newff(trainx,trainy);%设置最大训练次数net.trainParam.epochs=1500;%目标误差net.trainParam.goal=1e-13;%显示级别net.trainParam.show=1;%训练net=train(net,trainx,trainy);%%测试y0=net(testx);%y0为浮点数输出。将y0量化为1或2。y00=y0;%以1.5为临界点,小于1.5为1,大于1.5为2y00(y001.5)=1;y00(y001.5)=2;%显示正确率fprintf('正确率:\n');disp(sum(y00==testy)/length(y00));

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功