训练样本矩阵:
P = [0.1 0.7 0.8 0.8 1.0 0.3 0.0 –0.3 –0.5 –1.5;
1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 –1.5 –1.3];
训练样本对应的分类:
T = [1 1 1 0 0 1 1 1 0 0 ;0 0 0 0 0 1 1 1 1 1];
用MATLAB实现分类,并画出网络模型。
MATLAB代码:
P= [0.1 0.7 0.8 0.8 1.0 0.3 0.0 -0.3 -0.5 -1.5; 1.2 1.8 1.6 0.6 0.8 0.5 0.2 0.8 -1.5 -1.3]; %给定训练样本数据
T= [1 1 1 0 0 1 1 1 0 0 ; 0 0 0 0 0 1 1 1 1 1]; %给定样本数据所对应的类别,用1
和0来表示两种类别
net=newp([-2 2;-1 1],2); %创建一个有两个输入、样本数据的取值范围都在
[-1,1] %之间,并且网络有两个神经元的感知器神经网络
net.trainParam.epochs = 30; %设置网络的最大训练次数为30次
net=train(net,P,T); %使用训练函数对创建的网络进行训练
Y=sim(net,P) %对训练后的网络进行仿真
E1=mae(Y-T) %计算网络的平均绝对误差,表示网络错误分类
Q=[0.7 1.9 0.9 -0.4 0.2 1.3 -1.5 -0.3 -0.7 1.5; 1.2 0.4 -1.6 0.1 1.9 0.0 0.2 0.8 -1.5 0.9]; %检测训练好的神经网络的性能
Y1=sim(net,Q) %对网络进行仿真,仿真输出即为分类的结果
figure; %创建一个新的绘图窗口
plotpv(Q,Y1); %在坐标图中绘制测试数据
plotpc(net.iw{1},net.b{1}) %在坐标图中绘制分类线
运行结果:
Y =
1 1 1 0 0 1 1 1 0 0
0 0 0 0 0 1 1 1 1 1
E1 =0
Y1 =
1 0 0 1 1 0 1 1 0 0
0 0 1 1 0 1 1 1 1 0
训练误差曲线:
训练后的分类线:
网络模型: