机器学习3

news2024/10/23 7:04:13

1. 比较检验

比较检验用于比较多个模型或算法的性能差异。通过计算均值、方差等统计量,我们可以判断这些模型之间的差异是否具有统计显著性。常见的比较检验方法包括 假设检验t 检验Friedman 检验Nemenyi 检验 等。


1.1 假设检验

假设检验是一种用于验证数据是否符合某一假设的统计方法。常用于评估模型的错误率是否符合预期,主要包括二项式检验、t 检验等。


1.1.1 二项式检验

二项式检验是一种用于二分类问题的统计方法,常用于分析分类模型的错误率是否显著偏离预期。假设我们期望模型的泛化错误率为 ( e ),通过二项式检验,我们可以计算模型的测试错误率与期望泛化错误率之间的关系。

1.1.1.1 正确的公式

二项式检验公式为:

[
P(e_i = e) = \binom{m}{m \cdot e_i} e^{m \cdot e_i} (1 - e)^{m(1 - e_i)}
]

公式解析

  • ( P(e_i = e) ):表示模型的泛化错误率 ( e ) 恰好等于测试错误率 ( e_i ) 的概率。
  • ( \binom{m}{m \cdot e_i} ):表示 ( m ) 次试验中 ( m \cdot e_i ) 次错误发生的不同排列方式。
  • ( e^{m \cdot e_i} ):模型的泛化错误率 ( e ) 出现 ( m \cdot e_i ) 次错误的概率。
  • ( (1 - e)^{m(1 - e_i)} ):模型正确分类的概率。
1.1.1.2 使用示例

问题:假设我们有一个模型,测试错误率 ( e_i = 0.4 )(40%),期望的泛化错误率 ( e = 0.3 )(30%)。我们进行了10次试验,想知道模型的泛化错误率为30%的情况下,测试错误率为40%的概率是多少?

解法

  1. 组合数的计算
    [
    \binom{10}{4} = 210
    ]
  2. 成功和失败的概率
    [
    e^{m \cdot e_i} = 0.3^4 = 0.0081, \quad (1 - e)^{6} = 0.7^6 = 0.1176
    ]
  3. 组合结果
    [
    P(e_i = e) = 210 \times 0.0081 \times 0.1176 = 0.2003
    ]
    结果表明,在10次试验中,模型的泛化错误率为30%时,观察到测试错误率为40%的概率大约为20.03%。

1.1.2 t 检验

t 检验是一种用于比较两个模型之间性能差异是否显著的统计方法,特别是当数据集较小或标准差未知时。t 检验主要用于通过模型的均值误差和方差来分析它们的表现差异。

1.1.2.1 均值误差计算

均值误差 ( \mu ) 的公式如下:

[
\mu = \frac{1}{k} \sum_{i=1}^k e_i
]

1.1.2.2 方差计算

方差 ( \sigma^2 ) 的公式为:

[
\sigma^2 = \frac{1}{k-1} \sum_{i=1}^k (e_i - \mu)^2
]

1.1.2.3 t 统计量计算

t 统计量用于评估两个模型之间误差差异是否显著。公式为:

[
t_{\epsilon} = \frac{\mu}{\sqrt{\sigma^2 / k}}
]

1.1.2.4 t 检验使用示例

问题:假设我们有两个分类算法 ( A ) 和 ( B ),它们在5个不同的数据集上测试后,分别产生了以下误差(错误率):

  • 算法 A 的误差:0.1、0.2、0.15、0.3、0.25
  • 算法 B 的误差:0.2、0.25、0.2、0.35、0.3

我们想使用 t 检验 来确定这两个算法的平均误差差异是否显著。


解法

  1. 均值误差计算

    • 算法 A 的均值误差:( \mu_A = 0.2 )
    • 算法 B 的均值误差:( \mu_B = 0.26 )
  2. 方差计算

    • 算法 A 的方差:( \sigma_A^2 = 0.00625 )
    • 算法 B 的方差:( \sigma_B^2 = 0.00475 )
  3. t 统计量计算
    [
    t = \frac{0.2 - 0.26}{\sqrt{\frac{0.00625}{5} + \frac{0.00475}{5}}} \approx -1.28
    ]

  4. 判断显著性:根据 t 分布表,临界值为 2.306,( |t| = 1.28 ) 小于 2.306,表示这两个算法的误差差异没有显著性。


1.2 Friedman 检验

Friedman 检验 是一种非参数统计检验,用于比较多个相关样本(即同一组数据上不同模型的表现),例如在多个数据集上评估多个算法的性能。它用于评估多个算法的性能差异,适用于当数据不满足正态性假设时。

1.2.1 计算步骤
  1. 排序:对每个数据集上的算法进行性能排序,表现最好为1,次好为2。
  2. 平均排名:计算每个算法的平均排名。
  3. 检验统计量 ( Q )
    [
    Q = \frac{12N}{k(k+1)} \left[ \sum_{j=1}^k R_j^2 - \frac{k(k+1)^2}{4} \right]
    ]

1.3 Nemenyi 检验

当 Friedman 检验表明算法之间存在显著差异时,使用 Nemenyi 检验 来确定具体哪些算法之间存在显著差异。Nemenyi 检验计算每对算法之间的平均排名差,并与临界差距 ( CD ) 进行比较。

1.3.1 临界差距 ( CD ) 的计算公式

[
CD = q_{\alpha} \sqrt{\frac{k(k+1)}{6N}}
]


1.4 使用示例:Friedman 检验与 Nemenyi 检验

假设我们有三个算法 ( A )、( B )、( C ),在五个数据集上测试,得到以下准确率:

数据集算法 A算法 B算法 C
10.850.800.78
20.900.870.85
30.920.910.89
40.880.850.83
50.910.900.86
第一步:对每个数据集进行排名
数据集算法 A (Rank)算法 B (Rank)算法 C (Rank)
1123
2123
3123
4123
51

2 | 3 |

第二步:计算每个算法的平均排名
  • 算法 A 的平均排名为 1.0,算法 B 为 2.0,算法 C 为 3.0。
第三步:计算 Friedman 检验的统计量 ( Q )

根据计算公式 ( Q = 10 ),显著性水平 ( \alpha = 0.05 ) 下的临界值为 5.991。因为 ( Q > 5.991 ),我们拒绝零假设,认为至少有一个算法存在显著差异。

第四步:Nemenyi 检验的事后分析

计算临界差距 ( CD = 1.481 ),比较排名差异:

  • ( |A - B| = 1.0 ),没有显著差异;
  • ( |A - C| = 2.0 ),有显著差异;
  • ( |B - C| = 1.0 ),没有显著差异。

结论:算法 A 和 C 之间存在显著差异


2. 偏差-方差分解与泛化误差

在机器学习中,模型的泛化误差可以通过偏差-方差分解来解释。这种分解将模型在测试数据上的误差(泛化误差)分为三部分:偏差方差噪声。通过调节模型的复杂度,我们可以在偏差和方差之间进行权衡,从而找到泛化误差最小的模型。


2.1 泛化误差的数学公式

模型的期望平方误差(泛化误差)分解为三部分:

[
\mathbb{E}[(y - \hat{f}(x))^2] = (\text{Bias})^2 + \text{Variance} + \sigma^2
]

其中:

  • ( \mathbb{E}[(y - \hat{f}(x))^2] ):模型的泛化误差,即模型预测值与真实值之间的期望平方误差。
  • ( (\text{Bias})^2 ):偏差平方,表示模型预测的期望值与真实值之间的差距。
  • Variance:方差,表示模型预测结果在不同训练集上的波动性。
  • ( \sigma^2 ):噪声,表示数据中无法消除的随机误差。

2.2 偏差(Bias)

偏差反映了模型对真实数据的拟合能力,表示模型的期望预测值与真实值之间的差距。高偏差意味着模型欠拟合,即模型过于简单,无法捕捉数据中的复杂模式。

数学定义
[
\text{Bias}^2 = (\mathbb{E}[\hat{f}(x)] - f(x))^2
]

示例

  • 使用线性回归拟合复杂的非线性数据。线性回归模型无法捕捉数据中的非线性模式,导致模型的预测结果与真实值差距很大。此时偏差较高,模型欠拟合。
  • 例如:真实房价为 500,000 元,模型预测的期望房价为 350,000 元,说明偏差很大。

2.3 方差(Variance)

方差反映了模型预测值在不同训练集上的变化程度。高方差表示模型过拟合,即模型过于复杂,过度依赖训练数据,对训练数据中的噪声和细节非常敏感,导致预测结果波动较大。

数学定义
[
\text{Variance} = \mathbb{E}[(\hat{f}(x) - \mathbb{E}[\hat{f}(x)])^2]
]

示例

  • 使用高阶多项式回归模型拟合数据。模型对每一个训练数据点都做了精确的拟合,导致它对训练数据的微小变化非常敏感,从而在不同训练集上预测结果差异很大,表现为高方差。
  • 例如:同样的房子,训练集 1 的模型预测 480,000 元,训练集 2 的模型预测 520,000 元,说明模型的方差较大。

2.4 噪声(Noise)

噪声是数据中的随机误差,无法通过模型的调整来减少。噪声通常来自数据中的测量误差、现实中的随机性等因素。即使我们有一个完美的模型,也无法消除噪声。

数学定义
[
\text{Noise} = \sigma^2
]

示例

  • 在房价预测中,房价不仅受房子特征(如面积、位置)影响,还受市场波动、经济状况等随机因素的影响。这些因素构成了噪声,即使模型再好也无法消除这些随机误差。
  • 例如:房价可能会因市场波动发生变化,即使模型准确预测房价为 500,000 元,但实际市场卖出价可能是 510,000 元或 490,000 元。这部分误差是噪声。

2.5 偏差-方差权衡

在训练模型时,偏差和方差往往是相互对立的:

  • 高偏差,低方差:模型过于简单,难以拟合数据,表现为欠拟合。虽然模型对训练数据的波动不敏感(低方差),但它无法捕捉数据中的复杂模式(高偏差)。
  • 低偏差,高方差:模型过于复杂,过度拟合训练数据,表现为过拟合。虽然模型能很好地拟合训练数据(低偏差),但在新数据上表现不稳定(高方差)。
如何找到平衡?

目标是找到一个模型复杂度的平衡点,使模型既不过度拟合(方差低),又不过度简单(偏差低)。通过这个平衡,我们可以最小化泛化误差。

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

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

相关文章

【ELK】初始阶段

