还剩6页未读,继续阅读
文本内容:
数据分析如何处理数据缺失问题造成数据缺失的原因在各种实用的数据库中,属性值缺失的情况时常发全甚至是不可避免的因此,在大多数情况下,信息系统是不完备的,或者者说存在某种程度的不完备造成数据缺失的原因是多方面的,主要可能有以下几种1)有些信息暂时无法获取例如在医疗数据库中,并非所有病人的所有临床检验结果都能在给定的时间内得到,就导致一部分属性值空缺出来又如在申请表数据中,对某些问题的反映依赖于对其他问题的回答2)有些信息是被遗漏的可能是因为输入时认为不重要、忘记填写了或者对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障、一些人为因素等原于是丢失了3)有些对象的某个或者某些属性是不可用的也就是说,对于这个对象来说,该属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入状况等4)有些信息(被认为)是不重要的如一个属性的取值与给定语境是无关的,或者训练数据库的设计者并不在乎某个属性的取值(称为dont-care value)o5获取这些信息的代价太大6系统实时性能要求较高,即要求得到这些信息前迅速做出判断或者决策处理数据缺失的机制在对缺失数据进行处理前,了解数据缺失的机制和形式是十分必要的将数据集中不含缺失值的变量属性称为彻底变量,数据集中含有缺失值的变量称为不彻底变量,Little和Rubin定义了以下三种不同的数据缺失机制1彻底随机缺失Missing Completelyat Random,MCAR□数据的缺失与不完全变量以及彻底变量都是无关的2随机缺失Missing at Random,MAR数据的缺失仅仅依赖于彻底变量3非随机、不可忽略缺失Not MissingatRandom,NMAR,or nonignorableo不彻底变量中数据的缺失依赖于不彻底变量本身,这种缺失是不可忽略的空值语义对于某个对象的属性值未知的情况,我们称它在该属性的取值为空值null valueo空值的来源有许多种,因此现实世界中的空值语义也比较复杂总的说来,可以把空值分成以下三类1不存在型空值即无法填入的值,或者称对象在该属性上无法取值,如一个未婚者的配偶姓名等2)存在型空值即对象在该属性上取值是存在的,但暂时无法知道一旦对象在该属性上的实际值被确知以后,人们就可以用相应的实际值来取代原来的空值,使信息趋于彻底存在型空值是不确定性的一种表征,该类空值的实际值在当前是未知的但它有确定性的一面,诸如它的实际值确实存在,总是落在一个人们可以确定的区间内普通情况下,空值是指存在型空值3)占位型空值即无法确定是不存在型空值还是存在型空值,这要随着时间的推移才干够清晰,是最不确定的一类这种空值除填充空位外,并不代表任何其他信息空值处理的重要性和复杂性数据缺失在许多研究领域都是一个复杂的问题对数据挖掘来说,空值的存在,造成为了以下影响:首先,系统丢失了大量的实用信息;第二,系统中所表现出的不确定性更加显著,系统中蕴涵的确定性成分更难把握;第三,包含空值的数据会使挖掘过程陷入混乱,导致不可靠的输出数据挖掘算法本身更致力于避免数据过分适合所建的模型,这一特性使得它难以通过自身的算法去很好地处理不完整数据因止匕,空缺的数据需要通过专门的方法进行推导、填充等,以减少数据挖掘算法与实际应用之间的差距空值处理方法的分析比较处理不完备数据集的方法主要有以下三大类:
(一)删除元组也就是将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表这种方法简单易行,在对象有多个属性缺失值、被删除的含缺失值的对象与信息表中的数据量相比非常小的情况下是非常有效的,类标号(假设是分类任务)缺少时通常使用然而,这种方法却有很大的局限性它是以减少历史数据来换取信息的完备,会造成资源的大量浪费,丢弃了大量隐藏在这些对象中的信息在信息表中本来包含的对象很少的情况下,删除少量对象就足以严重影响到信息表信息的客观性和结果的正确性;当每一个属性空值的百分比变化很大时,它的性能非常差因此,当遗漏数据所占比例较大,特殊当遗漏数据非随机分布时,这种方法可能导致数据发生偏离,从而引出错误的结论
(二)数据补齐这种方法是用一定的值去填充空值,从而使信息表完备化通常基于统计学原理,根据决策表中其余对象取值的分布情况来对一个空值进行填充,譬如用其余属性的平均值来进行补充等数据挖掘中常用的有以下几种补齐方法1人工填写filling manually由于最了解数据的还是用户自己,因此这个方法产生数据偏离最小,可能是填充效果最好的一种然而普通来说,该方法很费时,当数据规模很大、空值不少的时候,该方法是不可行的2特殊值填充Treating MissingAttribute valuesas Specialvalues将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值如所有的空值都用“unknown”填充这样将形成另一个有趣的概念,可能导致严重的数据偏离,普通不推荐使用3平均值填充Mean/Mode Completer将信息表中的属性分为数值属性和非数值属性来分别进行处理如果空值是数值型的,就根据该属性在其他所有对象的取值的平均值来填充该缺失的属性值;如果空值是非数值型的,就根据统计学中的众数原理,用该属性在其他所有对象的取值次数最多的值即浮现频率最高的值来补齐该缺失的属性值此外有一种与其相似的方法叫条件平均值填充法Conditional MeanCompleter在该方法中,缺失属性值的补齐同样是靠该属性在其他对象中的取0值求平均得到,但不同的是用于求平均的值并非从信息表所有对象中取,而是从与该对象具有相同决策属性值的对象中取得这两种数据的补齐方法,其基本的出发点都是一样的,以最大概率可能的取值来补充缺失的属性值,只是在具体方法上有一点不同与其他方法相比,它是用现存数据的多数信息来推测缺失值4热卡填充Hot deckimputation,或者就近补齐对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充不同的问题可能会选用不同的标准来对相似进行判定该方法概念上很简单,且利用了数据间的关系来进行空值估计这个方法的缺点在于难以定义相似标准,主观因素较多5K最近距离邻法K-means clustering先根据欧式距离或者相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据6使用所有可能的值填充Assigning AllPossible valuesof theAttribute这种方法是用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大,可能的测试方案不少另有一种方法,填补遗漏属性值的原则是一样的,不同的只是从决策相同的对象中尝试所有的属性值的可能情况,而不是根据信息表中所有对象进行尝试,这样能够在一定程度上减小原方法的代价7组合完整化方法Combinatorial Completer这种方法是用空缺属性值的所有可能的属性取值来试,并从最终属性的约简结果中选择最好的一个作为填补的属性值这是以约简为目的的数据补齐方法,能够得到好的约简结果;但是,当数据量很大或者者遗漏的属性值较多时,其计算的代价很大另一种称为条件组合完整化方法Conditional CombinatorialComplete,填补遗漏属性值的原则是一样的,不同的只是从决策相同的对象中尝试所有的属性值的可能情况,而不是根据信息表中所有对象进行尝试条件组合完整化方法能够在一定程度上减小组合完整化方法的代价在信息表包含不完整数据较多的情况下,可能的测试方案将巨增8回归Regression基于完整的数据集,建立回归方程模型对于包含空值的对象,将已知属性值代入方程来估计未知属性值,以此估计值来进行填充当变量不是线性相关或者预测变量高度相关时会导致有偏差的估计9期望值最大化方法Expectation maximization,EMEM算法是一种在不彻底数据情况下计算极大似然估计或者后验分布的迭代算法[43]在每一迭代循环过程中交替执行两个步骤:E步Excepctaion step,期望步,在给定彻底数据和前一次迭代所得到的参数估计的情况下计算彻底数据对应的对数似然函数的条件期望;M步Maximzation step,极大化步,用极大化对数似然函数以确定参数的值,并用于下步的迭代算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂10多重填补Multiple Imputation,MI。