作业三
关文聪 2016060601008
1. 试编程实现累积 BP 算法,在西瓜数据集 2.0 上(用训练数据)训练一个单隐层网络,用验证集
计算出均方误差。要自己实现,不能直接调用现成的库函数。
解答:首先对每个属性通过赋不同值进行划分,先用训练集数据训练一个单隐层神经网络,通过设定
合适的学习率、迭代次数等,训练得到网络的阈值、连接权重等参数,得到的网络再输入测试集数据
计算均方误差。
Matlab 实现代码:
clear
clear all
%对每个属性进行赋值:
%色泽:青绿-1 乌黑-2 浅白-3
%根蒂:蜷缩-1 稍蜷-2 硬挺-3
%敲声:浊响-1 沉闷-2 清脆-3
%纹理:清晰-1 稍糊-2 模糊-3
%脐部:凹陷-1 稍凹-2 平坦-3
%触感:硬滑-1 软粘-2
%好瓜:是-1 否-0
X=[1 1 1 1 1 1;
2 1 2 1 1 1;
2 1 1 1 1 1;
1 2 1 1 2 2;
2 2 1 2 2 2;
1 3 3 1 3 2;
3 2 2 2 1 1;
2 2 1 1 2 2;
3 1 1 3 3 1;
1 1 2 2 2 1;
1 1 2 1 1 1;
3 1 1 1 1 1;
2 2 1 1 2 1;
2 2 2 2 2 1;
3 3 3 3 3 1;
3 1 1 3 3 2;
1 2 1 2 1 1];
Y=[1;1;1;1;1;0;0;0;0;0;1;1;1;0;0;0;0];
trainingX=X(1:10,:);
%取前10个数据为训练集
trainingY=Y(1:10,:);
%取前10个数据为训练集
testX=X(11:17,:);
%取后7个数据为测试集
testY=Y(11:17,:);
%取后7个数据为测试集
[row,column]=size(trainingX);
%row是矩阵的行数,表示总共有多少个训练集。column是矩阵的列
评论0