首页 > 编程语言 >机器学习中验证两个算法之间是否存在显著差距的t-test检验

机器学习中验证两个算法之间是否存在显著差距的t-test检验

时间:2024-10-24 17:12:09浏览次数:8  
标签:总体 抽样 验证 假设 样本 检验 算法 分布 test

同一主题的简单分析版本,建议查看:

机器学习领域中假设检验的使用


本文内容为在上文基础上进一步分析版本。


相关:

t检验

t检验应用条件

t检验(t-test)

t-test终极指南

一文详解t检验


t检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。 t检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。

t检验是一种常用的统计方法,主要用于比较两组数据的平均值是否存在显著差异。

t-test的使用场景非常广泛,只要涉及到需要比较两组数据平均值差异的情况,都可以考虑使用t-test进行分析。

在机器学习实践中,我们可能会尝试不同的算法或模型来解决同一个问题。t检验可以帮助我们比较这些算法或模型在性能上的差异,从而选择出最优的模型。

总之,t检验在机器学习领域是一种有用的统计工具,它可以帮助我们更好地理解数据,优化模型,并做出更明智的决策。

为什么使用t-test检验,或者说为什么使用t分布统计量,也或者说高斯分布/正太分布之间的关系,等等,这些统计学的问题,包括相关统计假设的数学定理及其推导,说实话,自己也不会,大学学的就是标准的人教版教材,告诉的也就是用这个东西来作统计就是,至于具体原因以及背后的深刻数学原理这里也无法讨论,但是说一个自己的一个简单理解的小例子:

投掷一枚硬币,正反面出现的概率均为0.5,那么连续投掷10000次,最后出现正面次数为0、1、2、3,......97、98、99、100的概率其实就是服从一个正太分布的,关于二项式分布与正太分布之间的数学推导这里也就不介绍了,这里举这个例子要说明的是在日常的发生事件的统计模型建立时使用状态分布的有效性及其背后有相关数学理论支撑。

如果在统计建模时我们的样本量较小(样本量小于30时),那么该模型更趋向于t分布而不是正太分布,因此在日常统计建模检验时我们常使用t分布而不是正太分布。大致可以这么理解,一个分布是正太分布,但是对这个分布抽样较少的样本,那么由于样本量较少,因此抽取的样本更符合t分布而不是正太分布。


t检验可分为单总体检验双总体检验,以及配对样本检验


t检验用于比较两个均值是否存在显著差异。具体来说:

  • 单样本t检验:用于检测一个样本的均值是否与某个已知的总体均值有显著差异。
  • 独立样本t检验:用于比较两个独立样本之间的均值差异。
  • 配对样本t检验:用于比较同一对象在不同条件下的均值差异(如治疗前后)。

在使用t检验时都是将两个分布的差异不显著设置为\(H_0\)假设,因为我们是需要根据\(H_0\)假设进行统计建模的,而只有假设差异不显著才能符合这里的t分布统计模型,然后再根据抽样数据和统计模型判断是否可以否定\(H_0\)假设,\(H_0\)假设就是假设\(u_{抽样样本}-u_{总体分布}\)差异不显著,或者说\(H_0\)假设就是假设由\(u_{抽样样本}-u_{总体分布}\)所构建的统计量\(t\)是符合t分布,于是才有后面的依据统计模型进行的假设检验。


在使用t检验判断两个总体分布均值差异是否显著时需要假设两样本总体方差相同,因为t检验要求两总体分布方差相同,当然这里也只是假设二者相同。

在使用t检验对样本抽样均值和总体均值差异显著判断时要求总体方差未知,否则就可以利用 Z 检验(也叫U检验,就是正态检验)


要知道统计学理论和计算机领域的机器学习一样都是建立在假设之上的,也就是说在预先设置假设后才在这些假设之上构建的后面的理论。这里使用t检验时对两总体分布均值差异显著性判断时就是假设两总体方差相同的。


声明:下面的公式来源一文详解t检验

  1. 抽样样本与目标总体分布之间均值差异性判断构建的统计量:

image-20241024164529533

  1. 两个抽样样本均值差异性判断,\(H_0\)假设这两个抽样样本来自于均值相同的两个总体分布:

