统计学习方法中的模型评估与模型选择

news/2024/11/25 9:38:05/

一、训练误差与测试误差

1、预测
统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。

不同的学习方法会给出不同的模型。

当损失函数给定时, 基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就是学习方法评估的标准。

注意:统计学习方法具体采用的损失函数未必是评估时使用的损失函数,不过两者一致比较理想。

2、训练误差

假设学习到的模型是Y=f(x),训练误差是模型Y关于训练数据集的平均损失:


其中N是训练样本容量。

3、测试误差
测试误差是模型Y 关于测试数据集的平均损失:


其中N'是测试样本容量。

3、作用

训练误差的大小, 对判断给定的问题是不是一个容易学习的问题是有意义的, 但本质上不重要。

测试误差反映了学习方法对未知的测试数据集的预测能力, 是学习中的重要概念。

给定两种学习方法, 测试误差小的方法具有更好的预测能力, 是更有效的方法。

4、泛化能力

通常将学习方法对未知数据的预测能力称为泛化能力(generalizationability)

二、过拟合与模型选择

1、模型选择
当假设空间含有不同复杂度(例如不同的参数个数)的模型时, 就要面临模型选择(model selection)的问题。

如果在假设空间中存在“真” 模型, 那么所选择的模型应该逼近真模型。

具体地, 所选择的模型要与真模型的参数个数相同, 所选择的模型的参数向量与真模型的参数向量相近。

2、过拟合(over-fitting)
如果一味追求提高对训练数据的预测能力, 所选模型的复杂度则往往会比真模型更高。 这种现象称为过拟合。

过拟合是指学习时选择的模型所包含的参数过多, 以至出现这一模型对已知数据预测得很好, 但对未知数据预测得很差的现象。

3、过拟合与预测能力
模型选择旨在避免过拟合并提高模型的预测能力。

4、解决方法

首先确定模型的复杂度, 即确定多项式的次数;

然后在给定的模型复杂度下, 按照经验风险最小化的策略, 求解参数, 即多项式的系数。

5、模型选择与过拟合

模型选择时, 不仅要考虑对已知数据的预测能力, 而且还要考虑对未知数据的预测能力。

当模型的复杂度增大时, 训练误差会逐渐减小并趋向于0;而测试误差会先减小, 达到最小值后又增大。 当选择的模型复杂度过大时, 过拟合现象就会发生。

三、正则化

1、正则化(regularization)
模型选择的典型方法是正则化。

正则化是结构风险最小化策略的实现, 是在经验风险上加一个正则化项(regularize!i)或罚项(penalty term)。

正则化项一般是模型复杂度的单调递增函数, 模型越复杂, 正则化值就越大。

比如, 正则化项可以是模型参数向量的范数。

2、正则化形式
正则化一般具有如下形式

其中, 第1项是经验风险, 第2项是正则化项, λ≥0为调整两者之间关系的系数

3、正则化作用

正则化的作用是选择经验风险与模型复杂度同时较小的模型。

4、正则化与贝叶斯估计

从贝叶斯估计的角度来看, 正则化项对应于模型的先验概率。

可以假设复杂的模型有较小的先验概率, 简单的模型有较大的先验概率

四、交叉验证(cross validation)

1、数据集切分
如果给定的样本数据充足, 进行模型选择的一种简单方法是随机地将数据集切分成三部分, 分别为训练集(training set)、 验证集(validation set)和测试集(testset) 。

训练集用来训练模型, 验证集用于模型的选择, 而测试集用于最终对学习方法的评估。

2、交叉验证法

交叉验证的基本想法是重复地使用数据;

把给定的数据进行切分, 将切分的数据集组合为训练集与测试集, 在此基础上反复地进行训练、 测试以及模型选择。
3、.简单交叉验证

首先随机地将已给数据分为两部分, 一部分作为训练集,另一部分作为测试集(例如, 70%的数据为训练集, 30%的数据为测试集);

然后用训练集在各种条件下(例如不同的参数个数)训练模型, 从而得到不同的模型;

在测试集上评价各个模型的测试误差, 选出测试误差最小的模型。
5、S折交叉险证(S-fold cross validation)

首先随机地将已给数据切分为S个互不相交、 大小相同的子集;

然后利用S-1个子集的数据训练模型, 利用余下的子集测试模型;

将这一过程对可能的S种选择重复进行;

最后选出S次评测中平均测试误差最小的模型。
6、留一交叉验证
S折交叉验证的特殊情形是S = N,称为留一交叉验证(leave-one-out crossvalidation),往往在数据缺乏的情况下使用。

这里, N是给定数据集的容量。

五、泛化能力(generalization ability)

1、定义
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力, 是学习方法本质上重要的性质。

2、问题

现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。

但这种评价是依赖于测试数据集的。 因为测试数据集是有限的, 很有可能由此得到的评价结果是不可靠的。

3、泛化误差(generalization error)

如果学到的模型是f, 那么用这个模型对未知数据预测的误差即为泛化误差:

泛化误差反映了学习方法的泛化能力, 如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差, 那么这种方法就更有效。

4、泛化误差上界(generalization error bound) 
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的, 简称为泛化误差上界。

具体来说, 就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。

泛化误差上界通常具有以下性质:

它是样本容量的函数, 当样本容量增加时, 泛化上界趋于0;

它是假设空间容量(capacity)的函数, 假设空间容量越大, 模型就越难学, 泛化误差上界就越大。


http://www.ppmy.cn/news/1549784.html

相关文章

TCP(Transmission Control Protocol,传输控制协议)报文段的首部格式

---------------------------------------------------------------- | 源端口 | 目的端口 | 序号 | 确认号 | | 2字节 | 2字节 | 4字节 | 4字节 | ---------------------------------------------------…

2024年亚太地区数学建模大赛C题-宠物行业及相关行业的发展分析与策略

随着人们消费理念的发展,宠物产业这一新兴产业,由于经济的快速发展和人均收入的不断增长,在全球范围内逐渐发展起来。1992年,中国小动物保护协会成立,1993年,皇家犬犬和火星等国际宠物品牌进入中国市场。随…

11 —— 打包模式的应用

需求:在开发模式下想让webpack使用style-loader进行css样式的处理;让它把css代码内嵌在js中;在生产模式下提取css代码 —— 判断当前运行命令时所在的环境 方案:借助cross-env全局软件包,设置参数区分打包运行环境 …

Nodejs开发仿马蜂窝旅游小程序API接口,服务器端开发,商家后台 Vue3+微信小程序+koa+mongodb+node.js

文章目录 🚀 开启您的互联网创业新篇章一、🔥 课程亮点:二、🌐 适合人群:学习这个课程后,您将会收获到三、旅游后台管理系统1.后台登录界面2.后台首页 四、前台旅游小程序1.首页展示2.目的地界面3.搜索功能…

P1 练习卷(C++4道题)

1.纷繁世界 内存限制:256MB 时间限制:1s 问题描述 这是一个纷繁复杂的世界。 某一天清晨你起床很迟,没有吃上早饭。于是你骑着自行车去超市,但是你又发现商店的工作人员已经重新贴上了价格标签,零食价格都涨了50%。你…

C++ 函数全解

引言 在C编程中,函数是程序的基本构建块之一。函数可以将代码组织成可重用的模块,提高代码的可读性和可维护性。本文将详细介绍C函数的各种特性,包括函数的定义、调用、参数传递、返回值、重载、内联函数、递归函数、函数指针、Lambda 函数、…

Unity中动态生成贴图并保存成png图片实现

实现原理&#xff1a; 要生成长x宽y的贴图&#xff0c;就是生成x*y个像素填充到贴图中&#xff0c;如下图&#xff1a; 如果要改变局部颜色&#xff0c;就是从x1到x2(x1<x2),y1到y2(y1<y2)这个范围做处理&#xff0c; 或者要想做圆形就是计算距某个点&#xff08;x1,y1&…

Vscode进行Java开发环境搭建

Vscode进行Java开发环境搭建 搭建Java开发环境(Windows)1.Jdk安装2.VsCode安装3.Java插件4.安装 Spring 插件5.安装 Mybatis 插件5.安装Maven环境6.Jrebel插件7.IntelliJ IDEA Keybindings8. 收尾 VS Code&#xff08;Visual Studio Code&#xff09;是由微软开发的一款免费、开…