一、logstash学习 安装的时候最好不要有中文的安装路径 使用相对路径 在 Windows PowerShell 中,如果 logstash 可执行文件位于当前目录下,你需要使用相对路径来运行它。尝试输入以下命令: .\logstash -e ‘input { stdin { } } output { s…

[软件工程]—嵌入式软件开发流程

嵌入式软件开发流程 1.工程文件夹目录 ├─00_Project_Management ├─00_Reference ├─01_Function_Map ├─02_Hardware ├─03_Firmware ├─04_Software ├─05_Mechanical ├─06_FCT └─07_Tools00_Project_Management 子文件夹如下所示: ├─00_需求导…

OriginOS 5深度体验:这款新系统,真的有点东西

嘿,朋友!最近你有没有关注到vivo推出的OriginOS 5啊?我可是被这款新系统深深吸引了,感觉它真的有点东西,忍不住想和你分享一下我的深度体验。 一、全新的唤醒方式,贴心小助手随时待命 首先,我得…

Sigrity 共模电感的S-parameter仿真数据导入

下载S4P参数 https://ds.murata.co.jp/simsurfing/cmcc.html?partnumbers%5B%22DLW32MH101XT2%22%5D&oripartnumbers%5B%22DLW32MH101XT2L%22%5D&rgearjomoqke&rgearinfocom&md51729525489334# 下载S4P参数; DLW32MH101XT2.s4p Sigrity 使用-dif…

集成平台,互联互通平台,企业大数据平台建设方案,技术方案(Word原件 )

企业集成平台建设方案及重点难点攻坚 基础支撑平台主要承担系统总体架构与各个应用子系统的交互,第三方系统与总体架构的交互。需要满足内部业务在该平台的基础上,实现平台对于子系统的可扩展性。基于以上分析对基础支撑平台,提出了以下要求&…

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

本篇文章将介绍一个新的改进机制——WTConv(小波卷积),并阐述如何将其应用于YOLOv11中,显著提升模型性能。YOLOv11模型相比较于前几个模型在检测精度和速度上有显著提升,但其仍然受卷积核感受野大小的限制。因此&#…

柔性数组的使用

//柔性数组的使用 #include<stdio.h> #include<stdlib.h> #include<errno.h> struct s {int i;int a[]; }; int main() {struct s* ps (struct s*)malloc(sizeof(struct s) 20 * sizeof(int));if (ps NULL){perror("malloc");return 1;}//使用这…

2 ,datax :案例

1 &#xff0c;作业开发流程 &#xff1a;4 步 1 &#xff0c;确认源 &#xff1a; 1 &#xff0c;输入源    2 &#xff0c;输出源 2 &#xff0c;查文档 &#xff1a;输入&#xff0c;输出 https://github.com/alibaba/DataX/blob/master/introduction.md 3 &#xff0c;编…

【ArcGIS Pro实操第八期】绘制WRF三层嵌套区域

【ArcGIS Pro实操第八期】绘制WRF三层嵌套区域 数据准备ArcGIS Pro绘制WRF三层嵌套区域Map-绘制三层嵌套区域更改ArcMap地图的默认显示方向指定数据框范围 Map绘制研究区Layout-布局出图 参考 本博客基于ArcGIS Pro绘制WRF三层嵌套区域&#xff0c;具体实现图形参考下图&#x…

【前端】如何制作一个自己的网页(15)

有关后代选择器的具体解释&#xff1a; 后代选择器 后代选择器使用时&#xff0c;需要以空格将多个选择器间隔开。 比如&#xff0c;这里p span&#xff0c;表示只设置p元素内&#xff0c;span元素的样式。 <style> /* 使用后代选择器设置样式 */ p span { …

MySQL程序特别酷

这一篇和上一篇有重合的内容&#xff0c;&#xff0c;我决定从头开始再学一下MySQL&#xff0c;和上一篇的区别是写的更细了&#xff0c;以及写这篇的时候Linux已经学完了 下面就是关于MySQL很多程序的介绍&#xff1a; MySQL安装完成通常会包含如下程序&#xff1a; Linux系…

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券&#xff0c;共有6种优惠券样式&#xff08;参考了常见的优惠券&#xff09;&#xff0c;文本内容仅为示例&#xff0c;您可在此基础上调整为你想要的文本 预览效果 通过模拟数据&#xff0c;实现点击使用优惠券让其变为灰色的效果&#xff08;模…

鸿蒙网络编程系列32-基于拦截器的性能监控示例

1. 拦截器简介 在Web开发中拦截器是一种非常有用的模式&#xff0c;它允许开发者在请求发送到服务器之前或响应返回给客户端之前执行一些预处理或后处理操作。这种机制特别适用于需要对所有网络请求或响应进行统一处理的情况&#xff0c;比如添加全局错误处理、请求头的修改、…

Linux中输入和输出基本过程

目录 Linux中输入和输出基本过程 文件内核级缓冲区 何为重定向 子进程与缓冲区 手撕一个简单的shell&#xff08;版本2&#xff09; 判断重定向命令与截取 执行重定向 简单实现stdio.h中的文件相关操作 FILE结构体 fopen函数 fwrite函数 fflush函数 fclose函数 Li…

Vue+TypeScript+SpringBoot的WebSocket基础教学

成品图&#xff1a; 对WebSocket的理解&#xff08;在使用之前建议先了解Tcp&#xff0c;三次握手&#xff0c;四次挥手 &#xff09;&#xff1a; 首先页面与WebSocket建立连接、向WebSocket发送信息、后端WebSocket向所有连接上WebSoket的客户端发送当前信息。 推荐浏览网站…

燕山大学23级经济管理学院 10.18 C语言作业

燕山大学23级经济管理学院 10.18 C语言作业 文章目录 燕山大学23级经济管理学院 10.18 C语言作业1C语言的基本数据类型主要包括以下几种&#xff1a;为什么设计数据类型&#xff1f;数据类型与知识体系的对应使用数据类型时需要考虑的因素 21. 逻辑运算符2. 真值表3. 硬件实现4…

设计模式(UML图、类之间关系、设计原则)

目录 一.类的UML图 1.类的UML图 2.类之间的关系 2.1 继承关系&#xff1a; 2.2关联关系 2.2.1单项关联 2.2.2双向关联 2.2.3自关联 2.3聚合关系 2.4组合模式 2.5依赖关系 二、设计三原则 2.1单一职责原则 2.2开放封闭原则 2.3依赖倒转原则 一.类的UML图 1.类的…

考研篇——数据结构王道3.2.2_队列的顺序实现

目录 1.实现方式说明2.代码实现2.12.1.1 代码12.1.2 代码22.1.3 代码3 2.22.2.1 代码42.2.5 代码52.2.6 代码6 总结 1.实现方式说明 多在选择题中考察 队尾指针&#xff08;rear&#xff09;有两种指向方式&#xff1a; 队尾指针指向队尾元素的位置&#xff0c;队尾指针指向…

9个3D直播场景推荐

在科技日新月异的今天&#xff0c;3D直播技术正逐步渗透至文旅领域&#xff0c;为游客带来前所未有的沉浸式体验。以下是vLive虚拟直播九个精心推荐的文旅3D直播场景&#xff0c;它们不仅展现了各地独特的文化魅力&#xff0c;还通过高科技手段让游客仿佛穿越时空&#xff0c;身…

ArcGIS应用指南:多尺度渔网创建

在GIS中&#xff0c;创建渔网矢量文件是GIS中的一项常见任务&#xff0c;通过将研究区域划分为规则的网格&#xff0c;可以更精细地分析和管理城市空间数据。本文以厦门市行政区为例&#xff0c;详细介绍了如何创建不同尺度的渔网矢量网格&#xff0c;以适应不同区域的发展特点…