【机器学习与R语言】学习笔记02-BP神经网络对混凝土强度进行建模

是课本的例子,详见《机器学习与R语言 [美]Brett Lantz》第7.2章,154页。

准备

下载csv文件,https://github.com/stedy/Machine-Learning-with-R-datasets
在目录下创建R语言的workspace,将concrete.csv放在工作目录下;

下载neuralnet添加包用于网络实现,可以直接通过键入语句下载:
在这里插入图片描述
如果因为网络问题无法下载成功也可以选择手动导入.tgz文件,https://github.com/HazelNuto/RLanguage.git
下载Deriv_3.8.5.tgz和neuralnet_1.44.2.tgz两个文件,然后在RStudio中到Tools -> Install Packages… -> 选择Package Archive File
在这里插入图片描述
在这里插入图片描述


使用’setwd()'设置改变工作目录:
在这里插入图片描述
载入下载的concrete.csv:
在这里插入图片描述
使用标准化函数对数据进行处理:
as.data.frame()表示对已有的常用的类型转换,lapply(list apply)表示对列表的每个组件执行给定的函数,并返回另一个列表;
在这里插入图片描述
观察处理后的数据
在这里插入图片描述
将标准化处理后的数据分成训练集和测试集两部分:
这里的训练集和测试集对标准化数据进行拷贝赋值,[]中第一个数据1:773表示将原列表中1到773行作为新列表的行,第二个数据为空表示使用原列表中的所有列(属性)作为新列表的列;
在这里插入图片描述
观察得到的测试集的数据
在这里插入图片描述
使用neuralnet进行建模:
第一个参数是需要建模的输出变量,第二个参数是用于预测的特征的公式,第三个参数是包含了前面的特征和标签的数据集,第四个参数(可以不写,默认是1)是隐藏层中神经元的数目;在这里插入图片描述
绘制出的模型的图像
如果我们反复的用同样的方式建模,得到的结果是不同的
在这里插入图片描述
基于测试数据集使用compute()函数生成预测:
compute()返回一个带有两个分量的列表:$neurons存储网络中每一层神经元,$net.results存储预测值;这里得到预测值即预测强度后,使用cor()函数进行对预测值和测试集中的强度参数进行相关性计算;
在这里插入图片描述
相关性接近1表示两个变量之间具有很强的线性关系,因此预测得到的数据与测试集间相关性越接近1,表示预测的模型越好。


要生成更复杂的前馈网络模型,在之前的基础上添加更多的隐藏点,即设置参数hidden为隐藏点个数:
在这里插入图片描述
模型变的更加复杂
在这里插入图片描述
重新计算与测试集数据的相关性,已经提升到了0.8,证明在当前情况下增加一定的隐藏点确实提升了模型的准确性:
在这里插入图片描述

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值