【论文阅读】An Experimental Survey of Missing Data Imputation Algorithms

论文地址:An Experimental Survey of Missing Data Imputation Algorithms | IEEE Journals & Magazine | IEEE Xplore

 

处理缺失数据最简单的方法就是是丢弃缺失值的样本,但这会使得数据更加不完整并且导致偏差或影响结果的代表性。因此,研究者提出了一系列填补方法,包括早期的简单统计填补方法、传统的机器学习填补方法和现代深度学习填补算法。

    早期的简单统计填补方法是使用训练数据中的统计值(例如平均值、中值、众数)或最相似的统计量来替换缺失值,例如均值填补(Mean imputation)、热卡填补(Hot deck imputation,HDI)、冷卡填补(Cold deck imputation,CDI)和k近邻填补(KNNI) 。第二类填补方法是在机器学习中建立一个预测模型来预测缺失值,例如XGBoost填补(XGBI)、MissForest填补(MissFI)、链式方程的多重填补(MICE)、单模型填补(IIM)、软填补(SI)、矩阵分解填补(MFI)、主成分分析填补(PCAI)、多层感知器填补(MLPI)、循环Sinkhorn填补(RRSI)等。相比之下,现代深度学习填补算法的灵感来自于深度生成模型的强大能力。它们要么丰富显式生成模型的先验或后验,例如深度自动编码器 (AE);要么利用对数似然概率产生隐式生成模型,例如生成对抗网络 (GAN)。总而言之,如图所示,目前填补算法可以分为三组,即统计填补方法、机器学习填补方法和深度学习填补方法。

1 统计填补方法

在早期的研究中,大多数研究人员都专注于基本的统计填补方法,包括基于统计的方法和基于相似度的方法。所有这些方法都属于单一填补,即用单个值来估算缺失值。

一)基于统计的方法

基于统计的填补方法通常利用统计值(例如平均值、中值、众数)来估算缺失值。均值填补(Mean imputation)方法[28]简单地用每个特征的所有观测数据的平均值、中值或众数来替换缺失数据。在包含缺失值的数据特征的情况下,用在该特征中观察到的值的平均值来填充缺失值。而在分类特征的情况下,则使用出现频率最高的值而不是平均值来代替缺失的值。

二)基于相似性的填补方法

基于相似性的填补方法使用一个或多个相似样本的值的平均值来估计缺失值,如图3.2所示。具体来说,基于相似性的填补方法最初计算每个样本对之间的欧几里得距离。在距离计算过程中,缺失值被视为零。然后,对于样本xi,根据xi的每个缺失值(例如,特征fj中缺少xij),它从不完整数据矩阵X中选择xi的K个最近样本,用{x1,…,xK}表示,这样它们都可以观测到在特征fj上的值。接着,它聚合所选样本在特征fj上的观测值以估算缺失值xij。重复该过程,直到成功估算所有缺失值。具体的基于相似性的填补填补方法如下:

图3.2 基于相似度的插补说明

1KNNI。K近邻填补(K nearest neighbor imputation,KNNI)是一种典型的基于相似性的方法,缺失值可以通过最近邻的样本的值聚合而成。KNNI可以采用所有最近邻得值的加权平均值,其中与邻居的距离作为其权重,因此距离越近,聚合的权重越大。

2HDI。热卡填补(Hot deck imputation,HDI)是KNNI的一种变体,它使用来自最相似样本的相应值来估算缺失值。如果所有样本都包含缺失值,则选择缺失值数量最少的最近样本来估算缺失值。

3CDI。与KNNI和HDI不同,冷卡填补(Cold deck imputation,CDI)除了需要原始数据集外,还需要额外的补充数据集来进行填补。具体来说,CDI首先计算原始数据集中的样本与补充数据集中的样本之间的欧氏距离。然后,对于每个不完整的样本,CDI 将缺失值替换为补充数据集中最相似样本对应的值。重复此过程,直到所有缺失值都被估算。

以上所有的统计填补方法总结在表2中。在预测类型中,“一对一”表示为每个不完整特征构建至少一个预测模型,在填补类型中,“单一填补”(single imputation)是指采用一定方式,对每个缺失值只构造一个合理的替代值,并将其插补到原缺失数据的位置上,替代后构造出一个完整的数据集。

表2 统计填补方法的比较

类别

方法

模型

预测类型

填补类型

核心

统计

Mean

统计

一对一

单一填补

对每个特征使用全局均值

统计

KNNI

相似性

一对一

单一填补

在每个特征上使用近邻样本的均值

统计

HDI

相似性

一对一

单一填补

使用最相似样本的对应值

统计

CDI

相似性

一对一

单一填补

使用补充数据集中最相似样本的值

2 机器学习填补方法

与早期的统计填补方法相比,传统的机器学习填补方法解决方案是训练一个用于缺失值填补的预测模型。根据所使用的预测模型,我们可以进一步将现有的机器学习填补方法分为四个子组,即基于树的填补方法、基于回归的填补方法、基于压缩的填补方法和基于浅层神经网络(SNN)的填补方法。基于树的填补方法为每个包含缺失值的不完整特征构建一个决策树模型,例如XGBoost填补(XGBI)和MissForest填补(MissFI);基于回归的填补方法使用具有多重填补的线性回归模型来估计缺失值,例如链式方程的多重填补(MICE)和单模型填补(IIM);基于压缩的填补方法为整个不完整数据集构造一个预测模型(即数据压缩模型),例如软填补(SI)、矩阵分解填补(MFI)和主成分分析填补(PCAI);基于SNN的填补方法利用一个浅层神经网络在一个不完整的特征中估算缺失值,例如多层感知器填补(MLPI)和循环Sinkhorn填补(RRSI)。

一)基于树的填补方法

在基于树的填补方法中,它为涉及缺失值的每个特征构建了一颗决策树模型,例如随机森林和XGBoost。与统计填补方法类似,基于树的方法也是单一值填补,即用一个值对每个缺失值进行填补。它以掩码矩阵M 的不完整数据矩阵 X 作为输入,并返回最终估算矩阵X。最开始,X中的缺失值是通过均值填补估算的,估算矩阵存储在矩阵X0中。然后,它开始以迭代方式估算缺失值。参数 c 表示当前迭代时间,cmax 是迭代次数的最大数量。Xc用于记录矩阵 X 的当前估算矩阵。在每次迭代中,算法遍历每个具有缺失值的特征fj。Xcoj收集用于从X中观察到的特征fj的样本xi (即掩码矩阵M中对应位置的mij为1)形成一个新的训练数据集,使用训练数据集Xcoj在特征fj上训练预测模型∅j。然后使用预测模型∅j 来估算 X 中特征fj上的缺失值。此后,Xc通过将上述估算值合并到其中来继续进行更新,不断的进行重复,直到终止条件。具体的关于树的填补方法如下:

1XGBI。XGBoost填补方法(XGBI)遵循上述处理过程并且利用XGBoost作为预测模型。如果新估算Xc和先前估算 Xc−1 之间的平均差异小于给定阈值,则满足 XGBI给定的终止条件。

2MissFI。MissForest填补(MissFI)也是基于树的填补方法,也遵循上述的处理过程,并且MissFI利用随机森林作为预测模型。当它的新估算的估算矩阵Xc和先前估算的估算矩阵Xc−1之间的平均差值第一次出现增加时即可终止。

二)基于回归的填补方法

与基于树的填补方法不同,基于回归的填补方法为每个包含缺失值的特征构建多个预测模型,即线性回归模型。具体的回归填补方法如下:

1MICE。链式方程法(MICE)的多元填补是一种典型的多重填补方法,它以多次线性回归的结果的平均值来估计缺失值。在基于树的填补方法中的预测模型∅对应于MICE中的线性回归模型,MICE并不是通过多次迭代逐步输入数据来进行填补,而是多次独立地进行填补,最后聚合多个填补结果得到最终的估算矩阵X。

2IIM。通过单个模型 (IIM)  进行填补首先需要训练一组回归模型,然后使用xi的最近的样本(在特征fj中能观察到的其他的样本值)的回归模型来估算样本xi的每个缺失分量xij。它也是一种的基于回归的多重填补方法,具体来说,其流程如下:对于每个特征fj,它基于xi的最近邻的训练集(即在 X 中的特征fj上能观察到其他的样本值),根据特征fj上观察到的值为每个样本xi训练一组回归模型。对于样本xi,对应的回归模型的数量最多为其最近邻的最大数量。以图3.3所示的样本xi为例,对于其缺失值xij,IIM 首先找到在特征fj上xi的最近邻样本(即x1、x2 和 x3)的最佳回归模型(即∅1j、∅2j和 ∅3j。然后,用这些不同的最优回归模型预测结果xij1、xij2和xij3。最后,IIM 聚合这些回归结果以获得估算值xij。

图3.3 IIM填补方法示意图

三)基于压缩的填补方法

与其他三种机器学习填补方法不同,基于压缩的填补方法仅为整个不完整数据集构建一个数据压缩模型。基于压缩的填补的基本框架如图3.4所示。它由两个步骤组成,即压缩(步骤1)和重建(步骤2)。具体来说,在压缩步骤中,基于压缩的填补方法利用数据压缩技术(例如奇异值分解)来学习权重矩阵Wd×dt,然后将数据矩阵 X 压缩为潜在表示Tn×dt,即

其中dt是潜在维度,且dt<d。在重建步骤中,使用Wd×dt重建Tn×dt,并获得重构矩阵X。基于压缩的填补的损失函数ℒc是X中观测值与相应值X之间的重建误差,表示为:ℒc=𝔼M⊙X−X2= 𝔼M⊙X−Tn×dt∗Wd×dtT2

其中⊙表示同或运算。通过重构误差损失ℒc,基于压缩的填补方法迭代更新权重矩阵Wd×dt和重构矩阵X。重复该过程,直到迭代时间达到最大迭代次数。最后,估算矩阵X可由下式计算而出:X=M⊙X+(1−M)⊙X

图3.4 基于压缩的填补方法示意图

基于压缩的填补方法具体如下:

1SI。软填补方法 (SI)  是一种基本的基于数据压缩的填补方法,它通过利用阈值进行奇异值分解(SVD)对给定阈值的数据矩阵 X 进行迭代更新,这样SI就能得到一组具有不同阈值的估算矩阵X,最终就可以使用最优估算矩阵X来估算X。

2MFI。矩阵分解填补 (MFI)  采用潜在因素模型将不完整的数据矩阵 Xn×d压缩为两个小矩阵,即Un×p和Vd×pT,其中p远小于 n 和 d。于是这个算法的主要挑战就是推导出Un×p和Vd×pT。具体来说,MFI最初将X中缺失的分量替换为零,然后通过最小化来自X 中的观测值与来自Un×p和Vd×pT的相应预测值之间的平均差异来迭代优化Un×p∗Vd×pT,直到平均差异小于给定的阈值。同时,迭代时间受cmax的限制。最后,估算矩阵X可由下式计算而出:X=M⊙X+1−M⊙Un×p∗Vd×pT
3PCAI。主成分分析填补(PCAI) 使用前几个主成分来迭代填补缺失值并进行单一估算。具体来说,在每次迭代中,PCAI首先通过SVD[42]来计算特征值的特征向量对,然后根据特征值估算方差,利用所需方差的特征向量(即主成分)重建数据矩阵。接下来,PCAI计算新重构矩阵X在观测值上的重构误差,更新缺失值。一旦重建误差低于指定的容差,迭代就会停止。最后,根据 X=M⊙X+1−M⊙X,原始数据矩阵 X 由最后一个重构矩阵 X 估算。

四)基于SNN的填补方法

与基于树的填补方法模型类似,这种填补模型利用浅层神经网络 (SNN)为每个不完整特征构建一个预测模型。具体填补方法如下:

1MLPI。多层感知器填补方法(MLPI) 为每个不完整特征构建一个多层感知器 (MLP) 模型来估算缺失值,如图 3.5所示。具体来说,对于每个不完整的特征fj,X 中的完整样本收集在Xcj中。然后,MLPI 用Xcj迭代训练 MLP 模型∅j。最后,MLPI 使用经过训练的模型∅j 来估计 X 中不完整样本xi的特征 fj上的缺失值(如xij)。特别的,根据要估算的数值和分类特征的性质,在训练过程中需要最小化不同的误差函数,如平方误差和交叉熵误差。

图3.5 MLPI填补方法示意图

