R语言深度学习-6-模型优化与调试

本教程参考《RDeepLearningEssential》

这是本专栏的最后一篇文章,一路走来,大家应该都可以独立的建立一个自己的神经网络进行特征学习和预测了吧!


6.1 缺失值处理

 在我们使用大量数据进行建模的时候,缺失值对模型表现的影响非常大:

(1)对模型训练的影响:在训练神经网络时,如果输入数据中存在缺失值,那么这些值可能不会被模型正确地学习或解释。因为神经网络通常要求输入数据是完整且一致的,缺失值可能导致模型无法学习到数据的完整分布,从而影响其预测能力。此外,一些优化算法(如梯度下降)在计算过程中可能会遇到不稳定的数值,进而影响到模型参数更新的准确性。
(2)对模型评估的影响:在模型评估阶段,缺失值同样会带来问题。例如,在评估模型性能时使用诸如准确率等指标时,若测试集存在缺失值,则可能导致评估结果的偏差,使得模型的实际性能被高估或低估。
(3)对模型泛化能力的影响:缺失值的存在还可能降低模型的泛化能力,即模型在新数据上的应用效果。这是因为在实际应用中,新数据也可能会出现缺失值,如果模型没有很好地处理这种情况,那么其在实际应用中的表现可能会受到影响。

6.1.1 gridExtra和mgcv包的安装

install.packages('gridExtra')
install.packages('mgcv')

`gridExtra`是一个用于扩展`grid`图形系统的包,这个包特别适用于创建复杂的布局和组合多个图形对象。`mgcv`是“混合模型广义可加模型”的缩写,它是专门设计用来拟合广义可加模型(GAMs)及其扩展形式的包。广义可加模型是一种统计模型,它允许响应变量与一个或多个预测变量之间存在非线性关系。通过使用平滑函数,`mgcv`能够灵活地建模这种非线性关系,并且可以处理分类变量和连续变量的交互作用。这使得`mgcv`非常适合于那些数据中存在复杂关系的情况,比如生态学、流行病学和经济学等领域的研究。

6.1.2 使用H2O处理缺失数据

library('h2o')
cl <- h2o.init(max_mem_size = "20G",nthreads = 10,ip = "127.0.0.1", port = 54321)options(width = 70, digits = 2)

我们使用鸢尾花iris数据集进行演示,H2O包里有处理缺失值的函数,比如使用均值、中位数或者众数进行填补。 我们这里使用随机森林的机器学习方法来进行填补:

## random forest imputation
d.imputed <- d
## prediction model
for (v in missing.cols) {tmp.m <- h2o.randomForest(x = setdiff(colnames(h2o.dmiss), v),y = v,training_frame = h2o.dmiss)yhat <- as.data.frame(h2o.predict(tmp.m, newdata = h2o.dmiss))d.imputed[[v]] <- ifelse(is.na(d.imputed[[v]]), yhat$predict, d.imputed[[v]])
}

 我们通过散点图看一下效果:

一般来说,我们会发现用均值作为补充,会对离群值或者整体数据的极值产生影响。

6.2 低准确度模型解决 

 我们在建模过程中,非常有挑战性,也是最重要的,是选取超参数,如上之前教程中提到的:R语言深度学习-4-识别异常数据(无监督学习/自动编码器)-CSDN博客

而在实际运用中,我们很少能获得一个全局最优,我们来看一些方法:

6.2.1 网格搜索

我们除了使用手动试错的方法外,我们还可以使用网格搜索或者随机搜索:我们使用expand.grid生成随机的组合。

expand.grid(layers = c(1, 2, 4),epochs = c(50, 100),l1 = c(.001, .01, .05))

但是如果我们选取的超参数有十多个,那就是n的十多次方,如果分别训练的化,可能需要一两天才能完成。

6.2.2 随机搜索 

我们也可以使用随机搜索的方式进行超参数选择,下列代码画出了两个 beta 分布密度。通过在这些分布中抽样,我们能确保搜索,尽管是随机的,重点在于输入变量小比例的丢弃,而且在 0~0.50 的范围内对隐藏神经元来说,有一种趋势是从更接近 0.50 的值当中过抽样(oversample)