image-20241024164834034

  1. 配对样本均值检验,来自某总体分布的抽样样本X在某因素影响下对应改变为另一种样本抽样Y,如:同一受试对象的自身前后对照(如检验癌症患者术前、术后的某种指标的差异)

image-20241024165142839

image-20241024165201163


t检验在机器学习领域中的应用

在机器学习领域,我们针对某个问题可以构建几个不同的算法或模型,往往为了判断哪两个算法更优我们会使用t检验。我们假设由两个算法A、B,每个算法均进行24次重复实验,即24次trial,我们可以根据重复实验的结果计算出A、B算法的实验结果的均值,从而我们可以构建t统计量:

image-20241024163606202

image-20241024163237756

这个例子中\(n_1=24\),\(n_2=24\),抽样样本方差\(s_1\)和\(s_2\)可以通过A、B算法的重复实验中获得,同样可以在A、B算法的重复实验中分别获得抽样样本均值,在这里则是使用双侧的\(t(0.025, 46)\),即\(n=n_1+n_2-2=24+24-2=46\)。


问题示例:(一个实例的单总体t检验对t检验)

判断一个抽样样本(下例子中样本数为35)是否与某总体分布具有统计学意义?

零假设,由于统计量中主要计算部分为\(u_0-u_1\)或者是\(u_{抽样样本}-u_{总体分布}\),因此\(H_0\)事件假设就是假设这个抽样样本源自于该总体分布;而且我们知道抽样样本的均值和方差,并且知道目标总体分布的均值(不知道总体方差),我们的目标是判断这个样本抽样与总体分布之间的差异是否显著,因此我们知道如果\(H_0\)假设假定成立,即假定抽样样本与总统分布差异不显著或者说抽样样本来自于目标总体分布,那么我们可以得到t分布的统计量\(t=\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}}\),其中,\(s\)为抽样样本方差,\(n\)为抽样样本数;由于我们的\(H_0\)假设是抽样样本和总体分布的差异不显著,也就是说这种差异性可能是抽样样本均值大于总体分布均值有可能是抽样样本均值小于总体分布均值,那么也就意味着我们需要考虑的不仅是\(u_{抽样样本}-u_{总体分布}\)还需要考虑\(u_{总体分布}-u_{抽样样本}\),即\(t=|\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}}|\),也就是说下面例子是t分布的双侧检验,一般认为小概率事件是发生概率小于0.05的,即5%,那么由于是双侧检验,因此单侧检验的小概率为0.05/2=0.025,也就是说当\(t=|\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}}| \geq t(34, 0.025)=2.032\)时则该\(H_0\)事件的发生概率为小概率,由于小概率事件在统计学上认为不可能发生,于是否定\(H_0\)事件发生,于是否定样本抽样来自于目标总体分布,也就是说抽样样本与总体分布在统计学上差异显著;与之相反,如果\(t=|\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}}| \leq t(34, 0.025)=2.032\),那么就说明该\(H_0\)事件的发生概率不为小概率,于是我们无法否定\(H_0\)假设,也就是说我们无法否定样本抽样来自于目标总体分布,或者说抽样样本与总体分布在统计学上差异不显著,这里需要注意的是按照统计学理论来说我们只是无法依据现有抽样数据否定样本抽样来自于总体分布,重点是无法否定并不等于认同,无法否定抽样来自于总体分布不等于承认样本抽样来自于目标总体分布

由于\(u_{抽样样本}\)可能大于\(u_{总体分布}\),也可能\(u_{抽样样本}\)小于\(u_{总体分布}\),从而知道这个例子是t检验的双侧检验,小概率事件为0.05概率,双侧检验(由于存在两种可能性,不清楚每一种可能的发生概率的差异,于是两种可能等概率,于是单一一种可能的小概率为0.025)的小概率为单侧发生概率小于0.025。

当,\(t=\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}} \geq t(34, 0.025)=2.032\)或\(t=\frac{u_{抽样样本}-u_{总体分布}}{\frac{s}{\sqrt{n}}} \leq t(34, -0.025)=2.032\)时,我们认为之前的\(H_0\)假设为小概率假设,于是可以否认\(H_0\)假设,即不接受\(H_0\)假设。

image-20241024141226366

image-20241024141248394



个人github博客地址:
https://devilmaycry812839668.github.io/

标签:总体,抽样,验证,假设,样本,检验,算法,分布,test
From: https://www.cnblogs.com/xyz/p/18499971

相关文章

  • 使用分水岭算法实现分割图像
    #导包:cv2视觉、numpy数组importcv2importnumpyasnp#加载图片img=cv2.imread('mourse.jpg')cv2.imshow('ori',img)#转换图片为黑白色gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#将图片阈值分割ret,thresh=cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)......
  • 最强总结!十大回归类算法模型 !!!
    1.线性回归线性回归是一种用于描述两个或多个变量之间线性关系的统计模型。假设  是响应变量(目标变量), 是解释变量(特征),线性回归模型通过拟合一条直线来预测目标变量。原理线性回归的基本假设是:其中, 是截距, 是回归系数, 是误差项(即残差),假设其服从正态分布。核心公式......
  • 蓝牙室内定位算法-蓝牙ibeacon室内定位技术方案
    随着科技的飞速发展,室内定位技术已成为现代生活中的重要组成部分。在众多室内定位技术中,蓝牙技术凭借其低功耗、高精确度以及广泛的设备兼容性,逐渐在室内定位领域崭露头角。其中,蓝牙iBeacon技术更是凭借其独特的优势,成为室内定位领域的佼佼者。本文将深入探讨蓝牙iBeacon室内定......
  • 常用距离算法
    常用距离算法对于两个点$(x_1,y_1)$和$(x_2,y_2)$的距离大致有$3$种:欧氏距离曼哈顿距离切比雪夫距离三维情况下表示为$(x_1,y_1,z_1)$和$(x_2,y_2,z_2)$。多维情况下表示为$(x_1,x_2,...,x_d)$和$(y_1,y_2,...,y_d)$,其中$d$表示维数(与二、三维表示有所不同)......
  • 非煤矿山算法视频分析服务器皮带运行状态识别视频智能AI分析系统建设方案设计
    一、建设背景近年来,我国在非煤矿山的安全生产方面虽然取得了一定的进展,但整体安全基础仍然不牢固,事故数量依然较多,并且尚未从根本上控制住重大事故的发生,整体安全生产的形势依旧严峻且充满复杂性。根据国家矿山安全监察局发布的《关于煤矿及关键非煤矿山重大灾害风险防控体系建......
  • 使用OpenSSl库实现AES-GCM-128算法(C语言)
    在C语言中使用OpenSSL库实现AES-GCM-128算法,并生成GMAC(GaloisMessageAuthenticationCode)消息认证码,通过以下步骤完成:初始化加密环境:创建一个EVP_CIPHER_CTX结构体,用于存储加密过程中的所有必要信息。设置加密算法:指定使用AES-GCM模式,以及密钥和IV(初始化向量)。处理附加认证......
  • RSA算法详解及相关数学原理解析
    RSA算法详解及相关数学原理解析前言‍为了记录自己学习密码学的过程,也是为了便于个人应付相关课程的考核,故写此博客。本博客总结了怎么用C++手搓一个RSA算法,以及补补欠缺的一些数学知识和可能欠缺的一些其他算法的实现。参考了其他人的相关博客,用便于我自己理解的话和方式和......
  • 大二上 数据结构与算法笔记 20241024
    一.inline在C和C++编程语言中,inline关键字是一种函数修饰符,用于建议编译器在编译时将函数的代码直接插入到每个函数调用的地方,而不是进行常规的函数调用。这样做的目的是减少函数调用的开销,尤其是在函数体较小且调用频繁的情况下。作用和优点:减少函数调用开销:通过将函数......
  • 数据结构与算法——双链表的实现
    上次学习了单链表,这次来学习双链表。二者之间的区别是,单链表中的每个结点只存有后继结点的地址,而双链表中则存了两个地址,一个是前驱结点的地址,一个是后继结点的地址。结构体structListNode{ intelement;//数据域 structListNode*next; ......
  • 基于Fluent和深度学习算法驱动的流体力学计算与应用
    机器学习与流体力学入门一、流体力学基础理论与编程实战1、流体力学的发展概述2、不可压缩流体力学的基本方程3、偏微分方程数值求解介绍4、傅里叶变换和流体的尺度分析5、伪谱法求解不可压缩流体力学方程案例实践:1、Matlab编程实现有限差分(案例数据与代码提供给学员)2......