最近写毕业论文跟SRDP再次用到了Matlab,不得不说在科学计算方面Matlab编程确实很方便。
毕业论文是一个跟BP神经网络有关的题目,老师给的数据很多,为了得出能用的结果程序迭代了6个版本,程序不是很长总结一下用到的方法。可能因为网络的权值是系统随机设置的,每次输出的结果都不一样,所以有些参数修改就是凭感觉,但最终结果还是比较好的,经测试分类正确率能达到0.96。
%分别读取输入数据
p1 = textread('train_1.txt');
p2 = textread('train_2.txt');
p3 = textread('train_3.txt');
p4 = textread('train_4.txt');
p5 = textread('train_5.txt');
p = [p1;p2;p3;p4;p5];
%特征值归一化,可以归到一定范围,默认的是(-1,1),但是我发现不用归一
%化反而正确率更高,不知道为什么
%p = mapminmax(p);
p = p';
%因为分5类,所以每个类的输出值为1,2,3,4,5
t1 = ones(1,length(p1));
t2 = ones(1,length(p2))*2;
t3 = ones(1,length(p3))*3;