par(mfrow = c(2, 1))
plot(seq(0, .5, by = .001),dbeta(seq(0, .5, by = .001), 1, 12),type = "l", xlab = "x", ylab = "Density",main = "Density of a beta(1, 12)")
plot(seq(0, 1, by = .001)/2,dbeta(seq(0, 1, by = .001), 1.5, 1),type = "l", xlab = "x", ylab = "Density",main = "Density of a beta(1.5, 1) / 2")

 6.3 小结

原书中有更深入的讲解与例子,但是我觉得确实非常的难,不如在自己运用的过程中去体会运用。六篇教程学习完,应该是能轻松建立一个神经网络进行预测训练,如果还有其他问题,欢迎大家一起交流讨论,

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定位及解决OOM

一、定义 内存溢出&#xff1a;OutOfMemoryError&#xff0c;是指因内存不够&#xff0c;导致操作新对象没有剩余空间。会导致频繁fullgc出现STW从而导致性能下降。 内存泄漏&#xff1a;指用malloc或new申请了一块内存&#xff0c;但是没有通过free或delete将内存释放&#…

30.HarmonyOS App(JAVA)鸿蒙系统app多线程任务分发器

HarmonyOS App(JAVA)多线程任务分发器 打印时间&#xff0c;记录到编辑框textfield信息显示 同步分发&#xff0c;异步分发&#xff0c;异步延迟分发&#xff0c;分组任务分发&#xff0c;屏蔽任务分发&#xff0c;多次任务分发 参考代码注释 场景介绍 如果应用的业务逻辑比…

LLM之Alpaca:深入了解大模型Alpaca

博客首发地址&#xff1a;LLM之Alpaca&#xff1a;深入了解大模型Alpaca - 知乎 官方链接&#xff1a;https://crfm.stanford.edu/2023/03/13/alpaca.html官方Git&#xff1a;tatsu-lab/stanford_alpaca官方模型&#xff1a;https://huggingface.co/tatsu-lab/alpaca-7b-wdiff…

React高阶组件详解

文章目录 高阶组件是什么&#xff1f;认识高阶组件编写高阶组件高阶组件实践推荐文章 高阶组件是什么&#xff1f; 高阶组件&#xff08;HOC&#xff09;是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分&#xff0c;它是一种基于 React 的组合特性…

Android Studio 打包 Maker MV apk 详细步骤

一.使用RPG Make MV 部署项目&#xff0c;获取项目文件夹 这步基本都不会有问题&#xff1a; 二.安装Android Studio 安装过程参考教材就行了&#xff1a; https://blog.csdn.net/m0_62491877/article/details/126832118 但是有的版本面板没有Android的选项&#xff08;勾…

python --阿里云(智能媒体管理/视频点播)

智能媒体服务获取token # alibabacloud_imm202009304.1.0 class Sample(object):智能媒体服务def __init__(self):self.access_key 111self.key_secret 222def weboffice_permission(self):return imm_20200930_models.WebofficePermission(renameFalse,readonlyTrue,histor…

在Linux/Ubuntu/Debian上创建指向文件夹或文件的快捷方式

使用带有“-s”选项的“ln”命令&#xff1a; ln -s 命令创建一个符号链接。 这是完整的语法&#xff1a; ln -s <target> <link_name><target>&#xff1a;这是你要链接到的文件或目录的路径。<link_name>&#xff1a;这是你要创建的符号链接的名称…

关于安卓文件夹压缩和解压(一)zip处理

背景 把文件压里头 把文件夹压里头 相关参考 我之前的一个文章&#xff0c;文件递归复制思路link 思路 如果把单单一个文件压缩&#xff0c;那么恭喜你&#xff0c;不用看这个文章了&#xff0c;因为百度一搜就有不错的答案。 本文主要介绍&#xff0c;如果把整个文件夹压…

描述CSS选择器及其优先级规则

一․描述一下CSS选择器及其优先级规则 CSS选择器是用于指定CSS样式应应用于哪些HTML元素的模式。通过选择器&#xff0c;我们可以定位到特定的元素或元素组&#xff0c;并为它们应用样式。CSS选择器有多种类型&#xff0c;每种类型都有其特定的用途和语法。 以下是几种常见的…

Python数据分析与可视化笔记一 机器学习概述

机器学习是一种从数据当中发现复杂规律&#xff0c;并且利用规律对未来时刻、未知状况进行预测和判定的方法&#xff0c;是当下被认为最有可能实现人工智能的方法之一。 所有数据的集合称为数据集(dataset)&#xff0c;其中每条记录是关于一个事件或对象的描述&#xff0c;称为…

