使用Matlab的神经网络工具包,建立单层感知器,解决《统计建模与R语言》(薛毅著)电子版第459 页例8.3建立分类器的问题。
符合二值输出:有春旱为1,无春旱为-1。
可以选择激活函数:a=hardlims(n)
%predict set
P =[24.8,24.1,26.6,23.5,23.5,27.4,22.1,21.6,22.0,22.8,22.7,21.5,22.1,21.4;
-2.0,-2.4,-3.0,-1.9,-2.1,-3.1,-0.7,-1.4,-0.8,-1.6,-1.5,-1.0,-1.2,-1.3];
%target set
T = [1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1];
%定义变量的取值范围
r = [21,25;-4,0];
%定义输出只有一个数字
t = 1;
%建立单层感知器
net = newp(r,t,'hardlims');
%训练
net = train(net,P,T);
%用训练集进行测试
newT = sim(net,P)
newT =
1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
>> nntool
点击new->Data,分别输入Inputs、Targets数据。
Network Type选Perceptron,输入数据选Inputs中的数据,目标输数据选Targets中的数据,传输函数选HARDLIMS(-1,1二值输出)。
查看权值向量、偏置值:
使用训练数据对单层感知器进行测试: