• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

是课本的例子,详见《机器学习与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,证明在当前情况下增加一定的隐藏点确实提升了模型的准确性:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言的scale函数发布时间:2022-07-18
下一篇:
R语言时间序列TAR阈值模型分析发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap