首页 机器学习大作业

机器学习大作业

举报
开通vip

机器学习大作业 机器学习大作业 题 目 : 利用BP神经网络解决分类问题 1、 实验目的 利用BP神经网络解决分类问题 2、 UCI数据库 1. 数据库名称:Iris Plants Database(鸢尾植物数据库) 2. 来源:由R.A. Fisher创建,由Michael Marshall捐赠 3. 相关信息 该数据集包含3类,每类包含50个实例。每一个类是指一个类型的鸢尾花。每一个类型与另外两个类型是线性可分的。第一类为山鸢尾数据,第二类为变色鸢尾数据,第三类为维吉尼亚鸢尾...

机器学习大作业
机器学习大作业 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目 : 利用BP神经网络解决分类问题 1、 实验目的 利用BP神经网络解决分类问题 2、 UCI数据库 1. 数据库名称:Iris Plants Database(鸢尾植物数据库) 2. 来源:由R.A. Fisher创建,由Michael Marshall捐赠 3. 相关信息 该数据集包含3类,每类包含50个实例。每一个类是指一个类型的鸢尾花。每一个类型与另外两个类型是线性可分的。第一类为山鸢尾数据,第二类为变色鸢尾数据,第三类为维吉尼亚鸢尾数据 4. 属性信息 (1) 花萼的长度(单位cm) (2) 花萼的宽度(单位cm) (3) 花瓣的长度(单位cm) (4) 花瓣的宽度(单位cm) (5) 鸢尾花的种类( Iris Setosa ;Iris Versicolour ;Iris Virginica) 5. 说明 为了方便matlab编程,我们将鸢尾花的种类用数值进行替换(Iris Setosa=1 ;Iris Versicolour=2 ;Iris Virginica=3),然后经过相应的处理,最终保存为iris_data.mat。 6. 其他 我们选择奇数实例作为训练集样例,偶数实例作为测试集样例。 三、Matlab实现过程 1. 加载UCI数据库 load iris_data.mat 其中P1为训练集的输入矩阵,T1为训练集的输出矩阵;P2为测试集的输入矩阵,T2为测试机的输出矩阵。 2. 设置网络参数 NodeNum = 20; % 隐藏层节点数 TypeNum = 3; % 输出维数 TF1 = 'logsig'; %隐藏层采用Sigmoid传输函数 TF2 = 'purelin'; %输出层采用线性传输函数 net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2}); 图1 神经网络结构 3. 指定训练参数 net.trainFcn = 'trainlm'; % Levenberg-Marquardt算法 net.trainParam.show = 1; % 训练显示间隔 net.trainParam.lr = 0.3; % 学习步长 net.trainParam.epochs = 1000; % 最大训练次数 net.trainParam.goal = 1e-8; % 最小均方误差 net.trainParam.min_grad = 1e-20; % 最小梯度 net.trainParam.time = inf; % 最大训练时间 其中训练参数trainFcn还可以为:'traingd'(梯度下降算法)、'traingdm'(动量梯度下降算法)、'trainrp'( 弹性BP算法)、'trainscg'( Scaled Conjugate Gradient算法)。 4. 训练与测试 net = train(net,PN1,T1); % 训练 Y1 = sim(net,PN1); % 训练样本实际输出 Y2 = sim(net,PN2); % 测试样本实际输出 Y1 = full(compet(Y1)); Y2 = full(compet(Y2)); 5. 结果统计 Result1 = ~sum(abs(T1-Y1)) % 正确分类显示为1 Percent1 = sum(Result1)/length(Result1) % 训练样本正确分类率 Result2 = ~sum(abs(T2-Y2)) % 正确分类显示为1 Percent2 = sum(Result2)/length(Result2) % 测试样本正确分类率 四、结果及其分析 1. 训练集样本分类结果: true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 训练集样本正确分类率:100% 2. 测试集样本分类结果: true true true true true true true true true true true true true true true true true true true true false true true true true true true true true true true true true true true true true true false true true true true true true true true true true true true true true true true true true true false true true true true true true false false true true true true true true true true 测试集样本正确分类率:93.33% 3. 网络训练结果如下图 图2 网络训练结果 从上图可以看出,上述网络仅仅需要152次迭代即可训练完毕,训练时间仅2秒,均方误差可以迅速收敛到10-8数量级。实验结果比较理想。 4. 均方误差收敛曲线(训练集)如下图 图3 均方误差收敛曲线 5. 神经网络训练状态如下图 图4 神经网络训练状态 五、误差分析 1. 修改训练参数trainFcn为'traingd'(梯度下降算法),重新训练网络。最终可以得到: 训练集样本正确分类率为100%;测试集样本正确分类率为96%; 训练结果如下图 图5 修改训练函数后的训练结果 修改训练函数后的均方误差收敛曲线如下图 图6 修改训练函数后的均方误差收敛曲线 显然,修改训练函数为'traingd'(梯度下降算法)后,训练集样本正确分类率变化不明显,均方误差收敛曲线最终仅仅收敛到10-2数量级。 2. 修改隐藏层节点数为40时,重新训练网络,得到如下结果 训练集样本正确分类率为100%;测试集样本正确分类率为97.33%; 训练结果如下图 图7增加隐藏层节点数后的训练结果 增加隐藏层节点数后,均方误差收敛曲线如下图 图8 增加隐藏层节点数后的均方误差收敛曲线 显然,增加隐藏层节点数,可以显著改变均方误差曲线收敛速度,不过对测试集样本正确分类率影响不大。 3. 修改隐藏层传输函数为tansig(正切S函数),重新训练网络,得到如下结果 训练集样本正确分类率为100%;测试集样本正确分类率为85.33%; 图9 修改隐藏层传输函数后的训练结果 图10 修改隐藏层传输函数后的均方误差收敛曲线 显然,修改隐藏层的传输函数,对测试集样本的正确分类率影响明显,对均方误差收敛曲线影响较小。 综上所述,训练函数对测试集样本的正确分类率和均方误差收敛曲线影响都大;隐藏层节点数目对均方误差收敛曲线影响较大,对测试集样本的正确分类率影响较小;隐藏层的传输函数,对测试集样本的正确分类率影响较大,对均方误差收敛曲线影响较小。
本文档为【机器学习大作业】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_336301
暂无简介~
格式:doc
大小:1011KB
软件:Word
页数:7
分类:互联网
上传时间:2013-01-24
浏览量:44