2RSSI。与MLPI类似,循环Sinkhorn填补(RRSI)使用浅层MLP作为每个不完整特征的预测模型。具体来说,对于每个不完整的特征fj,RRSI 首先用观察到的分量的平均值加上少量噪声来初始化其他不完整特征中的缺失值。然后,它从完整的样本中依次提取批次,并使用批次之间的Sinkhorn散度作为损失函数迭代训练MLP模型∅j。最后,RRSI 还利用经过训练的 MLP 模型∅j来估算 fj中相应的缺失分量。

以上所有的机器学习方法总结在表3中,其中在预测类型中,“一对一”表示为每个不完整特征构建至少一个预测模型,“一对多”表示为整个不完整数据集构建一个预测模型。在填补类型中,“单一填补”是指采用一定方式,对每个缺失值只构造一个合理的替代值,并将其插补到原缺失数据的位置上,替代后构造出一个完整的数据集。“多重填补”是指创建数据集的多个副本,并对每个副本使用不同的估计方法来估算缺失值。

表3 机器学习填补算法的比较

类别

方法

模型

预测类型

填补类型

核心

机器学习

XGBI

决策树

一对一

单一填补

用Boosting进行集合学习

机器学习

MissFI

决策树

一对一

单一填补

用随机森林模型进行集合学习

机器学习

MICE

回归

一对一

多重填补

多元线性回归

机器学习

IIM

回归

一对一

多重填补

将线性回归与 KNNI 结合起来

机器学习

SI

压缩

一对多

单一填补

使用多个阈值进行奇异值分解

机器学习

MFI

压缩

一对多

单一填补

典型矩阵因式分解与潜在模型

机器学习

PCAI

压缩

一对多

单一填补

带有缺失值估算的广义 PCA

机器学习

MLPI

SNN

一对一

单一填补

在每个特征上学习带有回归模型的MLP

机器学习

RRSI

SNN

一对一

单一填补

学习对每个特征进行最佳传输的 MLP

3 深度学习填补方法

在本节中,我们将介绍现代深度学习填补算法,其中包括基于自动编码器 (AE) 的算法和基于生成对抗网络 (GAN) 的算法。

一)基于AE的填补方法

基于自动编码器(AE)的填补的基本框架如图3.6所示。它以不完整的数据矩阵X和相应的掩码矩阵M作为输入。AE的结构由两个模块组成,即编码器和解码器。编码器模块将输入数据压缩为潜在表示,而解码器模块将潜在表示重构为与输入数据矩阵 X 相似的输出X。

图3.6 基于 AE 的填补架构

基于 AE 的填补算法中的编码器和解码器都是通过最小化损失函数 ℒAE来进行训练,即 X 中的观测值与 X中的相应生成值之间的重建误差(用ℒrec表示),其中ℒAE=ℒrec=𝔼M⊙X−X2,X是解码器的输出。最后,估算矩阵X=M⊙X+(1−M)⊙X。具体的基于AE的填补方法如下:

1MIDAE。去噪自编码器多重填补方法(MIDAE)是一种基于深度去噪自编码器(DAE)的多重填补方法。DAE 是基本 AE 的扩展,为了迫使隐藏层发现更好的特征并防止它只简单地进行学习,DAE 训练自动编码器从不完整数据集开始重建输入。MIDAE 多次运行 DAE 模型(次数用 c 表示),每次运行都有一组不同的随机初始权重,以完成多重填补。由于DAE模型在初始化时需要完整的数据,因此MIDAE在训练之前用均值填补来估算缺失值。在训练 DAE 模型时,MIDAE 首先使用随机均匀分布的权重来初始化 DAE。然后,训练阶段从随机损坏过程开始,该过程将部分数据随机设置为零。它的目标函数也是最小化 X 中的原始观测值与 DAE 生成的相应值之间的重构误差。最终估算矩阵X是通过对DAE模型导出的c个估算矩阵求平均值得到的。

2VAEI。首先,变分自动编码器 (VAE)与基本 AE 类似,两者都由编码器和解码器组成。编码器将输入数据映射到潜在分布中(用Rl表示),而解码器将潜在分布映射回数据空间。与 AE 不同,VAE 通过在潜在分布上施加先验来规范编码器,用p(Rl)表示,其中Rl~𝒩(0,1)。变分自动编码器填补方法 (VAEI)使用 VAE 模型来执行单值填补。它由两个阶段组成,模型训练阶段(使用初始估算数据进行训练 VAE)和迭代填补阶段(使用经过训练的 VAE 迭代地估算缺失的部分)。在训练阶段,VAEI 首先将 X 中的缺失值替换为零。然后,它在给定迭代时间内用估算的 X 迭代训练 VAE 模型。VAE的目标函数是最小化观测向量上的重构误差ℒrec和正则化编码器的特殊先验正则化项ℒprior的总和,即

