从0开始学习机器学习--Day18--评估模型

news/2024/11/8 9:49:40 标签: 学习

在很多时候,构建并优化完模型并不代表这个问题就被解决了。事实上,很多时候,在第一次优化结束并进行预测时,其与真实值之间的误差都会提醒你这个模型需要继续优化。那么,我们应该怎么优化它呢?

选择更多的样本数据放入训练集是一个方法,毕竟,结果误差可能是因为有意料之外的特征没有考虑到,而纳入更多的数据进入数据集可以帮助计算机在特征分析上有更广阔的视角。但事实上,很多时候选取更大的训练集不会有很好的实际作用。当然了,像人为地去对特征量做增加或减少,增加多项式特征,调整正则化参数的大小也是很有效的方法,选择的方向是重中之重,选择对的方向可以事半功倍,但我们该怎么能知道哪个方向是有效的呢?

评估算法(Evaluating hypothesis)

在选择方向之前,跟去看病一样,医生给药单之前会诊断病因,我们在选择优化方向之前也要评估一下我们的算法,看看是哪里出了问题,这有助于我们选择好的方向去优化。

在之前,我们提到单单根据误差来判断选择的参数是好是坏并不绝对,有可能会因为过拟合的原因导致在将其应用到新样本时不匹配。原先我们通过观察假设函数的图像来判断,但通常来说,对于特征量不止一个的例子,这种做法变得很难甚至不可能做到。

以之前线性回归的房价为例子,假设训练集中有10个样本,我们将其分为两部分:训练集和测试集,一般分割比例为7:3,最好是进行随机选择而不是直接按照前后顺序分割,可以在分割前将数据打乱进行随机分布来达到这个效果。我们在训练并测试线性回归算法时,通常会按照以下步骤进行:

  1. 对训练集进行学习得到参数 \theta,也就是最小化训练误差J(\theta),这里的训练集是进行分割后,用70%的数据量进行学习的。

  2. 将第一步得到的参数带入测试集的代价函数来计算测试的误差

如果换成逻辑回归的分类问题,步骤也是一样的,只不过比起线性回归,逻辑回归在第二步计算的误差可以用另一个错误度量法来表明,区别在于后者是以预测正确和预测错误的情况数量作为基准来计算。

模型选择、训练、验证和测试集(model selection and training/validation/test sets)

假设我们要选择能最好拟合数据的多项式次数,我们该选择哪个次数呢?我们用 dd表示选择的多项式次数,如果我们对次数1-10的假设函数全都做了一边测试,筛选出了一个最好的,假设 d=5,那么我们是不是就能认为应该用5次项的参数来拟合呢?实际上,反思我们这一系列做法,我们通过训练集得到的参数用于测试集,再用测试集得到的误差来判断怎么优化,但实际上在同一组数据上得出的结果再次应用在自己数据本身,这本就会让结果偏好一些,毕竟其特征完美符合原来的数据,但我们真正关心的是其在新样本上的表现。

将数据集分成训练集、验证集和测试集

用计算训练集得出的参数运用到验证集中,测试集也是

还是跟上述说的一样分割数据集,不同的是,我们在数据集多分割出一个交叉验证集,训练集、验证集和测试集比例为6:2:2,步骤也是在计算训练集和测试集中间加入一个计算验证集的误差,然后将计算得到的验证集误差用于评判用哪个次数的多项式。这样做的好处就是避免了将测试集用于判断用哪个函数进行拟合,毕竟用结果验证结果跟作弊并没有什么区别。

视频参考链接:第61讲 诊断偏差与方差_哔哩哔哩_bilibili


http://www.niftyadmin.cn/n/5743704.html

相关文章

R 语言科研配色 --- 第 11 期

在使用 R 语言进行科研绘图时,颜色的选择是一件让人特别纠结的事情。本系列文章介绍了 R 语言科研绘图时常用的一些配色。 为了便于使用,本系列文章介绍的所有配色都已收录到了 sciRcolor 项目中,获取方式: R 语言科研配色工具 …

安装和运行开发微信小程序

下载HBuilder uniapp官网 uni-app官网 微信开发者工具 安装 微信小程序 微信小程序 官网 微信小程序 配置 运行 注意:运行前需要开启服务端口 如果运行看不到效果,设置下基础库选别的版本 配置

Python与Excel交互:pandas库安装及基本用法

在之前的文章中,我们探讨了Python处理Excel文件的基本概念,如工作簿、工作表以及单元格等。现在我们将转向具体的工具介绍——pandas库,它是Python中最常用的数据分析库之一,能够非常便捷地读取、处理和写入Excel文件。 安装pand…

Jenkins声明式Pipeline流水线语法示例

系列文章目录 docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等) docker安装低版本的jenkins-2.346.3,在线安装对应版本插件失败的解决方法 文章目录 系列文章目录jenkins流水线基础1、pipeline1.1、什么是pipeline?1.2、为什么使用pi…

centos7,yum安装mongodb

yum安装mongodb 1.配置MongoDB的yum源2.安装Mongodb3.启动Mongodb4.配置远程访问5.设置mongo密码 1.配置MongoDB的yum源 1.创建yum源文件,输入命令: vim /etc/yum.repos.d/mongodb-org-5.0.repo然后在文件中输入以下内容并保存: [mongodb-…

HashMap底层原理(jdk1.7和jdk1.8对比)?

HashMap 底层结构与实现 HashMap 底层是基于哈希表(Hash Table)实现的,它存储的元素是键值对(key-value)。底层的数据结构是一个数组,数组的每个元素是一个 桶(bucket),…

5G周边知识笔记

这里写目录标题 3GPP 5G标准路径图5G协议规范5G新空口关键指标4G LTE和5G NR新空口技术对比5G新频段FR1FR2 信道带宽上下行解耦新频点规划,信道栅格FR1各频段实际信道栅格和NR-ARFCN范围定义 同步栅格大规模天线阵列新型调制编码技术大规模载波聚合设备到设备直接通…

【GPT使用技巧】用AI出一门课

提问 我想做一个ChatGPT的课程,针对小白,解决从0到1的问题。按照小白的通点,列出大家最关心的问题,做一个课程大纲给我。避免生涩语言,用小白理解和关心的方式展示。 GPT的回答结果 课程大纲:ChatGPT入门…