模型的评估方法-2| 学习笔记

简介: 快速学习模型的评估方法-2。

开发者学堂课程【机器学习算法 :模型的评估方法-2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7176


模型的评估方法-2

 

内容介绍

一、留一法 ( Leave-One-Out Loo)

二、自助法(Bootstrapping鞋带,来自于电影)

三、几种方法的适用场景

四、几种方法的选择

 

一、留一法 ( Leave-One-Out Loo)

是 k 折交叉验证的特殊形式,将数据集分成两个,其中一个数据集记录条数为1,作为测试集使用,其余记录作为训练集训练横型。训练出的模型和使用全部数据集训练得到的模型接近,其评估结果比较准确。缺点是当数据集较大时,训练次数和计算规模较大,浪费数据资源。

图片4.png

 

二、自助法(Bootstrapping 鞋带,来自于电影)

是一种产生样本的抽样方法,其实质是有放回的随机抽样。即从已知数据集中随机抽取一条记录,然后将该记录放入测试集同时放回原数据集,继续下一次抽样,直到测试集中的数据条数满足要求。

假设已知数据集 D 含有 n 条,采用自助法得到一个记录条数为 n 的测试集 T。D 中的一些数据会在 T 中出现多次,还有一些数据不会出现。

估算一下经过 n 次有放回采样后,大概多少记录未被选中:

某一次具体的采样,一条数据被选中的概率为 1 /n,未被选中的概率为:1-1/n

连续 n 次采样均未被选中的概率为:(1-1/n)n,取极限:图片5.png

通过有放回的抽样获得的训练集去训练模型,不在训练集中的数据( 总数量的1/3 强)去用于测试,这样的测试结果被称作包外估计 ( Out-of Bag Estimate, OOB)

(有一部分不会选入训练集,就把它拿到测试集来做测试,就相当于通过这种有放回的采集,将数据分为俩个部分,一部分是训练集,剩下的作为测试集)

 

三、几种方法的适用场景

1、留出法

(1)实现简单、方便,在一定程度上能评估泛化误差

(将已知数据分为两份,大的一份做训练模型,小的一份做测试模型)

(2)测试集和训练集分开,缓解了过拟合

(测试集和训练集要是相同,就没有意义了,需要互斥)

(3)缺点:一次划分,评估结果偶然性大

(4)数据被拆分后,用于训练、测试的数据更少了

2、交叉验证法(留一法):

(1)k可以根据实际情况设置,充分利用了所有样本

(2)多次划分,评估结果相对稳定

(3)计算比较繁琐,需要进行k 次训练和评估,特别是留一法

3、自助法:

(1)样本量较小时可以通过自助法产生多个自助样本集,且有约36.8%的测试样本

(2)对于总体的理论分布没有要求

(3)无放回抽样引入了额外的偏差(比如说训练集会有一些重复的记录,相当于把重复记录的权重提升了)

 

四、几种方法的选择

1、已知数据集数量充足时,通常采用留出法或者k折交叉验证法

2、对于已知数据集较小且难以有效划分训练集/测试集的时候,采用自助法

3、对于已知数据集较小且可以有效划分训练集/测试集的时候,采用留一法

(实际上还有很多方法,基于这些办法也有一些衍生的办法,进行一些交叉,或者自定义,但是一定要了解这几个核心的办法)

相关文章
|
2月前
|
人工智能 移动开发 小程序
市面上的小程序平台对比
市面上的小程序平台对比
771 128
|
Java Apache Maven
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
1653 0
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
人工智能 算法 安全
AI降噪耳机,可在嘈杂人群中单独通话,看一眼锁定目标
【6月更文挑战第15天】AI降噪耳机结合AI算法与麦克风阵列,能在嘈杂环境中确保清晰通话,提升沟通效率和隐私保护。尽管价格高、降噪效果有限且有安全隐患,它们为用户带来便利的同时,也引发了对隐私和安全的关注。
668 1
|
前端开发 C++ iOS开发
几款主流好用的markdown编辑器介绍
几款主流好用的markdown编辑器介绍
976 1
|
存储 数据管理 数据安全/隐私保护
Vuex 和 LocalStorage 实现数据共享
【10月更文挑战第8天】
199 1
|
算法 数据可视化 Python
使用 Python 模拟蒙特卡洛实验
使用 Python 模拟蒙特卡洛实验
437 1
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
865 7
|
机器学习/深度学习 人工智能 自然语言处理
AI在创造还是毁掉音乐?——探索人工智能对音乐创作的影响
在当今数字化时代,人工智能(AI)技术的快速发展不仅改变了我们的生活方式和工作方式,也在音乐创作领域引发了广泛的讨论和热议。最近,随着各类音乐生成AI模型的涌现,人们开始探讨AI在音乐创作中的作用,以及它对传统音乐产业的潜在影响。
1052 5
|
搜索推荐 BI API
ZoomEye-python工具使用详解(一)
ZoomEye-python工具使用详解(一)
375 0