ℒVAE=ℒrec+ℒprior

其中ℒprior=DKL(q(Rl|X )||𝒩0,1),其中DKL是 Kullback-Leibler 散度,q(Rl|X )是编码器的输出。在迭代填补阶段,VAEI 将 X 中的缺失值替换为零。然后,它使用经过训练的 VAE 模型预测的值迭代地估算 X 中的缺失值。在每次迭代中,最后一个估算矩阵X首先被送入训练好的 VAE 模型中,该模型会输出一个新的重构矩阵。然后,VAEI根据观察到的分量计算最后一个估算矩阵和新重构矩阵之间的重构误差,从而更新缺失值。一旦重建误差低于指定阈值,迭代就会停止,或者达到最大迭代次数时间而停止。

3HI-VAE。异构不完全 VAE 模型 (Heterogeneous-incomplete VAE model,HI-VAE)是一个基于 VAE 的单值填补的通用模型。它引入了一个输入过滤编码器来处理缺失数据,首先用零替换 X 中的缺失值,然后通过利用不同数据类型之间的不同似然函数来处理异构数据,从而构建解码器模型。此外,为了捕获所有特征之间的统计依赖关系,HI-VAE 利用一个简单的深度神经网络来输入潜在特征从而生成中间特征。在训练模型时,HI-VAE 使用证据下界(ELBO)来优化编码器和解码器的参数,这些参数仅在观察到的值上计算。最后,缺失值由经过训练的 HI-VAE 模型估算。

4MIWAE。缺失数据重要性加权自动编码器模型 (MIWAE)是重要性加权自动编码器 (IWAE)的广义版本。IWAE 是一个生成模型,具有与 VAE 相同的架构,它引入了一种重要性加权策略来优化 VAE 的目标函数。在 IWAE 中,编码器模型使用多个样本来近似后验,这对复杂后验进行建模来说会更加灵活。与 IWAE 不同,MIWAE 的目标函数只关注具有单值填补的观察部分。最后,原始矩阵 X 的缺失值由经过训练的 MIWAE 预测。

二)基于GAN的填补方法

生成对抗网络 (GAN)为两方构建了一个对抗训练架构,即用生成器(用 G 表示)和判别器(用 D 表示)来解决极小极大优化问题。生成器尽可能地生成接近真实数据分布的数据,而判别器尽可能正确地区分生成的数据和真实数据之间的差异。基于 GAN 的填补方法的一般架构如图3.7所示。对于生成器 G,其输入包括原始数据矩阵 X、记录数据缺失状态的相应掩码矩阵 M 和噪声 z。生成器 G 为 X 中的缺失值生成一系列值(尽可能接近真实值分布),以欺骗新更新的判别器。相比之下,判别器D 的输入由估算矩阵X(由生成器 G 产生)和原始数据矩阵 X 组成,鉴别器 D 的目的就是将估算值与真实值区分开来。

图3.7基于 GAN 的填补架构

换句话说,在基于 GAN 的填补方法中,训练判别器 D 来最大化正确预测 M 的概率,而训练生成器 G 来最小化判别器 D 预测 M 的概率。因此,基于 GAN 的填补方法的损失函数,用ℒGAN表示,通常可以定义为

ℒGANG,D=𝔼M⊙logDX+(1−M)⊙log⁡(1−DGX,z)

其中DX表示判别器对 X 中数据的估计概率。因此,与标准GAN相同,基于GAN的填补方法的目标函数可以定义为极大极小问题,即minGmaxDℒGANG,D。具体的基于GAN的填补方法如下:

1GINN。图填补神经网络(GINN)是一种在 GAN 结构基础上进行单值填补的生成模型。对于 GINN 生成器来说,最基本的步骤是将每个样本编码为一个节点,从而构建基于流形正则化的相似性图。然后,在相似性图上使用图卷积去噪自编码器。它是通过最小化观测值的重构误差来训练的。由于生成器必须骗过判别器Dg(与标准 GAN 中的判别器相似)并同时最小化重构误差,因此其损失函数ℒGg定义为

ℒGg=𝔼M⊙CgX,GgX,zg−(1−M)⊙DgGgX,zg

其中zg是Gg的噪声。对于 X 的特征fj上的每个观察值xij (即掩码矩阵M中对应位置的mij为1),Cg定义为:

Cgxij,xij=β∗xij−xij2 fj是数值型 β−1∗xij∗logxij fj是类别型

其中xij=Ggxij,zg,β是数据集数值特征和分类特征之间的比率的超参数。最终估算矩阵中的缺失值由经过训练的生成器Gg预测。受 GAN 中的判别器的启发,GINN 利用前馈网络作为判别模型Dg进行学习,将估算值与真实观测值区分开来,从而提高图卷积去噪自编码器的填补性能。因此,判别器的损失函数ℒDg表示被定义为:

ℒDg=𝔼(1−M)⊙DgGgX,zg−M⊙DgX

GINN通过对抗过程增强了图卷积去噪自编码器模型,同时训练判别器和图卷积去噪自编码器模型。

2GAIN。与标准GAN类似,生成对抗网络(GAIN)也由一对生成器(用GA表示)和判别器(用DA表示)组成,这两个都被建模为全连接神经网络,同时它使用小批量策略以迭代的方式来解决极小极大最优化问题。具体来说,在 GAIN 中,生成器GA最小化更新的判别器DA预测M的概率,并为整个数据 X 输出一个矩阵X(用GA(X ,za))。在训练GA 时,GA生成的矩阵X 也应该接近 X 中的真实值。也就是说,生成器GA的损失函数可以定义为

ℒGA=𝔼α∗M⊙CaX,GAX,za−(1−M)⊙logDAGAX,za,H

其中za是GA的噪声,α是超参数。对于 X 的特征fj上的每个观察值xij (即掩码矩阵M中对应位置的mij为1),Ca定义为:

Caxij,xij=xij−xij2 fj是数值型 −xij∗logxij fj是类别型

其中xij=GAxij,za,然后训练GA以最小化ℒGA。另一方面,GAIN 将生成器GA固定优化判别器 DA。判别器用于区分哪些值是观测值哪些值是估计值,也就是说,判别器是最大化正确预测 M 的概率。此外,GAIN 提供了一个提示矩阵,用 H 表示。DA使用提示矩阵 H 将注意力集中在某些缺失值的填补精度上,从而驱动GA准确地学习唯一的真实数据分布。因此,DA的损失函数ℒDA定义为:

ℒDA=−𝔼M⊙logDAX,H+(1−M)⊙log(1−DAGAX,za,H)

最后,生成器GA和判别器DA都在具有损失函数的最大最小化过程中中同时训练。

    综上所述,这些深度学习填补方法如表4所示。其中在预测类型中, “一对多”表示为整个不完整数据集构建一个预测模型。在填补类型中,“单一填补”是指采用一定方式,对每个缺失值只构造一个合理的替代值,并将其插补到原缺失数据的位置上,替代后构造出一个完整的数据集。“多重填补”是指创建数据集的多个副本,并对每个副本使用不同的估计方法来估算缺失值。

表4 深度学习填补算法的比较

类别

方法

模型

预测类型

填补类型

核心

深度学习

MIDAE

AE

一对多

多重填补

广义DAE

深度学习

VAEI

AE

一对多

单一填补

广义VAE

深度学习

HI-VAE

AE

一对多

单一填补

用于异构数据填补的广义VAE

深度学习

MIWAE

AE

一对多

单一填补

考虑观察数据加权的广义IWAE

深度学习

GINN

GAN

一对多

单一填补

在相似性图上使用图卷积算法AE

深度学习

GAIN

GAN

一对多

单一填补

带有提示矩阵和噪声的对抗训练

实验

数据集:

总共15个基准数据集,使用了三种数据类型

(i) 数值数据集仅包含数值特征(简称 NumFs),包括 EEG、Abone、Wireless、Yeast、Balance、Valley 和 Wine。

(ii) 分类数据集仅包含分类特征(简称 CCatFs),包括 Connect、Ches、Letter、Turkiye、Car 和 Phishing。

(iii) 混合类型数据集包含数值和分类特征,包括 Anuran 和 Heart

指标:

第一个是平均均方根误差(ARMSE),它使用均方根误差(RMSE)进行数值特征,将准确度误差(AR)用于分类特征。ARMSE越小,填补效果越好。

第二个是利用平均绝对误差(MAE)进行数值特征估计,AR用于分类特征,AMAE越小,填补效果越好

实验一:在MCRA机制下,不同数据类型对填补算法的影响:

在数值、分类和混合类型数据集中,相应的实验结果如表7所示,其中Avg-num/cat/mix行分布表示数值、分类、和混合类型数据集的平均结果。从中可以观察到,所有的填补方法在数值数据集中都比在分类数据集中具有更高的填补精度(较小的ARMSE/AMAE值)。

我们可以进一步观察到,对于统计方法,在大多数情况下,KNNI 优于均值插补。在机器学习方法中,RRSI 优于所有其他方法。此属性归因于有效的 MLP 模型和 RRSI 的有用 Sinkhorn 散度损失函数。然而,MICE、IIM、MLPI 和 RRSI 在计算上是不可行的,并且由于执行时间长(超出接受范围),一些大型高维数据集中没有相应的结果。这是因为,所有这些方法都具有很高的复杂性,为每个不完整的特征构建至少一个预测模型。我们还发现,SI 和 MFI 不是很有效,尤其是与其他机器学习方法相比。关于深度学习算法,VGAIN、GAIN 和 MIWAE 属于第一类。虽然 MIWAE 非常昂贵,但即使是在相对较大的高维数据集上也没有工作。总之,基于 SNN 的方法和一些深度学习技术在插补问题上的准确率高于其他方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bash编程 数组和for循环的应用

bash编程 数组和for循环的应用 1、问题背景2、bash 定义数组3、for循环遍历输出数组所有元素4、编写bash脚本输出每个端口是否在监听状态 1、问题背景 linux服务器开机后&#xff0c;需要检查一组端口是否在监听&#xff0c;以便判断这些端口对应的服务是否在运行。可以考虑使…

别再让假的fiddler教程毒害你了,来看这套最全最新的fiddler全工具讲解

fiddler界面工具栏介绍 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; &#xff08;1&#xff09;WinConfig&#xff1a;windows 使用了一种叫做“AppContainer”的隔离技术&#xff0c;使得一些流量无法正常捕获&#xff0c;在 fiddler中点击 WinConfig…

轻巧高效的剃须好工具,DOCO黑刃电动剃须刀上手

剃须刀大家都用过&#xff0c;我比较喜欢电动剃须刀&#xff0c;尤其是多刀头的悬浮剃须刀&#xff0c;感觉用起来很方便&#xff0c;剃须效率也很高。最近我在用一款DOCO小蔻的黑刃电动剃须刀&#xff0c;这款剃须刀轻巧易用&#xff0c;而且性价比超高。 相比于同类产品&…

深度盘点:100 个 Python 数据分析函数总结

经过一段时间的整理&#xff0c;本期将分享我认为比较常用的100个实用函数&#xff0c;这些函数大致可以分为六类&#xff0c;分别是统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。 技术交流 技术要学会交流、分享&#xff0c;不建议…

两个mongo表,A和B,以A中的_id记录的为准, 删掉B表中A表中没有的记录

可以使用 MongoDB 的聚合管道和 $lookup 操作符来实现这个需求。以下是一个示例的查询语句,假设集合 A 和集合 B 分别对应表 A 和表 B: db.B.aggregate([{$lookup: {from: "A",localField: "_id",foreignField:

单片机复位电路

有时候我们的代码会跑飞,这个时候基本上是一切推到重来.”推倒重来”在计算机术语上称为复位.复位需要硬件的支持,复位电路就是在单片机的复位管脚上产生一个信号&#xff0c;俗称复位信号.这个信号需要持续一定的时间,单片机收到该信号之后就会复位,从头执行。 复位原理: 那么…

【工业智能】Solutions

各类问题对应的解决方案 工艺参数推荐APC 排产调度智能算法强化学习 运筹优化空压机群控 预测 工艺参数推荐 APC 排产调度 智能算法 遗传算法 强化学习 DDQN 运筹优化 空压机群控 MIP混合整数规划 能耗优化 预测 电池容量预测 时序预测&#xff0c;回归预测 点击剩余…

【Vue】Vue3 配置全局 scss 变量

variables.scss $color: #0c8ce9;vite.config.ts // 全局css变量css: {preprocessorOptions: {scss: {additionalData: import "/styles/variables.scss";,},},},.vue 文件使用

创建一个带有背景图层和前景图层的渲染窗口

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example demo解决问题&#xff1a; 创建一个带有背景图层和前景图层的渲染窗口&#xff0c;知识点&#xff1a;1. 画布转image&#xff1b;2. 渲染图层设置&#xff1b;3.…

.NET生成微信小程序推广二维码

前言 对于小程序大家可能都非常熟悉了&#xff0c;随着小程序的不断普及越来越多的公司都开始推广使用起来了。今天接到一个需求就是生成小程序码&#xff0c;并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码&#xff0c;扫码这种二维码就可以进入小程序。为了…

Python二叉树用法介绍

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 二叉树是一种常见的数据结构&#xff0c;具有树形结构&#xff0c;每个节点最多有两个子节点。Python中有多种方式来表示和操作二叉树&#xff0c;本文将介绍二叉树的基本概念、构建、遍历和一些常见操作&#x…

Opencv-C++笔记 (19) : 分水岭图像分割

文章目录 一、基于距离变换与分水岭的图像分割1、图像分割2、距离和变换与分水岭距离变换常见算法有两种分水岭变换常见的算法 3、距离变换API函数接口4、watershed 分水岭函数API接口步骤 5、代码 一、基于距离变换与分水岭的图像分割 1、图像分割 图像分割(Image Segmentat…

A start job is running for Hold unt…s up (1d 18h 52min 25s / no limit) 如何去掉

在host串口里一直出现打印 A start job is running for Hold unt…s up (1d 18h 52min 25s / no limit) 这个是有一个进程一直在执行中&#xff0c;那么是什么呢&#xff1f;因为我的host通过SSH连接后就可以进入host shell界面了。那这个线程是什么程序导致的呢&#xff1f; …

最透彻HTTPS

Why HTTPS 我们先来看看HTTP。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;超文本传输协议&#xff0c;是一种用于分布式、协作式和超媒体信息系统的应用层协议&#xff0c;可以说 HTTP 是当代互联网通信的基础。 但是&#xff0c;HTTP 有着一个致命的缺陷&…

位运算总结

文章目录 &#x1f348;1. 基础位运算&#x1f34c;2. 给一个数n&#xff0c;确定它的二进制表示中的第x位是0还是1&#x1f34f;3. 将一个数n的二进制表示的第x位修改成1&#x1f353;4. 将一个数的n的二进制表示的第x位修改成0&#x1f954;5. 位图的思想&#x1fad2;6. 提前…

Linux如何查找某个路径下大于1G的文件

find 命令可以用于在 Linux 或 macOS 系统中查找文件和目录。如果你想查找大于1GB的文件&#xff0c;可以使用 -size 选项结合 参数。以下是一个示例&#xff1a; find /path/to/search -type f -size 1G这里的 /path/to/search 是你要搜索的目录的路径。这个命令将查找该目录…

算法基础二

回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 示例 1&#xff1a; 输入&#xff1…

Co-DETR:DETRs与协同混合分配训练论文学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2211.12860.pdf 代码地址&#xff1a; GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案&#xff0c;即Co-DETR&#xff0c;以从多种标…

你要的fiddler快捷键全部在这里了,学最全的快捷键,做最快的IT程序员

一、常用三个快捷键 ctrlX :清空所有记录 CtrlF&#xff1a;查找 F12&#xff1a;启动或者停止抓包 使用 QuickExec Fiddler2 成了网页调试必备的工具&#xff0c;抓包看数据。Fiddler2自带命令行控制。 fiddler 命令行快捷键&#xff1a;ctrl q &#xff0c;然后 输入 help…

sqli-labs靶场详解(less25/25a-less28/28a)

在SQL注入过程中难点就是判断注入点 只要注入点确定了 获取数据库数据的过程就是复制 从这关开始 只进行判断注入点了和代码逻辑分析了 因为注入操作太简单了&#xff08;不演示了&#xff09; 目录 less-25 less-25a less-26 less-26a less-27 less-27a less-28 less-…