1、BP网络的分类程序和回归程序又很多地方不一样,首先分类程序的输出层神经元个数大于1,BP网络的输出层神经元的个数与分类的类别有关,如果分三类:0,1,2,分别对应:[1 0 0],[0 1 0],[0 0 1],则需要三个神经元,每个神经元置输出一个数,三个神经元输出的三个数合为一个向量。
2、神经网络的隐层数目的确定可以通过经验公式确定。
3、有一个很困惑的地方,那就是神经网络最终输出的向量中的数字可能并非整数,例如:预测输出为[0.330232200250695,
0.213211682914311, -0.0285123575067303],如何将其转化为整数0(即类别:[1 0 0])呢,?
output_fore_train(i)=find(fore_train(:,i)==max(fore_train(:,i)))-1
以上这行代码可实现,find(fore_train(:,1)==max(fore_train(:,i)))可以找打向量fore_train(:,i)的最大元素的下标,由于0.3302最大,因此最大元素的下标为1,减去1即为0。