BP神经网络鸾尾花(Iris)数据改进代码记录。
一、源代码
网上鸾尾花数据的bp代码很多,最初参考的 鸾尾花代码 大多都一致,将数据人工分为两类:测试集、训练集,每一类75组数据。实际测试过程中感觉不好用,问题如下:
1、调用函数太老。newff函数早已被官方舍弃,改用feedforwardnet
1、net = newff(minmax(input),[10 3],{
'logsig' 'purelin' },'traingdx');
2、训练数据和测试数据人为分开存放,不利于大量数据统一操作。
1、
% Step1:读取数据。采用textread函数读取文本数据
[f1, f2, f3, f4, class] = textread('trainData.txt','%f%f%f%f%f',75);
2、
% Step7:读取测试数据,并将数据归一化。
[t1 t2 t3 t4 c] = textread('testData.txt','%f%f%f%f%f',75);
二、改进
改进之处有以下几点:
- 数据可以分为三类 :训练集、验证集、测试集,考虑到150组鸾尾花数据有点少,分类标准为(0.8,0.2,0),验证集与测试集合并占0.2;
1、%将数据分为三类,训练集、验证集、测试集
[trainsample,valsamplet,testsample] =dividerand(all,0.8,0.2,0);
2、%分开训练集的输入和输出数据,取前四行作为输入数据,后三行为输出数据
trainsample_input