论文阅读笔记-Covariate Shift: A Review and Analysis on Classifiers

前言

标题:Covariate Shift: A Review and Analysis on Classifiers
原文链接:Link\

我们都知道在机器学习模型中,训练数据和测试数据是不同的阶段,并且,通常是是假定训练数据和测试数据点遵循相同的分布。但是实际上,模型的输入和输出的联合分布在训练数据和测试数据之间是不同的,这称为dataset shift。dataset shift的一种简单情况就是covariate shift,covariate shift仅输入分布发生变化,而在给定输入的输出条件分布保持不变。本文主要概述了现有covariate shift检测和自适应方法及其应用,同时基于包含合成数据和真实数据的四种数据集,提供了各种covariate shift自适应技术在分类算法上的实验效果分析。实验结果标明,使用Importance Reweighting(重要性重加权)方法和feature-dropping方法能够让机器学习模型在covariate shift问题的表现上有明显提高。

介绍

熟悉机器学习的小伙伴应该都知道,Supervised learning中涉及的步骤包括从真实来源收集数据,数据整合,数据转换,对已知数据进行训练和验证算法,最后将其应用于未知测试数据。所以为了提高这些Supervised learning算法的性能,数据质量起着重要作用。 可以基于各种角度来分析数据质量,例如数据复杂性,缺失值,噪声,数据不平衡,离群值,缩放值等。而在决定机器学习模型的性能中,起着重要作用的一种数据质量度量是dataset shift。它是下面提到的三种shifts的总称:

  • Covariate Shift:Change in the independent variables
  • Prior probability shift: Change in the target variable
  • Concept Shift: Change in the relationship between the independent and the target variable

在假设测试和训练数据中存在的点或实例属于相同的特征空间和相同的分布的假设下,常用的机器学习模型可以很好地工作,但是,当分布发生变化时,需要使用新的训练数据从头开始重建基础统计模型。

Covariate Shift一词描述为学习阶段和泛化阶段之间(训练数据和测试数据)输入变量“ X”的分布变化。虽然Covariate Shift是dataset shifts中研究最多的shifts类型,但没有很合适的确切定义。比如在机器学习的角度来看,这种预测性建模通常称为transfer learning,也有一些相似的名称,但是概念上的差异很小,例如population drift,concept drift, dataset shift。以下是文献中存在的几种Covariate Shift定义:

  • x x x 为解释变量或协变量, q 1 ( x ) q_1(x) q1(x)是评估预测时的概率密度, q 0 ( x ) q_0(x) q0(x) 表示观察数据中的概率密度,则 q 0 ( x ) ≠ q 1 ( x ) q_0(x)\neq q_1(x) q0(x)=q1(x) 的情况称为分布的Covariate Shift。
  • 产生特征向量 x x x 及其相关类别标签 y y y 的数据分布由于潜在变量 t t t 而变化,因此当 P ( y ∣ x , t 1 ) ≠ P ( y ∣ x , t 2 ) P(y|x,t_1)\neq P(y|x,t_2) P(yx,t1)=P(yx,t2) 时,可以说发生了Covariate Shift。

Covariate Shift检测和自适应算法

可以通过使用以下公式给出的重要性权重来消除因Covariate Shift而导致的预测误差:
W ( X ) = p t e s t ( X ) p t r a i n ( X ) (1) W(X)=\frac{p_{test}(X)}{p_{train}(X)} \tag{1} W(X)=ptrain(X)ptest(X)(1)
其中 p t e s t ( X ) p_{test}(X) ptest(X) p t r a i n ( X ) p_{train}(X) ptrain(X) 分别是在测试和训练数据集中找到输入 X X X 的概率。公式(1)来自这样的直觉,即如果特定训练实例出现在测试集中的概率很高,则它必须获得更高的权重。 W ( X ) W(X) W(X) 给出每个训练输入点的重要性值,将其与这些点相乘将得出更准确的预测。但是,此值是先验未知的,因此需要从数据样本中估算其值,因此,接下来分别列出一些在该领域中引入的最重要的重要性估计方法。

Kernel Density Estimation (KDE)

KDE是一种非参数方法,用于获得随机变量的概率密度函数的近似值,公式(2)是高斯核方程,公式(3)是KDE的方程
K ( x , x ′ ) = e x p ( − ∣ ∣ x − x ′ ∣ ∣ 2 2 σ 2 ) (2) K(x,x^{'})=exp(\frac{-||x-x^{'}||^2}{2\sigma^2})\tag{2} K(x,x)=exp(2σ2xx2)(2) p ^ ( x ) = 1 n ( 2 π σ 2 ) d 2 ∑ i = 1 n K σ ( x − x i ) (3) \hat{p}(x)=\frac{1}{n(2\pi \sigma^2)^{\frac{d}{2}}}\sum_{i=1}^nK_{\sigma}(x-x_i)\tag{3} p^(x)=n(2πσ2)2d1i=1nKσ(xxi)(3)
其中, x x x x ′ x^{'} x 是两个内核样本, σ \sigma σ 是内核宽度。KDE给出的近似值的精度完全由上式中选定的 σ \sigma σ 值确定。 σ \sigma σ 的最佳值可以通过交叉验证获得,因此,训练和测试数据点可用于通过等式(2)分别获得 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) ,并且重要性可以估计为:
W ( X ) = p ^ t e s t ( X ) p ^ t r a i n ( X ) W(X)=\frac{\hat{p}_{test}(X)}{\hat{p}_{train}(X)} W(X)=p^train(X)p^test(X)
但是,上面讨论的方法受到维数的限制,而且支持可靠逼近所需的数据量通常随维数呈指数增长,这在数据样本数量有限的情况下非常复杂。因此,KDE无法用于高维数据,一种解决方法是直接找到 W ( X ) W(X) W(X) 而无需计算 p t e s t ( X ) p_{test}(X) ptest(X) p t r a i n ( X ) p_{train}(X) ptrain(X)

Discriminative Learning

概率分类器也可以用来直接估计重要性,从训练集中提取的样本标记为 μ = 0 \mu = 0 μ=0,从测试集中提取的样本标记为 μ = 1 \mu = 1 μ=1。则概率密度可以表示为如下:
p t r ( X ) = p ( X ∣ μ = 0 ) a n d p t e ( X ) = p ( X ∣ μ = 1 ) p_{tr}(X)=p(X|\mu=0) \ and \ p_{te}(X)=p(X|\mu=1) ptr(X)=p(Xμ=0) and pte(X)=p(Xμ=1)
使用贝叶斯定理,重要性权重 W ( X ) W(X) W(X) 可写为:
W ( X ) = p t r p t e = p ( μ = 0 ) p ( μ = 1 ∣ X ) p ( μ = 1 ) p ( μ = 0 ∣ X ) W(X)=\frac{p_{tr}}{p_{te}}=\frac{p(\mu=0)p(\mu=1|X) }{p(\mu=1)p(\mu=0|X) } W(X)=pteptr=p(μ=1)p(μ=0X)p(μ=0)p(μ=1X)
其中 p ( μ = 0 ) p ( μ = 1 ) ≈ n t r n t e \frac{p(\mu=0)}{p(\mu=1)}\approx \frac{n_{tr}}{n_{te}} p(μ=1)p(μ=0)ntentr 可以容易得到。可以通过使用Logistic回归,随机森林,SVM等分类器区分 { x i } i = 1 n t r \{x_i\}_{i=1}^{n_{tr}} {xi}i=1ntr { x j } j = 1 n t e \{x_j\}_{j=1}^{n_{te}} {xj}j=1nte 来近似估计概率 p ( μ ∣ X ) p(\mu|X) p(μX)。在此还需要注意的是,可以将训练样本与测试样本分离的概率用作检测数据集中是否存在Covariate Shift的度量,在本文中称为判别测试。但是,训练这些模型有时会很耗时,因此,已经引入了有效的概率分类方法,例如LSPC (最小二乘概率分类器)和IWLSPC(结合了重要性加权LSPC和重要性重加权LSPC)。

Kernel Mean Matching

KMM直接能获得 W ( X ) W(X) W(X) 而无需计算 p t e s t ( X ) p_{test}(X) ptest(X) p t r a i n ( X ) p_{train}(X) ptrain(X) ,KMM的基本思想是找到ܹ W ( X ) W(X) W(X) ,从而使再现核Hilbert(RKHS)空间中的训练点和测试点的方法接近。等式(2)中的高斯核是计算通用RKHS核的示例,并且已证明下式给出的优化问题的解给得出真实的重要性值:
m i n w i [ 1 2 ∑ i , i ′ = 1 n t r w i w i ′ K σ ( x i t r , x i ′ t r ) − s u m i = 1 n t r w i K i ] (4) min_{w_i}[\frac{1}{2}\sum_{i,i^{'}=1}^{n_{tr}}w_iw_{i^{'}}K_{\sigma(x_i^{tr},x_{i^{'}}^{tr})}-sum_{i=1}^{n_{tr}}w_iK_i]\tag{4} minwi[21i,i=1ntrwiwiKσ(xitr,xitr)sumi=1ntrwiKi](4)
其中, ( 1 n t r ) ∣ ∑ i = 1 n t r w i − n t r ≤ ϵ ∣ a n d 0 ≤ w 1 , w 2 , w 3 , . . . , w n t r ≤ B (\frac{1}{n_{tr}})|\sum_{i=1}^{n_{tr}}w_i-n_{tr}\leq \epsilon| \ and\ 0\leq w_1,w_2,w_3,...,w_{n_{tr}}\leq B (ntr1)i=1ntrwintrϵ and 0w1,w2,w3,...,wntrB,且 K i = n t r n t e ∑ j = 1 n t e K σ ( x i t r , x j t e ) K_i=\frac{n_{tr}}{n_{te}}\sum_{j=1}^{n_{te}}K_\sigma(x_i^{tr},x_j^{te}) Ki=ntentrj=1nteKσ(xitr,xjte)

KMM的性能完全取决于调整参数 B B B ϵ \epsilon ϵ σ \sigma σ 的值,因此,诸如交叉验证之类的常规模型选择方法无法找到最佳值。KMM的一种变体解决方案是, σ \sigma σ 选择一个样本间的中值距离。实验证明KMM优于natural plug-in估算器

Kullback Leblier Importance Estimation Procedure(KLIEP)

通过交叉验证完成的算法(例如KMM)可能会因Covariate Shift下的偏差导致模型选择失败,因此在CV上使用了重要性加权版本IWCV(重要性加权交叉验证)。但是,在IWCV中,模型选择需要通过重要性估计步骤内的无监督学习来完成,这是一个主要缺点。KLEIP找到重要性估计 w ^ ( x ) \hat{w}(x) w^(x),以使以使真实测试输入密度 p t e ( x ) p_{te}(x) pte(x) p ^ t e ( x ) \hat{p}_{te(x)} p^te(x) 之间的Kullback-Leibler方差最小,其中 p ^ t e ( x ) = w ^ ( x ) p t r ( x ) \hat{p}_{te(x)}=\hat{w}(x)p_{tr}(x) p^te(x)=w^(x)ptr(x),这样无需显式建模 p t e ( x ) p_{te}(x) pte(x) p t r ( x ) p_{tr}(x) ptr(x) 即可完成此操作。

Least Squares Importance Fitting (LSIF), Unconstrained Least Squares Importance Fitting (uLSIF)

KLIEP使用Kullback-Leibler散度找出两个函数之间的密度差异,LSIF使用平方损失代替 w ^ ( x ) \hat{w}(x) w^(x)建模为KLIEP。交叉验证用于查找诸如正则化参数和内核宽度 σ \sigma σ 之类的调整参数的最佳值。但是,由于数字误差的累积,LSIF有时会给出错误的结果,为了解决这个问题,已经提出了一种近似形式的LSIF,称为uLSIF,它可以通过简单地求解线性方程组来进行解的计算,因此,uLSIF在数值上是稳定的。

Covariate Shift自适应实际应用

  • 半监督speaker识别:与会话有关的变化,录音场景中的变化以及身体情感变化等
  • 人脸识别判断年龄:由于环境中光照条件的变化,训练和测试数据倾向于具有不同的分布。
  • 基于脑电图的脑机接口:脑信号的非平稳性质

实验结果:分类算法的性能分析

实验中使用的数据集是一个数据集来自Kaggle仓库包含三个合成数据集,实验的分类算法如下:

  • 线性判别分析
  • K邻近算法
  • 决策树分类器
  • 朴素贝叶斯分类器

训练和测试数据为不同分布

  • 处理技术:Discriminative Learning

实验用数据集(称为数据集-I)具有1000个训练样本和1000个测试样本,其中训练样本的分布是正态的,而测试样本的分布是二项式的,训练样本包含特征变量 X X X Y Y Y。训练集是通过选择1000个遵循均匀分布且方差= 1和均值= 25(在下面的等式中表示为“data”)的随机样本而形成的:
X = 11 × d a t a − 6 (5a) X=11\times data-6\tag{5a} X=11×data6(5a) Y = X 2 + 10 × X − 5 (5b) Y=X^2+10\times X -5\tag{5b} Y=X2+10×X5(5b)
类似地,测试集由遵循二项式分布的1000个随机数组成,被选择的概率为 p = 0.8 p = 0.8 p=0.8,值的范围为1到20。特征 X X X Y Y Y使用上式计算。 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) 的分布如下:
在这里插入图片描述
实验中,LDA,KNN和决策树分类器的准确性得分有所提高,而朴素贝叶斯分类器的准确性得分下降。

训练和测试数据不同的均指和方差

  • 处理技术:KDE

第二个实验数据集(称为数据集-II)具有相同分布但均值和方差不同,训练和测试集分别有1000个样本,且训练和测试样本的分布都均匀。训练集包含两个特征 X X X Y Y Y。将生成1000个均值为25和方差为1的随机值。类似地,创建具有正态分布的测试数据,并由 X X X Y Y Y两列组成。选择了均值为80,方差为1的1000个随机数。 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) 的分布如下:
在这里插入图片描述
下表实验结果显示,所有分类算法的性能都有提高:
在这里插入图片描述

训练和测试数据具有相同的分布,且属性数量增加

  • 处理技术:KLIEP

对于第三个实验,生成了两个具有正态分布的数据集。训练和测试集大约有500个样本和3个属性 X X X Y Y Y Z Z Z,其中 X X X Y Y Y是输入属性, Z Z Z是预测标签, Z Z Z的计算公式如下:
Z = s i n ( Y × π ) + X (6) Z=sin(Y\times \pi)+X\tag{6} Z=sin(Y×π)+X(6)
在这里插入图片描述
实验中,决策树分类器的性能提高约30%,其他三个分类器减少近20%。

真实数据

此实验的数据集是从Kaggle仓库中提取的“俄罗斯住房市场”数据集(Dataset-IV)进行的。
在这里插入图片描述

总结

机器学习算法的性能是将其用于现实世界场景中要考虑的重要因素, 它在很大程度上取决于数据集和数据的分布。当将诸如决策树或神经网络之类的机器学习模型在一个场景下训练并利用其来提高另一种场景下的泛化时,则发生的域自适应称为转移学习。但是在监督学习算法中,要确保模型在训练和测试场景中都能正常工作,重要的是要确保训练样本和测试样本的分布相同。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[含文档+PPT+源码等]精品基于PHP实现的会员综合管理平台的设计与实现

基于PHP实现的会员商城平台的设计与实现背景,可以从以下几个方面进行详细阐述: 一、电子商务的兴起与发展 随着Internet的广泛普及,电子商务迅速崛起并成为一种主流的购物趋势。通过网络,消费者可以足不出户地浏览和购买各种各样…

微博舆情分析:使用Python进行深度解析

目录 一、准备工作 二、基础理论知识 三、步骤详解 数据预处理 情感分析 关键词提取 四、案例分享 数据爬取 数据分析 五、优化 六、结论 在当今信息爆炸的时代,社交媒体平台如微博已成为公众表达意见和情感的重要渠道。微博舆情分析通过对大量微博数据进…

GPT原理;ChatGPT 等类似的问答系统工作流程如下;当用户向 ChatGPT 输入一个问题后:举例说明;ChatGPT不是通过索引搜索的传统知识库

目录 GPT原理 GPT架构 GPT 主要基于 Transformer 的解码器部分 ChatGPT 等类似的问答系统工作流程如下: 用户输入 文本预处理 模型处理 答案生成 输出回答 当用户向 ChatGPT 输入一个问题后:举例说明 文本预处理: ChatGPT不是通过索引搜索的传统知识库 GPT GPT…

【C++】C++内存管理(一):new/delete

大家好,我是苏貝,本篇博客带大家了解C的内存管理,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1.C/C内存分布2. C语言中动态内存管理方式:malloc/calloc/realloc/free3. C内…

选择适合你的报表工具,山海鲸报表与Tableau深度对比

在数据分析和报表制作的领域,企业往往面临着选择合适工具的难题。尤其是当市场上有很多功能强大的工具时,如何从中挑选出最适合自己需求的报表软件成为了一个关键问题。今天,我们将对比两款报表工具——山海鲸报表和Tableau,看看它…

网站架构知识之Ansible(day020)

1.Ansible架构 Inventory 主机清单:被管理主机的ip列表,分类 ad-hoc模式: 命令行批量管理(使用ans模块),临时任务 playbook 剧本模式: 类似于把操作写出脚本,可以重复运行这个脚本 2.修改配置 配置文件:/etc/ansible/ansible.cfg 修改配置文件关闭主机Host_key…

`psdparse`:解锁Photoshop PSD文件的Python密钥

文章目录 psdparse:解锁Photoshop PSD文件的Python密钥背景:为何选择psdparse?psdparse是什么?如何安装psdparse?简单函数使用方法应用场景常见Bug及解决方案总结 psdparse:解锁Photoshop PSD文件的Python密…

淘宝反爬虫机制的主要手段有哪些?

淘宝的反爬虫机制主要有以下手段: 一、用户身份识别与验证: User-Agent 识别:通过检测 HTTP 请求头中的 User-Agent 字段来判断请求是否来自合法的浏览器。正常用户使用不同浏览器访问时,User-Agent 会有所不同,而爬虫…

使用ssh-key免密登录服务器或免密连接git代码仓库网站

ssh登录服务器场景 假设有两台机器,分别是: 源机器:主机A(hostA),ip:198.168.0.1 目标机器:主机B(hostB),ip:192.168.0.2 ssh-key免…

swoole扩展安装--入门篇

对于php来说,swoole是个强大的补充扩展。这是我第3次写swoole扩展安装,这次基于opencloudos8系统,php使用8.2。 安装swoole扩展首先想到的是用宝塔来安装,毕竟安装方便,还能统一管理。虽然获得swoole版本不是最新的&am…

神经网络基础--什么是神经网络?? 常用激活函数是什么???

前言 本专栏更新神经网络的一些基础知识;案例代码基于pytorch;欢迎收藏 关注, 本人将会持续更新。 神经网络 1、什么是神经网络 人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络…

Pycharm,2024最新专业版下载安装配置详细教程!

先来一段官方介绍,PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能…

Edge浏览器打开PDF无法显示电子签章

Edge浏览器打开PDF无法显示电子签章 直接说处理方式 直接说处理方式 浏览器地址栏,输入 edge://flags/搜索:pdf禁用:New PDF Viewer效果如下

论 ONLYOFFICE:开源办公套件的深度探索

公主请阅 引言第一部分:ONLYOFFICE 的历史背景1.1 开源软件的崛起1.2 ONLYOFFICE 的发展历程 第二部分:ONLYOFFICE 的核心功能2.1 文档处理2.2 电子表格2.3 演示文稿 第三部分:技术架构与兼容性3.1 技术架构3.2 兼容性 第四部分:部…

算法——双指针

目录 前言一、什么是双指针二、算法特点三、算法实现步骤四、常见形式五、应用场景与示例六、优势与注意事项七、双指针算法动态图解八、经典例题[1. 回文判定](https://www.lanqiao.cn/problems/1371/learning/?page1&first_category_id1&name%E5%9B%9E%E6%96%87%E5%…

【简信CRM-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

burpsuite安装详细教程(非常详细)零基础入门到精通,收藏这篇就够了

BurpSuite是一款功能强大的集成化安全测试工具,专门用于攻击和测试Web应用程序的安全性。适合安全测试、渗透测试和开发人员使用。本篇文章基于BurpSuite安装及常用实操做详解,如果你是一名安全测试初学者,会大有收获! 前****言 …

使用亚马逊 S3 连接器为 PyTorch 和 MinIO 创建地图式数据集

在深入研究 Amazon 的 PyTorch S3 连接器之前,有必要介绍一下它要解决的问题。许多 AI 模型需要使用无法放入内存的数据进行训练。此外,许多为计算机视觉和生成式 AI 构建的真正有趣的模型使用的数据甚至无法容纳在单个服务器附带的磁盘驱动器上。解决存…

【Python】怎么创建一个新的conda环境,并在其中安装所需的软件包

最近在运行前同事留下的包的时候,遇到了numpy包和pandas包不匹配的问题,具体见前一篇:【Python】遇到pandas 和numpy版本不兼容怎么办?sharetypeblogdetail&sharerId143412274&sharereferPC&sharesourceMeggie35&…

优衣库在淘宝平台的全方位竞品分析与店铺表现研究:市场定位与竞争策略透视

优衣库品牌在淘宝平台的全方位竞品与店铺表现分析 一、品牌商品分析 1.商品列表与分类分析(数据来源:关键词商品搜索接口;获取时间:2024.08.30) 商品类别分布柱状图: 根据关键词商品搜索接口获取到的优衣…