龙芯新世界系统(安同AOCS OS)安装Cinnamon桌面最新版6.0.4

龙芯的新世界系统安同AOCS OS是十分优秀的操作系统&#xff0c;处于纯社区方式运行&#xff0c;她的各组件更新得很及时&#xff0c;很多组件都处于最新的状态&#xff0c;给我们安装使用最新的开源软件提供了很好的基础。由于本人一直使用Cinnamon桌面环境&#xff0c;各方面都…

LM2903BIDR比较器芯片中文资料规格书PDF数据手册参数引脚图功能封装尺寸图

产品概述&#xff1a; M393B 和 LM2903B 器件是业界通用 LM393 和 LM2903 比较器系列的下一代版本。下一代 B 版本比较器具有更低的失调电压、更高的电源电压能力、更低的电源电流、更低的输入偏置电流和更低的传播延迟&#xff0c;并通过专用 ESD 钳位提高了 2kV ESD 性能和输…

【CenterFusion】模型的创建、导入、保存CenterFusion/src/lib/model/model.py

文件内容&#xff1a;CenterFusion/src/lib/model/model.py 文件作用&#xff1a;模型的创建、导入、保存 model.py 具体内容如下&#xff1a; from __future__ import absolute_import from __future__ import division from __future__ import print_functionimport torchv…

【教学类-44-07】20240318 0-9数字描字帖 A4横版整页(宋体、黑体、文鼎虚线体、print dashed 德彪行书行楷)

背景需求: 前文制作了三种字体的A4横版数字描字帖 【教学类-44-06】20240318 0-9数字描字帖 A4横版整页&#xff08;宋体、黑体、文鼎虚线体&#xff09;-CSDN博客【教学类-44-06】20240318 0-9数字描字帖 A4横版整页&#xff08;宋体、黑体、文鼎虚线体&#xff09;https://…

将VSCode添加至右键的菜单栏

懒得bb&#xff0c;直接转发别人的博客&#xff0c;链接 但是我在win11上面弄了之后&#xff0c;除了文件夹其他格式都生效了&#xff0c;只需要在这个路径HKEY_CLASSES_ROOT\Directory\shell重复上面的操作&#xff0c;看Directory就知道是文件夹

担忧关于ChatGPT潜在风险的声音正在增强,但暂停人工智能是否明智?

深度学习算法的风险与挑战&#xff1a;ChatGPT的潜在风险引发关注 引言 随着人工智能技术的快速发展&#xff0c;特别是像ChatGPT这样的大型语言模型的广泛应用&#xff0c;人们对其潜在风险的关注也在不断升温。本文将探讨这些风险&#xff0c;并分析是否应该暂停AI的发展。…

事务、并发、锁机制的实现

配置全局事务 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: mydb,USER:root,PASSWORD:pass,HOST:127.0.0.1,PORT:3306,ATOMIC_REQUESTS: True, # 全局开启事务&#xff0c;绑定的是http请求响应整个过程# (non_atomic_requests可局部实现不让事务控制)} } …

stable diffusion webui 搭建和初步使用

官方repo: GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI 关于stable-diffusion的介绍&#xff1a;Stable Diffusion&#xff5c;图解稳定扩散原理 - 知乎 一、环境搭建和启动 准备在容器里面搞一下 以 ubuntu22.04 为基础镜像&#xff0c;新建…

UnityShader(十六)凹凸映射

前言&#xff1a; 纹理的一种常见应用就是凹凸映射&#xff08;bump mapping&#xff09;。凹凸映射目的就是用一张纹理图来修改模型表面的法线&#xff0c;让模型看起来更加细节&#xff0c;这种方法不会改变模型原本的顶点位置&#xff08;也就是不会修改模型的形状&#xf…

数据结构之顺序存储-顺序表的基本操作c/c++(创建、初始化、赋值、插入、删除、查询、替换、输出)

学习参考博文&#xff1a;http://t.csdnimg.cn/Qi8DD 学习总结&#xff0c;同时更正原博主在顺序表中插入元素的错误。 数据结构顺序表——基本代码实现&#xff08;使用工具&#xff1a;VS2022&#xff09;&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdi…