数据填充技巧(精选3篇)
数据填充技巧 篇1
摘要:数据处理过程中经常会遇到不完备数据需要填充的问题,寻求简单有效的缺失数据填充方法非常重要。针对该情况,提出一种基于极限学习机ELM(Extreme Learning Machine)的缺失数据填充方法,通过极限学习机网络建模,建立需要填充的缺失属性与其他属性的非线性映射模型。实验结果表明:该方法具有非常好的填充效果。
关键词:极限学习机,缺失数据填充,UCI机器学习数据库
0 引言
在信息处理过程中,经常会遇到数据集不完整的情况,通常称之为缺失数据。数据缺失产生原因很多,如人为疏忽被遗漏、信息属性值不存在和客观条件难以采集等,数据缺失普遍发生在各个研究领域。处理缺失数据最常用的方法是丢弃数据中不完整的点,只采用数据中完整的点,用减少样本量换取信息的完备,但这样会浪费大量的采集资料,遗漏了隐藏在丢弃数据中的信息。特别是当样本容量较小时,丢弃数据会严重影响到数据的客观性和多样性。因此对缺失数据进行填充是一项非常重要的工作。
对缺失数据进行填充的传统方法有零填充、均值填充、热卡填充、回归填充和多重填充等[1,2,3]。零填充指的是将缺失值用零替代,但只有当缺失值近似为零时,零填充才能有较好的效果。均值填充指的是将缺失值用已知数据的平均值替换,这种方法也会产生有偏估计。热卡填充指的是在数据集中找到一个与它最相似的值,将缺失值用这个近似值替代,该方法比较耗费时间。K近邻填充是热卡填充的一种方法,它是找到数据集中与缺失数据的欧氏距离最小的K个点,用这K个点的平均值替换缺失值。回归填充指的是将缺失值用缺失数据的条件期望替代。多重填充是用一组近似值替换每个缺失值,再用标准的统计分析过程对多次替换后产生的若干数据进行分析、比较,得到缺失值的估计值。
极限学习机ELM是一种单隐层前馈神经网络(SLFN)学习算法,网络的输入权为随机给定,输出权则通过最小二乘法计算得到。整个训练过程一次完成,不需要迭代过程。与已知的BP算法和支持向量机等算法相比,具有执行过程简单、运行速度快且泛化性能好等特点。该算法已被广泛地应用到模式分类、回归问题[7]、图像识别[8,9]、高维数据的降维算法[10]等各个领域,均取得了非常好的效果。本文基于极限学习机提出一种新的缺失数据填充方法。
1 基于极限学习机的缺失数据填充方法
2004年,黄广斌等提出极限学习机算法[4,5,6],该算法只需要设置单隐层前馈神经网络的隐层节点个数,在算法执行过程中不需要调整网络的输入权和隐元的偏置,并产生唯一的最优解。
给定样本容量为N的样本(xi,yi),其中i≤N,xi∈Rn且yi∈Rm,xi是输入的样本值,yi是输出的期望值。隐层节点数为L的单隐层前馈神经网络可表示如下:
其中βi=(βi1,βi2,…,βim)T是输出外权,f(x)是激活函数,ωi和xj的内积,oj是输出的真实值,如图1所示。式(1)可表达成矩阵的形式如下:
其中O=(o1,o2,…,oN)T。
令O=y,其中y=(y1,y2,…,yN)T,则式(2)可表达成:
极限学习机算法的基本思想是:随机选取ωi和bi,然后利用β=Hy计算输出外权,其中H表示H的广义逆。利用正交投影法求H的广义逆可得:
为了权衡经验风险和结构风险,进一步提高网络的泛化性能,文献[11,12,13,14]研究了正则极限学习机,其数学模型为:
式中,误差‖ε‖2代表经验风险,‖β‖2代表结构风险,它来自于统计学中边缘距离最大化原理;而γ是两种风险的比例参数,用来权衡这两种风险。
求解上述模型,可得:
本文设计的基于极限学习机进行缺失数据填充的主要思想是:利用样本集中完备的样本进行极限学习机网络建模,建立需要填充的缺失属性与其他属性的非线性映射模型。例如,若需填充样本的缺失属性为第1个属性,则将第2个属性至第n个属性的值构造成输入向量,将第1个属性的值作为输出向量,利用数据集中的完备样本训练网络的外权矩阵β。最后,将缺失样本的数据代入网络,获得属性1的估计值。
该算法的具体步骤如下:
第1步根据完备样本的数目确定合适的隐层节点个数;
第2步利用完备样本,将缺失属性值作为输出值,其他属性的值作为输入值,通过极限学习机建立缺失样本中的缺失属性与其他属性的非线性映射模型,计算式(6)中的β;
第3步利用缺失样本的剩余属性值计算H,最后利用式(4)计算缺失属性值。
2 仿真实验
实验将本文的填充方法与零填充、均值填充、K近邻填充方法在广义平均绝对误差和聚类纯度两个指标上进行比较。
广义平均绝对误差(GMAD)可表达如下:
其中xij表示样本数据xi的第j个分量的真实值,x'ij表示样本数据xi的第j个分量的填充值,ximin表示样本数据xi中分量值最小的分量,ximax表示样本数据xi中分量值最大的分量,n0表示所有样本数据缺失分量的总和。广义的平均绝对误差表达式中误差被绝对化,不会出现正负相抵消的情况,能较好地反映填充值误差的实际情况。容易看出,广义的平均绝对误差值越小,填充值拟合得越好。
聚类纯度(Purity)[15]表示如下:
其中S={s1,s2,…,sk}表示数据集真实的聚类,s1表示落入s1中的样本数据,C={c1,c2,…,ck}表示人为给予的分类,c1表示落入c1中的样本数据,N为样本数据的数量。显然,聚类纯度越大意味着填充后的数据有效性越高。
本文所用的数据集来自UCI机器学习数据库的鸢尾属植物数据集、乳腺癌数据集、种子数据集、精液活力数据集和僧侣问题数据集。
(1)鸢尾属植物数据集由Fisher于1936年提供,数据集包含3个类别的鸢尾属植物,每个类别有50个数据。其中,第一类与第二、三两类是线性可分的,而第二类与第三类是非线性可分的。
(2)种子数据集由波兰科学院的农业研究所提供,该数据集包含3类小麦内核几何结构的测量值。实验者用X射线技术扫描种子内核,把成像图记录在13×18厘米的X射线柯达板上,并获取相关数据。
(3)乳腺癌数据集是由Ljublijana大学医学中心肿瘤研究所的Matjaz Zwitter和Milan Soklic提供。数据集包含2类:良性肿瘤和恶性肿瘤,每类分别为201个数据和85个数据。
(4)精液活力数据集是根据WHO 2010标准对100个志愿者的精液分析得到的数据,精液样本被分为正常与不正常两类。该数据集由Alicante大学计算机系的David Gil和生物系的Jose Luis Girela提供。
(5)僧侣问题数据集由Carnegie Mellon大学计算机学院的Sebastian Thrun提供给UCI机器学习数据库,通常被用于测试归纳算法。
实验中采用5-折交叉验证[16],数据集平均分成5份,其中4份作为训练数据集,另外1份作为测试数据集,轮流让其中的1份作为测试样本,其余4份作为训练样本,实验结果取平均值。
实验中依次将测试样本中的前若干个属性作为缺失属性;然后由完备样本(即训练样本),利用极限学习机算法建立缺失属性与其他属性之间的非线性映射关系;最后利用这个映射关系对测试样本进行填充。通过比较填充数据与真实数据的广义平均绝对误差和聚类纯度两个指标来评价填充数据的效果。
使用的仿真软件为Matlab R2013a,聚类算法采用Matlab模式识别工具箱中的kmeans函数。该实验环境为:Windows XP操作系统,AMD Athlon(tm)II X2 250 Processor 3.01 GHz,2 GB内存。
表1给出了四种填充方法在5个数据集上的广义平均绝对误差比较和实验数据的细节。由表1可见,对于鸢尾属植物数据集和种子数据集,在四种填充算法中,极限学习机填充方法得到的广义的平均绝对误差最小;对于乳腺癌数据集、精液活力数据集和僧侣问题数据集,极限学习机填充方法在多数情况下得到的广义的平均绝对误差最小,这意味着利用极限学习机填充方法得到的填充数据更接近真实值。
图2-图6给出了四种填充方法在5个UCI数据集上的聚类纯度比较。可以看出,对于鸢尾属植物数据集、种子数据集和乳腺癌数据集,在四种填充算法中,极限学习机填充方法得到的聚类纯度最高;对于精液活力数据集,四种方法取得的聚类纯度几乎相同;对于僧侣问题数据集,极限学习机填充方法在多数情况下得到的聚类纯度最高,这意味着利用极限学习机填充方法得到的填充数据更具有使用价值。综上所述,本文提出的极限学习机填充方法在多数情况下能取得比其他三种经典的填充方法更好的填充效果。
3 结语
本文提出了一种基于极限学习机的缺失数据填充方法,利用极限学习机建立缺失属性与其他属性之间的非线性映射关系,并利用这种映射关系进行缺失属性填充。零填充和均值填充执行过程简单、速度较快,但执行过程中没有进行充分的学习,填充效果较差。K近邻填充比零填充和均值填充的填充效果要好,但当样本容量较大时,由于要计算缺失样本中每个样本点与完备样本中每个样本点的欧氏距离,运算量很大,严重影响其运算速度。实验表明,新的填充方法是有效的。
数据填充技巧 篇2
Auto CAD是当今国内外最流行的软件之一 ,由于它具有支持微机环境、操作简便、兼容性良好、结构开放、便于二次开发等优点 ,所以在我国更加受到广大计算机辅助设计 (CAD)工作者的青睐 .在用 Auto CAD绘制图形的过程中 ,常常需要以某种图案填充一个区域 ,来形象地表达或区分构成物体的范围和特点以及构成物体的零件剖面结构大小和所使用的材料等 ,这种被称为“画阴影线”或“图案填充”的功能可以用 Auto CAD的 Hatch命令完成 . Hatch命令的使用需要一定的技巧 ,使用恰当可以大大提高绘图效率和图形的质量 .反之 ,将会耗费大量的时间和精力 ,要么阴影线超出指定的边界 ,要么在指定的边界内画不全阴影线或者画出的阴影线过密或过疏 ,那么问题的关键在哪里 ,技巧何在呢 ?
2 原理和技巧
用传统的手工方式画阴影线时 ,必须依赖绘图者的眼睛 ,并正确使用丁字尺和三角板等绘图工具 ,逐一画出每一条线 ,工作量很大 ,而且角度和间距都不太精确 ,影响画面质量 .然而使用 Auto CAD来进行图案填充就变得简单多了 ,只要定义好边界 ,系统就会自动进行填充 ,而问题的关键则是定义图案填充的边界区域 .剖面线的边界线必须是首、尾相连接的一条闭合线 ,同时要做到构成边界的图形实体应在端点处相交 ,若边界不是端点与端点相交则会产生错误的图案 ,如果图上的线需要超过相交点 ,则这条线必须画成两段 ,然后将其中的一段选为实体 ,这样才能正确地绘出图案 .例如现在要画图 1中左半部分的剖面图 ,此时选用“点选”和“W”或“C”方式选择剖面线的边界都不可能成功 .这是因为线段 AB和 FE分别都是一个实体 ,选择它们作为图案填充的边界 ,则它们不是边界与边界相交 ,剖面线边界 AIJFGHA不是一条首尾相连接的闭合线 ,因此 ,在这个区域内不能正确地进行图案填充 .为此 ,在画剖面线之前要先进行处理 .可使用“BREAK”(断开 )命令先将 AB线在 I点处断开 ,使其成为 AI、IB两段 ,将 FE线在 J点处断开使其成为 FJ、JE两段 ,用 AI、IB、FJ、JE代替线段 AB、FE,使 AIJFGH形成“封闭”的边界区域 ,如图 2 ,此时边界实体才能正确地相交在端点处 ,可利用选择目标方法中的“点选”选中AI、IJ、JF、FG、GH、HA,就可以在 AIJFGH内画出剖面线了
上述问题也可以这样解决 ,用“PLINE”将剖面线边界单独画出 ,剖面线绘制完成后再删去 PLINE线 ,会达到同样的效果 .仅仅定义好了边界线还不一定能够画出完全符合标准的剖面线 ,还要选择合适的比例因子及剖面线的旋转角度 ,否则画出的填充图案的线与线之间的间距不是过密就是过疏 .Auto CAD所有已预先定义好的图案都具有调整比例因子的能力 ,这样就可对定义好的图案进行间距的调整 ,以满足绘图的要求
Command:Hatch
Pattern(or name/ u, Style):Ansi3 1
Scale for pattern〈1 . 0 0 0〉:(按回车接受缺省值 )
Angle for pattern〈0〉:(按回车接受缺省值 )
Select objects:(选取要进行图案填充的区域 )
由此可见 ,当我们使用 Hatch命令时 ,所使用图案的比例因子值均为 1 . 0 0 ,即是原本定义时的真实样式 .然而 ,随着界限定义的改变 ,比例因子应作相应的改变 ,否则会使填充图案过密或者过疏,
AUTOCAD中图案填充操作的技巧
,
因此在选择比例因子时可使用下列技巧进行操作:
(1 )当处理较小区域的图案时 ,可以减小图案的比例因子值 ;相反地 ,当处理较大区域的图案填充时 ,则可以增加图案的比例因子值 ;
(2 )比例因子应恰当选择 ,比例因子的恰当选择要视具体的图形界限的大小而定 ,一般可按如下经验公式确定 :
比例因子 x=1 / 1 2 m,式中 :m为 y坐标缩放后的最大值;
(3 )当处理较大的填充区域时 ,要特别小心 ,如果选用的图案比例因子太小 ,则所产生的图案就像是使用 Solid命令所得到的填充结果一样 .这是因为在单位距离中有太多的线 ,不仅看起来不恰当 ,而且也增加了文件的长度;
(4)比例因子的取值应遵循“宁大不小”的原则 .相对图案填充的比例因子而言 ,剖面线的角度可以根据剖面区域中图案放置的方向来控制 .由前面的命令程序可知 ,在省略的情况下 , Hatch命令对任何图案都是以零角度来显示的。
如 Ansi3 1图样的角度是 45°,这是因为图案原来产生的就是 45°的倾斜角度 .图 4的 ABD.当输入任何不同于缺省值 0°的角度值时 ,都会依据该值旋转图案 ,就是说 ,如果一个图案原来即是以 45°设计的 ,例如 Ansi3 1 ,若输入一个新值 ,即表示此图案会以 45°为起始再旋转所指定的角度 .如图 4, BDC三角中的剖面图就是由三角 ABD中的剖面线旋转 90°的结果 .这样设计是很实用的 ,特别是在画装配图时 ,当所取的剖面包含多个不同零件时 ,使用不同图案的旋转角度是十分有用的 ,它可以区分不同的零件 ,使读者一目了然。
3 结束语
在画图形填充图案时 ,会遇到各种各样的图形 ,但无论图形多么复杂 ,只要掌握上述技巧 ,任何复杂图形的图案填充都会迎刃而解。
数据填充技巧 篇3
随着互联网、社交网络及电子商务技术的兴起和发展,数据正以前所未有的速度增长。大数据的研究和应用时代己经到来。在大数据的采集和传输过程中,每个环节都可能出现故障,导致很多大数据集中存在着大量的缺失。大数据的不完整性为大数据的分析和处理带来巨大的挑战。因此,不完整数据的填充对大数据的分析和处理具有重要的意义。
近些年,国内外研究人员提出了很多不完整数据填充方法。包括基于最大期望的数据填充算法叫基于模糊聚类的填充算法以及基于最近邻对象的填充算法等。这些算法在填充小规模数据集方面取得了显著的效果。然而在填充不完整大数据方面,精度急剧下降。这是由于大数据存在着丰富的信息维度,而传统的数据填充算法不能体现大数据的深度特征。
针对这个问题,本文提出一种基于深度学习的不完整大数据填充算法。
2填充自动编码机
本文构建的深度填充网络以填充自动编码机为基础模块,从完整数据子集中随机采取一部分数据对象作为实例训练填充自动编码机的网络参数。在构造填充自动编码过程中,使用选中的数据对象模拟缺失数据对象,随机地将每个实例数据对象的部分属性值置,模拟不完整对象作为填充自动编码机的输入,通过最小化重构数据与实例原型来训练网路参数。
根据随机梯度下降算法,每当从数据集中选择一个实例进行训练,填充自动编码机首先随机地选择该实例的.部分属性,将其属性值置。,得到一对数据,然后通过如下公式对自动编码机的权值进行一次更新。如此更新网络参数,直到整个网络趋于稳定。
3深度填充网络与数据填充
本文以填充自动编码机为基础模块,构建三层网络模型。每一层网络输出都将作为上一层网络的输入,最上层作为提取的特征输出。训练过程分为预训练和微调两个阶段。首先自下而上地进行逐层训练获得网络初始化参数,最终通过反向传播算法对全局参数进行微调。
为了获取网络逐层训练监督对象,首先利用实例数据作为输入构建叠加自动编码机,获得实例数据的两层特征。本文以未经处理的原始实例数据二作为网络输入,在最下层可获取第一层特征,把特征作为上一层网络的输入,获得第二层特征,该训练过程是局部的,即第二层网络更新本层的网络权重,对下层网络没有影响。通过这种方式可以初始化叠层网络参数,最后通过反向传播算法对网络全局参数进行微调。如此能够获得对应于原始数据实例的两层特征。
从数据中逐一取出实例对深度实例网络进行训练,每训练一次,对网络参数进行一次更新,直到整个网络趋于稳定,获得最终的网络参数。在获得网络参数之后,本文首先抽取不完整数据集中每个数据对象的深度特征。对于不完整数据对象二而言,首先将其缺失属性的属性值置。
4实验分析
为了验证本文提出的算法(DLDBI)的有效性,将本文提出的算法和两种填充算法FIMUS和DMI进行对比。本文采用的数据集采自数字家庭与无线传感网络实验室,数据集总量达到10U每个数据对象包含650个数值属性。我们首先人为地从数据集中删除一部分数据,模拟不完整数据集,在填充完成之后,将填充值与真实值进行比较,得到算法的填充精度。
本文人工制造两种缺失值,单模式缺失和多模式缺失。在单模式缺失中,每个数据对象只允许含有一个缺失值,多模式缺失则允许每个数据对象含有多个缺失值。本文分别从数据集中选择15%和10%的数据对象并删除这些数据对象的部分属性值,模拟缺失数据。 本文使用两个标准来衡量算法的填充精度。第一个标准被称标准,该标准用于衡量填充值与真实值的匹配程度, 对于任何一种缺失组合,本文提出的算法所得到的都明显高于其他两种算法。除此之外,随着数据缺失率的增大,算法FIMUS和DMI所得到的都在下降,即这两种算法的填充精度随着数据缺失率的增大面降低。而本文提出的算法的填充精度一直保持在一个很高的水平之上。因此,本文提出的算法的填充精度明显高于FIMUS和DMI。
对于任何一种缺失组合,本文提出的算法所得到的RMSE都明显低于其他两种算法。随着数据缺失率的增大,算法FIMUS和DM所得到的RMSE不断升高,即这两种算法的填充精度随着数据缺失率的增大而降低。而本文提出的算法的得到的RMSE一直低。因此,就RMSE而言,本文提出的算法的填充精度明显高于FIMUS和DMI。
本文提出的算法填充精度相对比较稳定。具体的说,当数据缺失率在1%到10%之间,值能够稳定的保持在。此外,对于任意一种缺失率而言,单缺失模式的填充精度明显高于多缺失模型的填充精度,这是因为多填充模式缺失数据大,对特征提取和还原造成的干扰高于单缺失模式。
5结束语