大数据时代的优缺点十篇

发布时间:2024-04-26 02:08:36

大数据时代的优缺点篇1

本文主要讲述了工程研究中缺损数据的主要的简单填补方法,涉及了人工填补、特殊值填补、回归填补、信息扩散填补以及多重填补,并浅析了各种填补方法的优缺点。但在实际问题中,仍需要考虑各方面的因素,结合实际情况,对填补的数据进行最优化处理。

关键词:

缺损数据;信息扩散;多重填补

前言

随着工程技术的发展越来越迅速,人们所掌握的各种工程手段也更加的成熟,但工程研究主要是以大量的数据处理为基础的,这就使得工程数据的分析与处理显得尤为重要。然而,在现实的数据采集与发掘的过程中,由于数据采集技术和偶然的原因,使得某些重要的数据丢失或无法测得,致使这些工程研究与应用的难度增加,且研究所得结论也会或多或少地受到影响。在现实情况下,缺损数据所造成的影响主要有以下几点:1.含有缺损数据,导致获得的信息量减少,使统计精度降低;2.数据处理中的许多假设都是建立在无缺损数据的前提下,致使处理的结果不正确;3.缺损数据本身就是重要的数据源,使得后续计算与处理无法继续。由此可知,对这些缺损数据或不完备数据的处理将成为工程研究上一大重要问题。

工程上缺损数据产生的原因以及主要的处理方法

缺损数据产生的原因是多样的,主要分为由于器械精度不够而导致测得错误的数据或者无法测得的数据和由于人为的原因导致数据记录错误或数据丢失。而在工程研究上,由人的失误等主观因素导致的缺损数据是可以避免的,这些缺损数据大多数是由于器械等客观因素导致的。例如在地震研究中,许多数据都不可能准确地测得;再例如在古建筑研究方面,如何根据现测得的古建筑材料性能参数估计该古建筑在不做人工处理的条件下仍能保存的时间……缺损数据可谓无处不在,缺损数据的处理或许将成为工程师的一大难题。

目前,工程上处理这些缺损数据的方法主要是删除、填补和忽略。现阶段最常用的处理方法就是删除了,甚至一些统计软件也常用这一依据,在所删除的元组相对于整个数据系统相对比较小的情况下,该处理方法非常有用,且简单易行。然而很多时候,缺损的数据本来就是很重要的数据,必须要获得该缺损值,这种方法就不可行了;同时,在所挖掘的数据本来就少的情况下,这种以牺牲现有数据来得到完整的数据系统也是不明智的,该方法的局限性就在于此。对于填补缺损数据,无疑是一种比较实用的处理方法。在填补恰当的情况下,对数据的后续研究与处理将起到非常重要的作用。本文主要就是讨论缺损数据的最优填补方法。再者,就是忽略这些缺损的数据,也即不处理这些数据。相比于删除和填补误差较大的情况,直接在含有缺损数据的数据集上进行数据分析与处理也不失为一种较好的处理方法。

缺损数据的填补方法分析比较

填补缺损数据,也即将缺损的数据用合适的值代替。如何使代替值与真实值接近则成为填补的关键,若填补合适,则将对数据的进一步处理起至关重要的作用;相反,填补出现较大的失误则将对后续的分析带来困惑,甚至得到错误的结果。一般情况,缺损的数据不外乎两种,一种就是缺损的数据是具有离散性质的,例如决策表中的属性;另一种则是具有连续性的,例如高耸建筑某时刻的沉降值。

人们通常观测到的数据不可能是连续的,往往是测定需要的数值或者通过观测某些特定点的值来近似估计所需要的值。对于具有连续属性的数据,需要将其离散化,变为具有离散特性的数据,需要某些特定值时,则可以用离散缺损数据填补的方法将其进行填补,这大大减少了数据观测的复杂程度。而连续属性离散化,就是在连续属性的特定范围内划定若干个离散点,将连续属性分为若干个离散区间,若区间划分较小的情况下,则可以用该区间某一属性值代替该区间的属性值。目前国内外连续属性离散化的方法主要有等宽区间法、等频区间法、K一means算法、Chimerge算法、StatDise算法等。对于不同的连续属性,应采用相应的方法将其离散化,继而用离散型缺损数据的填补方法将其填补。由此,数据填补最终都可归为填补离散型缺损数据。而对于离散型缺损数据(以下简称为缺损数据),主要的填补方法有以下几种:

人工填补

人工填补,顾名思义,就是由人直接将缺损的数据填补完整。由于最了解数据的还是数据获得者,因此这个方法得到的数据与真实值也较为接近。同时人工填补也是现阶段为数不多的不以现有数据为依据的填补方法。但当需填补的数据规模较大时,这个方法明显不合适,工作量大,费时费力。

可能值填补

所谓可能值填补,就是利用现有数据填补缺损值,它是以最大概率的可能取值来补充所缺的值。以下介绍的可能值填补主要有平均值填补、众数填补、中位数填补、期望最大填补、相似对象值填补等。

2.1平均值填补

平均值填补,就是取该属性其他对象取值的平均数作为该属性的取值。平均值填补分为总平均值填补和条件平均值填补。总平均值填补是取将该属性集的所有属性的平均值作为填补值,若同一属性存在多个缺失值,则这些填补值将完全相同,不符合变量之间的波动规律。相反,条件平均值填补是将这个属性计划分为若干个范围,取缺损值所属范围的属性集的平均值作为填补数,这显然对变量的波动程度的估计有所提高。平均值填补也存在一定的缺陷,首先均值填补已经降低了整个属性集的方差;其次,若填补的变量所在的属性集不符合正态分布或与正态分布相差较大,则平均值填补就不合理了;最后,当缺损值的属性集是非数值型的时候,平均值填补则不能进行。

众数填补

众数填补,就是取该属性其他对象取值的众数作为该属性填补值。对于具有较高重复性的属性集,众数填补比平均值填补显得更加符合属性集的变化规律。而对于非数值型的缺损值,有时也可考虑采用众数填补。

中位数填补

相比于平均值填补和众数填补,中位数填补就是取属性集的中位数作为填补值。对于变量分布是偏态的属性集,中位数填补比平均值填补要更加准确。中位数填补同样可以应用于非数值型的属性集。

期望值最大填补(em算法)

em算法就是这样,假设我们估计知道a和B两个参数,在开始状态下二者都是未知的,并且知道了a的信息就可以得到B的信息,反过来知道了B也就得到了a。可以考虑首先赋予a某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计a的取值,这个过程一直持续到收敛为止。这种方法强调先对缺失数据进行估计,最大化是在忽略缺失数据的前提下进行最大似然估计的。当具备缺失数据的估计值和给定的观测值时,就可以进行期望计算,求出缺失数据的条件期望,用期望值代替缺失值,进行循环计算,直到最大似然估计收敛为止。这种方法的最大优点源自于在大样本条件下,它能非常简单地执行并且能通过稳定、上升的步骤可靠地找到全局最优值。

相似对象值填补(热卡填补)

相似对象值填补,也即热卡填补,它要求在现有的数据里找到与缺失对象最相似的对象,用该对象相应的属性值代替缺失值。该方法简单易行,且能保持填补数值与变量非常接近。但该法主观因素较多,没有同一的标准衡量相似度,而且耗时费力。

同样,众数填补、中位数填补、热卡填补也可以拓展成条件众数填补、条件中位数填补、条件热卡填补。

回归填补

回归填补,即是通过建立变量Y与自变量Xi(i=1,2,…)的回归模型来预测Y的缺失数据,也即建立缺损数据所在的变量关于自变量的函数关系式,进而用该点的函数值代替缺失值,在现阶段主要可以通过多项式拟合来填补缺损的数据。在数据量较小的情况下,该方法明显有扭曲数据分布的缺点,并且对于相同的Xi,如果对回归模型不加以处理,就会得到相同的填补值,这就和总体均值填补一样,扭曲了变量的变异性质。若在回归填补中增加一个随机成分,将其和作为填补值,这样就克服了扭曲变量变异性质的缺陷。这种方法的关键在于如何确定最优的回归函数关系模型,不同的情况要具体而议,而且要考虑许多客观因素。

信息扩散填补

信息扩散原理是由黄崇福教授提出的,虽然现在还不是完全很成熟,但在数据填补、风险评估等领域有着很重要的意义。它的原理是将a点的信息或数据通过一定的衰减传递到其他点,再将这些点得到的信息依次传递下去,最后B点肯定能得到一定的信息量。反之,B点得到的信息或数据也可传递给a点。通过该方法,我们可将已有的观测值通过一定的扩散形式传递给需要填补的观测点,进而用这些点最终得到的传递值代替其观测值。目前该方法存在的不足之处就是如何确定扩散函数以及扩散的窗宽,这都需要根据实际问题进行大量的验算,最终确定扩散函数及窗宽。

多重填补

以上介绍的填补方法,填补的数据都是唯一的。而多重填补的原理是首先为缺失值产生一系列用来填补的候选值,把这些候选值填补到缺失值后得到一系列的完整数据集合,对这些完整数据集采用相同的处理方法,再综合分析考虑,选取最合适的缺失数据候选值。该方法在确定候选值时可以应用上述的各种填补方法,而且考虑了许多不确定因素,在数据分析处理中占有很高的地位,但它不适合数据的挖掘,而且计算也很复杂。但如果我们已经通过前面所述方法得到了若干候选填补值,就可以用该方法确定最佳的填补值。

总结

缺损数据的填补方法固然有很多种,但针对不同的情况,如何合理的选取填补方法才是填补的关键。只有弄清缺失数据的原因、特性、数据类型、数据集分布等许多因素,才可以为选取合适的填补方法提供依据。而且通过以上的分析,每种方法都有其优缺点,如果在数据填补过程中能综合考虑,或者将不同的方法加以融合,可能会使得填补效果更加理想。除此之外,填补结束后还有考虑填补的合理性,即先填补后分析其合理性,如此循环反复,方可取得合理、理想的填补效果。

参考文献:

[1]邓银燕.缺失数据的填补方法研究及实证分析[D].西安:西北大学,2010

[2]宫悦.基于粗糙集的不完备信息系统数据挖掘方法研究[D].大连:大连海事大学,2008

[3]张昕.不完备信息系统下空缺数据处理方法的分析比较[J].湖南师范大学学报,2008,21(4):444-447

大数据时代的优缺点篇2

关键词:专利文献;Cache;技术演进

technologyDevelopmentofmicroprocessorfrompatent(Vi)

―technologyDevelopmentonCachepatent

ZHanGXu1,2,wUXiao-dao1,XieXue-jun1

(1ministryofindustryandinformationtechnologySoftware

andintegratedCircuitpromotionCenter,Beijing100038,China;

2Beijinginstituteoftechnology,Schoolofcontroltheoryandcontrolengineering,Beijing100086,China)

abstract:inthispaper,atechnology-depthanalysisonCacheismadebasedonaseriesofpatentsofCache.throughtracingsomespecificpatentsbasedonthesearchofalargenumberofpatents,severalimportantCacherelatedpatentsareintroduced,includingoriginofCache,hierarchicalmemoryandCacheoptimizationtechnologiessuchastraceCache,VictimCacheandnonblockingCache.ByanalyzingthetypicalCachepatents,cluesfornewproductdevelopmentareprovided.

Keywords:patentdocument;Cache;technologyevolution

1引言

高速缓冲存储器(Cache)技术,主要是为了解决高速中央处理单元(CpU)和低速动态随机存储器(DRam)内存之间速度匹配的问题,是提高系统性能,降低系统成本而采用的一项技术。典型的Cache如图1所示。

随着半导体加工工艺水平的不断提高,CpU和存储器的性能都有了很大提高。

CpU频率的提高,必然要求存储器存取速度提高和存储容量的增大。主存储器DRam的发展,其容量提高较快,但读取时间的提高往往滞后,那么CpU与主存储器的不匹配随之产生,因此成为系统性能提升的瓶颈。二十年来,CpU设计的问题之一就是解决高速CpU和低速DRam之间的平衡或匹配问题,在CpU和DRam之间加入高速缓冲存储器(Cache)是一个被广泛使用的解决方案。

本文在分析Cache专利的基础上,寻找Cache技术的起源,发掘早期Cache技术的重要变革,探讨Cache设计中的关键优化技术的演进过程,特别研究了不同阶段关键技术的创新点,预测Cache优化技术发展趋势。

2Cache技术综述

Cache技术本质是以有效的方法构建基于存储器层次结构的高效存储系统。其基本思想基于局部性原理(空间局部性和时间局部性)。

Cache的组织技术主要有映射技术、多级Cache技术。映射技术即主存中的数据如何对应到Cache中。有三种对应方式:直接映射,全相联映射和组相连映射;多级Cache技术主要研究Cache的级数和每级Cache的容量。最新的处理器一般是将Cache集成到芯片内部,部分处理器甚至集成了两级到三级Cache。典型的如intel的奔腾4(pentiump4)处理器集成两级Cache[1]。

Cache的缺失替换技术基于:CpU访问的主存地址内容为保存在Cache中从而发生缺失,此时需从主存中调取相应数据块到Cache中,若Cache空间已满,需替换掉陈旧的信息块。替换策略通常有:先进先出(FiFo)法、随机法、最近最少使用(LRU)算法。

Cache一致性技术:在多处理器或多核处理器系统中,每个处理器或核有各自的Cache,但处理器一般共享主存储器,不仅Cache与共享存储器中同一数据拷贝可能不一致,而且由于多个处理机异步的相互独立操作,也使多个Cache中同一份存储块的拷贝可能不一致,从而出现了Cache一致性问题。为解决Cache与主存的不一致性,首先要选择合适的Cache更新算法:写回法、写直达法和写一次法。其次要选择合适的Cache一致性协议。所谓一致性协议,是指多个处理器在读写Cache时所遵守一定的法则以确保CpU每次都能访问到最近更新的数据。常用的协议有监听协议、基于目录的一致性协议。

Cache的优化技术:为提高Cache性能,高速缓冲存储器发展的每个阶段都提出了一系列Cache的优化技术,典型的有nonblockingCache、traceCache、VictimCache、pipelinedCache、Compiler-controlledprefetching、Hardwareprefetchingofinstructionsanddata。本文重点研究前三种Cache优化技术。

3Cache专利技术演进

3.1初期Cache专利技术分析

3.1.1早期的分级存储系统中的Cache雏形

Cache技术是多级存储思想的延伸。多级存储的概念由Kilburn于1962年首次提出。Kilburn在文章中提出在系统中加入快速取数存储器以构成两级存储机制。在此之后,早期的多级存储设备的专利开始出现。1966年,由美国BURRoUGHS公司提出了专利号为3292153,名称为“memorysystem”的专利申请[2]。该专利被引证113次。专利中提出了一种存储器系统。其结构如图2所示。

该系统中设置了两级存储器,分别为高速存储器(标号为图2中的11),和低速存储器(标号为10)。两级存储器最大的特点是速度不同,实现的代价不同,SRam每个位(bit)需要4个或6个晶体管实现,面积代价很大,集成在片内就很昂贵,因此一般只使用很小的容量,面积小但速度快,低速的则相反。采用该装置后,每次数据访问首先查找高速存储装置,如果命中则不需要访问低速装置,从而速度提高很多。Cache正是源于这种思路。

基于此思想,分层存储开始在数据处理系统(DataprocessingSystem)中应用。数据处理系统包括:一个中央处理单元、一个缓冲存储器、一个主存储器等装置。较早的数据处理系统中的分级存储系统中展示了Cache的思想。国际商业机器公司(iBm)于1971年提出了专利号为3693165,名称为“paRaLLeLaDDReSSinGoFaStoRaGeHieRaRCHYinaDatapRoCeSSinGSYStemUSinGViRtUaLaDDReSSinG”的专利申请[3]。该专利被引证61次,如图3所示。

该数据处理系统中,包含一个介于CpU与主存(mainStore)之间的高速的缓冲存储装置(BufferStore)。系统中,处理单元使用虚拟地址访问容量有限的高速缓存,同时访问低速的主存储器。这样当高速缓存没有命中时也不会影响访问主存储器的速度。专利中还采用了地址比较机制用来比较地址控制信息与地址信息。可以看出早期的数据处理系统中形成了Cache的雏形。

3.1.2最早商用的Cache

在分层存储思想的基础上,1968年,一个里程碑式的发明在国际商业机器公司诞生。iBm大型机System/36085研制成功,该大型机引入了高速缓存存储器,该高速缓存采用64位双极型阵列,具有64个存储单元和664个器件。这是Cache技术的首次商业应用。在该系统中Cache以高于以前12倍的速度提供高优先级的数据,为当今CpU技术中的高速缓冲存储器研发奠定了基础。

本章首先分析几篇典型的早期分层存储系统专利,从Cache思想起源的角度研究早期Cache的技术背景,然后分析了由iBm研发的最早商用的Cache系统。从中我们可以看到由分层存储系统到Cache的最早商业应用,短短的几年时间,Cache的优势已经初现端倪。在当今处理器领域,处理器与主存储器的速度差距逐渐增大,Cache的引入弥补了这种差距,Cache的重要性也随之增加。整个系统的性能也将与Cache息息相关。

3.2近期Cache专利优化技术跟踪分析

3.2.1nonblockingCache

在传统的系统中,当Cache缺失发生时,处理器必须先停顿,然后从主存储器中调度缺失的数据块以执行下面的指令。超标量体系结构处理器允许指令乱序执行,CpU无须在Cache失效时停顿。缺失发生后,CpU在等待数据Cache给出数据的同时,从指令Cache中取指令继续工作,相当于Cache缺失被屏蔽了。该Cache技术为nonblockingCache。如果采用nonblockingCache,就可能把CpU的性能提高很多,因为这种Cache在失效时仍允许CpU进行其它的命中访问。如果让Cache允许多个失效重叠,即支持多重缺失下的命中和缺失情况下的再次缺失,则可进一步减少实际缺失开销。不过,这种方法只有在存储器能处理多个缺失的情况下才能带来好处。

nonblockingCache是在1981由kroft第一次提出。数据控制公司(controldatacorporation)于1980年提出专利号为4370710,名称为“Cachememoryorganizationutilizingmissinformationholdingregisterstopreventlockupfromcachemisses”的专利申请[4]。该专利被引证52次。该申请提出nonblockingCache的思想和实现方法,如图4所示。

该系统维持了一个缺失信息寄存器组,当发生Cache缺失时记录所需信息。相当于一个中断保护寄存器,保存中断发生时的上下文信息。一个输入堆栈被引入,目的是与Cachememory并行接收主存储器中的数据。当发生缺失时,把内容发往输入堆栈,配合其它装置进行缺失处理,而Cache继续应对另外的数据请求。nonblockingCache的引入具有重大意义,从高端通用处理器到嵌入式处理器,这项技术被广泛使用。

正如专利号为4370710的系统所示,nonblockingCache使系统在缺失率无法继续减少的情况下,性能极大提高。现代处理器中Cache缺失的代价是设计中需要考虑的重要因素。因此nonblockingCache技术将会有更广阔的应用空间。

3.2.2VictimCache

Cache的性能日益重要,尤其是在现代高级处理器中。在1980年后的十年中,处理器指令执行周期下降速度远远超过主存储器访问时间的下降速度。CiSC处理器和RiSC处理器的思想被融入到单个处理器中。每条指令执行所耗费的机器周期数量急剧下降。对于RiSC体系结构特性的处理器,每当发生一次缺失,缺失损失是100个指令周期甚至更多,严重影响了处理器性能的提高。一种能减少冲突失效次数而又不影响时钟频率的方法是:在Cache和它与下一级存储器的数据通路之间增设一个全相联的Cache,称为VictimCache。最早的VictimCache是由Jouppi于1990年提出的。

数字设备公司(DigitalequipmentCorporation)于1990年提出专利号为5261066,名称为“Dataprocessingsystemandmethodwithsmallfully-associativecacheandprefetchbuffers”的专利申请[5]。该专利被引用130次。该专利的发明者Jouppi提出了VictimCache,如图5所示。

图5的存储系统中,一个缺失Cache处于一级Cache存储器和主存储器之间。缺失Cache容量较一级Cache小,一级Cache由数据和指令Cache组成。当一级Cache缺失发生时,告知缺失Cache和主存储器。专利研究得出数据冲突缺失是影响性能的主要因素。为了更好发挥缺失Cache的性能,将缺失Cache组织成较小的全映射Cache形式,称之为VictimCache。如果一级Cache发生缺失,那么继续到VictimCache中寻找所需数据。VictimCache组织情况如图6所示。

图6中数字52代表VictimCache,是采用全映射组织。一级Cache采用直接映射组织。VictimCache中

存放由于失效而被丢弃(替换)的那些块。发生失效时,在访问下一级存储器之前,先检查VictimCache中是否含有所需的块[6],如果有,就将该块与Cache中某个块做交换。Jouppi发现,含1到5项的VictimCache对减少冲突失效很有效,尤其是对于那些小型的直接映象数据Cache更是如此。对于不同的程序,一个项数为4的VictimCache能使一个4KB直接映象数据Cache的冲突失效减少20%~90%。

3.2.3traceCache

在早期的Cache组织优化技术方面,研究的重点放在如何使得主存储器与Cache中的内容相对应。常用的有直接映射、全映射和组相连映射。这些方法使得Cache中的每行按虚拟地址或者物理地址顺序存放数据或者指令。随着超标量处理器的出现和发展,这些组织方式已经不能满足处理器的需求了。尤其是当缺失的代价变得难以忍受时,一种新的优化技术应运而生,这就是traceCache。英特尔公司于1994年提出专利号为5381533,名称为“Dynamicflowinstructioncachememoryorganizedaroundtracesegmentsindependentofvirtualaddressline”的专利申请[7]。该专利被引证52次。专利中提出的traceCache如图7所示。

图7展示了最早的traceCache技术。该技术用在超标量体系结构的计算机中。总线30代表CpU的输出,提供必须执行的指令和指令所对应的地址。“Cachememory”是一个双端口Cache。两个端口都有各自的数据线和地址线。端口1与CpU和主存储器交互。端口2与一个线缓冲(LineBuffer)相连。在实际操作中,Cache的输入来自“LineBuffer”,然后“LineBuffer”将数据和地址送往Cache。Cache与LineBuffer之间的传递内容包括分支预测指令,下一地址和踪迹(trace)。这三项内容被组织放入“LineBuffer”。

下面分析该专利中的Cache技术与早期技术的不同之处,从而得出专利的创新点。早期的Cache技术是简单的将处理器产生的物理地址或者虚拟地址发出给Cache,然后Cache比较自身维护的信息,如果匹配,那么命中,否则发生缺失。Cache是根据预先决定的地址来进行顺序线性组织的。然而实际程序中往往包含很多分支指令,每50到60条指令后一般可能有一条分支指令。当分支发生时,下一条将要执行的指令(针对指令Cache)可能在Cache的另外的行中或者根本不在Cache中。那么发生Cache缺失从而产生的代价将是巨大的。相比而言,本专利中提出的traceCache技术是一种动态的Cache组织技术。Cache的行的组织是根据实际程序的执行情况进行动态组织。如果程序中有分支发生,那么Cache组织时根据分支的可能转移结果来把下一条需要执行的指令组织到一行中或这一个Cache块中。因此该技术有利于减少Cache的缺失。如7图所示,处理器先把LineBuffer当作暂时的Cache,然后再根据已经执行的指令来组织Cachememory。

由上面分析,我们可以看出第一份traceCache专利给系统带来了性能的极大提高,以至于现代的pentium4处理器中采用了该技术。

本章分析了三种典型Cache优化技术,从Cache组织和缺失减少的角度阐述分析了三篇具有里程碑式的专利。可以看到,Cache的组织技术与处理器的结构和指令集密切相关,当新的处理器结构不断推出时,Cache将需要被重新组织和优化。

4小结

本文通过检索美国的Cache专利并对其进行筛选和梳理,总结Cache的技术背景和关键优化技术的发展历程。进而以三大关键技术为例,具体分析了专利中的优化技术。从1968年出现第一个商用的Cache,到90年代年涌现出大量的Cache优化技术的专利,Cache优化技术不断推陈出新。由nonblockingCache到VictimCache,再到traceCache,每一个Cache组织方式的改变都引起了系统性能的极大提升。尤其是现在的处理器设计中,如何综合考虑硬件与软件的关系,如何优化Cache以更好的适应应用程序来达到程序的提速是关键之处,也是将来Cache领域需要深入的问题。当今处理器的架构日益复杂,多核处理器已经成为发展趋势,这种复杂体系结构的处理器也需要有更加新的Cache组织以及优化的技术,因此可见未来的处理器设计中,Cache组织优化技术将会有更大的发展空间。

下期预告

理解Cache技术演进的基础上,追溯Cache思想的来源,深入典型Cache优化的技术发展,对专利文献更进一步分析,我们还能发现哪些更为值得关注的技术趋势?下期中,我们将以美国Cache相关专利为样本,继续分析Cache优化技术演进,对比其各阶段优化技术,分析各自的技术优势,预测其研发趋势,敬请期待。

参考文献

[1]t.KiLBURn.取数时间很短的数字计算机存储器(阿特拉斯计算机固定存储器),计算机研究与发展.1962年06期.

[2]RorbertS.Barton,altadena,Calif.memorySystem.US.3292153[p].1966.12.13.

[3]Reiley;Forresta.,Richcreek;Jamest.paralleladdressingofaStorageHierarchyinaDataprocessingSystemUsingVirtualaddressing.US.3693165[p].1971.6.29.

[4]Kroft;David.Cachememoryorganizationutilizingmissinformationholdingregisterstopreventlockupfromcachemisses.US.4370710[p].1980.8.26.

[5]Jouppi,norman.Dataprocessingsystemandmethodwithsmallfully-associativecacheandprefetchbuffers.US.5261066[p].1993.11.09.

[6]wilkes.SlavememoriesandDynamicStorageallocation.trans.ieeevoleC-14page270.1965.

[7]peleg,alexander.Dynamicflowinstructioncachememoryorganizedaroundtracesegmentsindependentofvirtualaddressline.US.5381533[p].1995.01.10.

作者简介

张旭,工业和信息化部软件与集成电路促进中心专利分析师,集成电路设计专业,研究方向为控制工程和微处理器设计,主要从事处理器技术领域的专利分析。

大数据时代的优缺点篇3

【关键词】数据挖掘;决策树;进展研究

1数据挖掘的应用背景

随着数据库技术的不断发展及数据库管理系统的推广应用,存储在数据库中的数据量急剧增大,大量数据背后必定蕴藏着许多信息,如何从数据库中抽取出有用信息逐渐成为商业界普遍关心的问题。数据挖掘的概念为解决这一问题而提出并在近年来引起学术界的广泛关注,成为学术研究的热点。

数据挖掘,又称数据库中的知识发现,是指从大型数据库或数据仓库中提取隐含的、未知的、非平凡的及有潜在应用价值的知识或模式,它是数据库研究中的一个很有应用价值的新领域,融合了数据库、人工智能、机器学习、统计学等多个领域的理论和技术。

数据挖掘的任务是从大量的数据中发现模式或知识。模式按其作用可分为两类:一类称为描述型模式,它是对数据中存在的规律做出描述。如泛化模式、聚类模式、关联模式及时间序列模式。另一类是预测型模式,它依据从己有数据获得的知识对未知数据的某些性质进行预测。包括分类模式和回归模式。其中,分类模式是一种重要的预测型模式。

用于挖掘分类模式的方法有很多,如决策树方法,贝叶斯网络,遗传算法,基于关联的分类方法,粗糙集,k-最临近方法,等等。其中决策树方法以其易被人理解、需要信息觅少、效率及准确率较高等优点占据着重要地位。决策树方法自产生至今,先后涌现出多种算法,包括iD3、C4.5、CaRt,SLiQ、SpRintpUBLiC,基于人机交互的方法等。他们的共同特点是对训练样本集进行挖掘后都会生成一棵形如二叉树或多叉树的决策树。树的叶子节点代表某一类别,非叶节点,包括根节点及内节点代表某个一般属性(非类别属性)的一个测试,测试的一个结果形成非叶节点的一个分枝。从根节点到叶子节点的一条路径形成一条分类规则。一棵决策树能够很方便的转化为若干条分类规则。人们可以依据分类规则直观地对未知类别的样本进行预测。

2数据挖掘工具

根据挖掘方法,数据挖掘可分为:机器学习方法、统计方法、神经网络方法和数据库方法。根据所采用的方法,数据挖掘工具可以大致分为以下六类:

(1)基于规则和决策树的工具:大部分数据挖掘工具采用规则发现和决策树分类技术来发现数据模式和规则,其核心是某种归纳算法,如iD3和C4.5算法。它通常是对数据库中的数据进行挖掘生成规则和决策树,然后对新数据进行分析和预测。

(2)基于神经元网络的工具:基于神经元网络的工具由于具有对非线性数据的快速建模能力,因此越来越流行。挖掘过程基本上是将数据簇聚,然后分类计算权伯。

(3)数据可视化方法:这类工具大大扩展了传统商业图形的能力,支持多维数据的可视化,同时提供了进行数据分析的图形方法。

(4)模糊发现方法:应用模糊逻辑进行数据查询排序。

(5)统计方法:这此工具没有使用人下智能技术,因此更适于分析现有信息,而不是从原始数据中发现数据模式和规则。

(6)综合方法:许多工具采用了多种挖掘方法,一般规模较大。

3决策树方法的优缺点

决策树,又称判定树,是一种类似二叉树或多叉树的树结构。树中的每个非叶节点(包括根节点)对应于训练样本集中一个非类别属性的测试,非叶节点的每一个分枝对应属性的一个测试结果,每个叶子节点则代表一个类或类分布。从根节点到叶子节点的一条路径形成一条分类规则。决策树可以很方便地转化为分类规则,是一种非常直观的分类模式表示形式。

相对于其它分类方法,决策树算法应用最为广泛,其独特的优点包括:(1)可以生成可以理解的规则;(2)计算量相对来说不是很大;(3)可以处理连续和种类字段;(4)决策树可以清晰地显示哪些字段比较重要。

当然,决策树也存在着很多的缺点:(1)对连续性的字段比较难预测;(2)对有时间顺序的数据,需要很多预处理工作;(3)当类别太多时,错误可能会增加比较快;(4)一般算法分类的时候,只是根据一个字段来分类。

4决策树方法的主要研究进展

4.1决策树的精度

决策树的预测精度一直是研究的重点,判断各种决策树的生成算法和剪枝算法的优劣,精度是最重要的衡量指标。构造多变量决策树是为了减小树的规模,其最终目的是为了提高决策树的精度。如何提高决策树的预测精度是决策树方法的研究方向之一。

4.2决策树技术与其他技术的结合

在知识发现中,不可能用一种方法处理所有的数据集,完成各种数据采掘任务,需要研究同其它方法相结合的问题。并且,决策树方法本身也可以和其它方法结合,现在已有人把决策树方法同神经网络技术、模糊集理论、遗传算法等相结合来进行研究,结果不同程度地提高了处理效率和精度。多种方法的交叉结合也是决策树方法研究的方向之一。

4.3寻找更好的简化决策树方法

简化决策树的研究工作主要有两个方面,一是对比各种不同的简化决策树方法,分析它们各自的特性、优点和缺点。另外一个就是寻找更好的与传统方法不同的简化决策树的方法,这一直是决策树技术研究的一个热点。

4.4不确定环境下决策树研究

实际的数据集中存在着一些缺值数据,最简单的方案是删除带有未属性值的例子或是将未知属性值用最常用的值代替,QuinlanJR提出的一种解决方案是依据对象的其它属性值和类信息来预测未知属性的属性值。对缺值数据的处理一直是决策树研究的热点。

4.5决策树技术的软件实现

将决策树技术软件化一直是决策树技术的方向之一。如何开发出功能更加强大、使用更加方便、界面更加友好的软件以实现决策树技术,一直是大家努力的方向。

5小结

决策树算法已经有了广泛的应用,并且已经有了许多成熟的系统,这此系统广泛应用于各个领域,如语音识别,模式识别,专家系统等。但是,解决一个复杂的数据挖掘问题的任何算法都要面临以下问题:从错误的数据中学习、从分布的数据中学习、从有偏的数据中学习、学习有弹性的概念、学习那些抽象程度不同的概念、整合定性与定量的发现等,归纳学习当中还有很多未开发的课题等待我们去研究。

【参考文献】

[1]李卿.决策树优化算法研究[D].西南交通大学,2009.

[2]万永锋.决策树学习算法在金融自助设备监控系统中的应用[D].郑州大学,2007.

[3]戴南.基于决策树的分类方法研究[D].南京师范大学,2003

大数据时代的优缺点篇4

摘要阐述了自动气象站疑误记录的界定与判断标准,分析了产生异常记录的原因,并提出了处理方法,以为提高报表预审质量提供参考。

关键词自动气象站;月报表;异常数据;处理

随着现代气象事业的发展,河南省越来越多的气象站启用了自动站设备,郑州市气象局自动站于1998年3月安装调试,5月开始试运行,1999年1月1日开始准业务化运行,极大地促进了气象事业的发展。然而高技术在带来方便精准的同时,其故障产生后的处理也较为复杂,有时故障还具有一定的隐蔽性,这就要求每个观测员值班时都要认真对每个数据进行分析判断,发现问题及时处理,笔者根据多年在自动站工作的实际经验,对认定疑误记录及容易出现的故障进行分析,并提出处理意见,以供参考。

1自动气象站疑误记录的界定与判断标准

《观测规范》第十八章对疑误记录作了原则规定,但比较笼统抽象,根据规范的立意精神,判定一个不正常记录是否为疑误,应该依据3个条件:一是反常有矛盾记录;二是不能无法否定;三是原因不明难以解释。同样,凡是能确定记录没有使用价值必须按缺测处理的,即使原因不明,也不属于疑误。

2产生异常记录的原因及处理

2.1降水数据异常

自动站雨量缺测或异常时,小时雨量可用其他雨量同时次的值代替[1]。目前虹吸式雨量计在自动站有故障时启用,因为每次降水以前自动站是否有故障是未知的,所以要保证虹吸式雨量计正常运转,且每次有大的降水以前都要试用虹吸式雨量计,以备自动站故障时使用。假如分钟数据缺测,影响年报表中“15个时段最大降水量”的挑取时,可采用确定降水异常的分钟时段,从虹吸式雨量自记中读出经时差订正后的每分钟降水量,替换异常时段的分钟记录并备注转换方法,使分钟数据连续和完整,且基本符合实际降水情况。

2.2温、湿度异常数据

(1)当因风大雨猛,使温、湿度传感器与电缆的接头进水,造成2个时正点温、湿度数据出现异常时,按规范规定“一般时次不进行补测,仅在2、8、14、20时等4时次定时和规定编发气象观测报告时次,气温、湿度记录缺测或异常时,用现有人工观测仪器在正点后10min内进行补测”。该次传感器故障影响到20时至次日14时正点温、湿度各要素记录时,应该恢复人工站干湿球温度表进行观测及当日20时及次日2、8、14时的温、湿度、水汽压、露点温度、相对湿度值用人工站数据代替[2]。

(2)当自动站正点相对湿度出现缺测而温度正常。正点前后10min内的相对湿度分钟数据亦缺测时,b文件该时相对湿度用人工观测干湿球值订正后查算值代,水汽压、露点温度用其配合温度反查得到;当正点前后10min内有相对湿度分钟数据时,b文件该时相对湿度用此分钟相对湿度数据代替,水汽压、露点温度用其配合正点温度反查得到。当自动站正点相对湿度正常但因人工维护使正点温度异常,正点前后10min内有温度分钟数据时,b文件该时温度用此分钟温度数据代替,水汽压、露点温度用其配合正点相对湿度反查得到。

2.3气压数据异常

当某个分钟数据出现野值时,该分钟数据可按缺测处理;当气压分钟数据异常期间不影响到小时或日极值时,一般不必进行处理;当异常数据对日极值有影响时,按《观测规范》规定从“实有的自动观测记录和人工补测的定时观测记录中挑取日极值”处理。当气压分钟数据异常影响到某一正点时,按《观测规范》规定用前后10min数据代替,当前后10min数据也异常时,用前后时次数据内插求得[3]。

2.4数据异常

自动站风速与人工站风速差值大于1.0m/s时,及时找出原因,排除故障。分钟数据异常的处理方法同气压的处理方法,但风向缺测或异常时,不能用前后2个时次的数据内插,应用其他风的自记记录代替。

2.5自动站正点数据缺测

因更换自动站仪器致使自动站正点数据缺测时,b文件该正点所有要素值用人工补测的值代替[4]。如果没有人工补测值,缺测1个时次,用内插法计算该时值(降水量、风向风速不能内插);影响2个或2个以上时次,则记录作缺测处理;当缺测时段内有降水时,自动站小时雨量用虹吸雨量值代,分钟雨量作缺测处理。

2.6定时数据是野值或缺测

定时数据是野值时要将其删除,自动站定时记录缺测时,应首先考虑用有效分钟数据(正点前、后10min的数据)代替(除极值项和时累计值外),然后考虑前后正点间数据内差、人工观测记录、自记记录代替,2、8、14、20时缺测时气簿一和发报采用人工观测记录,月报表处理要用前后两时次的数据内差求取。需要注意的是定时降水量、风向风速、水汽压、露点温度不能用内插法求取,水汽压、露点温度用对应时次内差求得的气温和相对湿度反查求得,降水量用人工站记录代替。2min风记录可考虑用人工观测记录代替,10min风记录可考虑采用《夫测规范》第102页的算法进行计算,不能计算的用人工观测记录代替。

3小结

当自动站出现故障时,不论何种情况都要对所有器测项目人工补测;总的原则为对于单轨运行的自动站在出现故障对正点记录有影响时,正点前后10min的分钟数据优先于人工补测值,人工补测值优先于内插值。还要尽量减少人为干涉,及时申报故障;此外,在仪器日常护理中,定期对传感器维护或更换。

4参考文献

[1]朱建华,陈海辉.浅谈dzz1-2型自动气象站故障排查探析[j].中国科技信息,2009(21):150-151.

[2]张惠莲,温显罡.自动站月报表审核要点浅析[j].福建气象,2008(3):21-24.

大数据时代的优缺点篇5

【关键词】智能电能表;抄表系统;应用

引言

目前,我们正面临着能源逐渐变少问题,该如何有效利用有限的资源成为人们普遍关注的问题,面对这样的挑战,电能的质量和供电的可靠性越来越重要。为了给客户提供优质的服务,我国供电网络做出了很大的提高,正一步一步向全电网智能化迈进。

智能电能表作为基本的电网数据采集设备,肩负着采集数据、计量以及传输数据的责任,它不再仅仅是一个计费仪器,而且正在逐步发展向智能化、数字化、多元模块化以及系统集成化的终端设备。

智能电能表属于电子式仪表,它明显优越于传统的机械式电能表,在抄表、核收方面,以自动化方式代替了原有电表落后的人工抄表、抄表不及时、抄表质量差、抄表效率低等等缺陷,并且突破了老式电子式电能表的很多限制,结合了微控制器技术和网络技术,全面体现了智能化技术的应用。

1.智能电能表的定义和工作原理

1.1智能电表的定义

早期的智能电表指的就是一个电子式电能表,随着科学技术发展,智能电能表的含义也在不断更新,后来出现的预付费表、付费率表以及多功能表都称之为智能电能表。国际上给智能电能表下的定义为:智能电能表是基于计算机技术、测量技术和现代通信技术相结合的用于数据采集、数据传输、数据处理以及数据管理的先进计量设备。在我国对智能电能表的定义为:集成数据采集处理单元、测量单元和通信单元于一体的,能够实现电能量计量、数据信息的处理和存储、自动控制、实施监测等功能的电能表。近些年来,我国的供电网络已经在逐步实施电能表的更换工作,把原有的落后电能表全部更换为智能化电能表,并制定智能电能表的规约,所有电表采用统一的通信接口和通信方式。

1.2智能电能表的工作原理

智能电能表的组成结构主要包含:计量芯片、处理器、实时时钟、数据接口等设备。数据处理器能够进行高速控制,它经由计量芯片来获得功率、电压、电流、电量、动率因数等实时数据,然后结合当前的费率和电能需求量进行数据处理,把处理结果存放到存储器中,实时显示给外部,并进行数据交换。智能电能表的工作原理如图1中所示。

图1智能电能表的工作原理图

2.智能化抄表系统的特点

智能化抄表系统的特点主要包括以下几点:

(1)实现了抄表自动化,能够进行远程自动化的抄表控制;

(2)实时性优越,能够随时控制供电网络内的每个智能电能表;

(3)扩展性好,能够利用编程软件与核算系统连接起来,实现供电系统抄核收的一体化控制;

(4)抄表精确、速度快,提高了工作效率;

(5)通信方便,只需利用周边的电话线或电力线就可以实现。

3.智能电能表在自动化抄表系统中的应用和推广

3.1智能电能表的应用

分析安装试点地区,智能电能表运用到抄表系统中可以成功的抄回每个表的示数,而且读取数据准确无误,能够监视和计算每个时间段的供电量和售电量,并且检查到电网的异常状态。针对动力用户,由于用电量大和用电成本高,可以安装载波式智能电能表来改善电表计量异常情况。

3.2智能电能表的推广

经过实践证明,随着自动化抄表系统的发展,智能电能表的使用范围也越来越广,我国已经进行了大面积的智能电能表的更换使用,大大方便了用户和供电公司。各种软件技术也应用到了自动化智能电表抄表系统中,完成了编程连接抄表系统和核算系统,使得电网的抄核收系统能够实现一体化管理。

4.智能电能表在抄核收业务中应用分析

4.1抄表

安装智能电能表之后,无需工作人员再去现场抄表,抄表人员可以进行转型或转岗,只需智能化电表就实现了全部数据的采集,而且只需要一些电表的检修维护人员进行不定期的巡查核对,发现电表异常后进行检修。下面分析,智能电能表针对抄表系统,分别在预付费模式和后付费模式下的优缺点。

(1)预付费模式

优点为:

①减少抄表工作人员,可把部分抄表人员培训为专业的智能电表的检修维护人员;

②数据信息采集的准确无误,便于提升供电质量;

③能够实现每日计算一次电费,每天扣除相应的预收费用,有效的提高了收取电费的效率。

缺点为:

①如果智能电表的计量系统、通信系统出现故障或异常,会导致无法及时抄取数据;

②要是采集到数据显示异常,那么需要很多精力去现场进行核对。

(2)后付费模式

优点为:

①减少抄表工作人员,可把部分抄表人员培训为专业的智能电表的检修维护人员;

②数据信息采集的准确无误,便于提升供电质量;

③能够在确定的日期集中采集数据,例如每月的一号,电量能够提前发送给用户,也便于回收电费。

4.2核算

安装使用智能化电能表后,获得数据信息准确度明显提高,核算环节可以省略,规定好每月的抄表日期,智能系统会自动检查电量使用是否异常,如果正常就会按期自动发送电能,反之则会给电费管理中心提交异常流程,电费管理中心处理异常情况。可以有以下三种实施方案:

(1)电费实行每月一结算(属于预付费模式)。

该方案的优点为:

①可以减低核算人员的工人数量,把大部分核算人员培训为数据采集异常分析人员;

②可以保证采集数据的准确性,所以由抄表错误带来的事故量明显减少。

该方案的缺点为:

①系统采集数据的实时性特点,没能得到充分发挥;

②资金回收周期长,一月才能收取电费一次。

(2)实行对每个客户都分次结算电费(属于后付费模式)。

该方案的优点为:

①可以减低核算人员的工人数量,把大部分核算人员培训为数据采集异常分析人员;

②可以保证采集数据的准确性,所以由抄表错误带来的事故量明显减少;

③由于智能电能表可以实时采集数据,所以系统可以个用户分次结算电费,与用户之间协商好分次结算的期限和次数,加快了资金回收速率。

该方案的缺点为:

①用户可能不太满意这种服务,对的供电公司的评价有所降低;

②将会增加对智能电网系统的考验;

③所消耗的成本费用增多,假如每月分成两次结算电费,那么所需的代收费和代扣手续费就会增加一倍。

4.3收费

如果采用后付费模式,则原有收费方式不变。如果采用预付费模式,则在保留原有不变的四种缴费方式有电费充值卡、电力自助缴费终端、邮政代收和营业窗口坐收,其它的如电费代收和代扣等费用均需转变后收取。智能电能表针对收费系统,在预付费模式和后付费模式下的优缺点如下。

(1)预付费模式

优点为:

①用户为了不用每月都去缴纳电费,可以提前预存相应的电费;

②对于租房户来说,房东对租户的用电量更加了解,便于控制,减低用电风险。

缺点为:

①由于预付费不能实行代收代或代扣方式,原来实行代收或代扣方式的用户不会积极实行预付费模式。

②使得营业收费窗口工作量加大。

(2)后付费模式

优点为:

①使用代收或代扣方式的用户很多,减少了营业窗口和邮政银行的收费工作压力;

②原有的各种缴费方式,能够满足各类用户的缴费需求。缺点为:电费回收周期长、速率慢。

大数据时代的优缺点篇6

关键词:软件缺陷;工作量感知;软件模块;预测模型

中图分类号:tp301文献标识码:a文章编号:16727800(2013)009003503

基金项目:国家自然科学基金项目(61073029)

作者简介:赵东晓(1981-),男,南京大学计算机科学技术系硕士研究生,研究方向为软件度量。

0引言

软件缺陷的产生不可避免,但软件缺陷的存在会给人类带来灾难[1]。信息社会的到来,使得软件需求量不断增大,软件开发者在软件测试上花费的代价越来越大。无监督的软件缺陷预测建模过程简单,成为近几年的研究热点。

目前已有大量的无监督软件缺陷预测研究,这些模型大都用于分类,简单地将待预测样本分为有缺陷类和无缺陷类,不能提供软件模块的缺陷倾向性序列,不利于软件缺陷的审查和验证。同时,这些模型大多采用基于混淆矩阵的评价指标,没有考虑使用这些模型指导代码检测和审查时的工作量与预测结果的关系,无法保证应用这些模型时的成本效益。这些问题的存在,使得这些预测模型的应用受到很大的限制,因此有必要针对这些不足寻找一种更合理的预测模型。

与已有研究不同的是,本文提出一种基于聚类的软件缺陷序列预测模型,并采用工作量敏感的评价指标对该模型进行评价。我们的做法是,首先选用Kmeans和Xmeans算法对待预测样本进行聚类,然后对聚类后的类簇进行第一次排序确定类簇的缺陷倾向递减序列,对类簇内样本进行第二次排序确定缺陷密度递减序列,将经过两步排序后的样本序列作为软件缺陷倾向预测序列。最后结合软件工业实际,考虑了代码审查或检测时的成本效益,采用了Ce(Costeffectiveness)指标对模型性能进行评价。

1相关工作

软件缺陷序列预测一般包含3个步骤,首先是建立软件缺陷预测模型,然后利用建立的模型选择合适的度量对待预测对象包含缺陷的几率进行预测,最后根据预测结果按照包含缺陷的几率从大到小的顺序将各对象进行排序,最终得到的序列即为软件缺陷序列预测的结果。在这3个步骤中,缺陷序列预测模型的建立和缺陷序列预测模型性能的评价是软件缺陷序列预测中最重要的步骤。

无监督缺陷预测模型普遍采用无监督学习方法进行建模。Catal等提出了一种基于Xmeans算法的缺陷预测模型[2]。他们的实验结果表明,该算法对不包含噪音的数据具有很好的性能。然而,在存在噪音的数据上,该算法会导致不合理的聚类。Bishnu等[3]利用基于四叉树的Kmeans聚类算法对缺陷预测进行了研究,他们首先利用四叉树算法来确定Kmeans聚类时的类簇中心点,然后利用Kmeans算法对数据进行聚类,最后将这种结合后的算法应用到软件缺陷预测领域。他们的实验结果表明,该算法在大多数情况下能够降低缺陷预测的错误率。文献[4]提出了一种基于模糊聚类非负矩阵分解的缺陷预测方法,该方法解决了最近邻算法处理多属性缺陷数据时性能偏低的问题,克服了非负矩阵分解时易陷入局部最优的不足,提高了不平衡软件缺陷数据的预测精度。文献[5]提出了一种谱聚类与混沌免疫相结合的软件缺陷预测方法,用混沌免疫聚类算法替换谱聚类中的Kmeans算法。他们的研究表明,这种结合的算法可以促进软件缺陷数据预测精度的提高。

这些预测模型采用了基于混淆矩阵的评价指标,只考虑模块是否包含缺陷,忽略了模块规模的不同,这与代码审查或测试阶段不同规模模块对工作量的要求不同的事实不符。因此,arisholm等提出应该使用一种“基于代码行的alberg图”的评价方法来评价潜在预测模型的性能[6],同时,他们指出应该用Ce指标作为模型性能的评价指标。

2无监督缺陷模块序列预测模型

2.1基于聚类的缺陷模块序列预测

基于聚类的缺陷序列预测算法可以采用如下步骤:①数据预处理,备份模型评价相关度量;②设置聚类算法为Kmeans或Xmeans,进行聚类运算,得到聚类结果;③进行类簇间排序;④进行类簇内部排序;⑤将经过两步排序后的序列作为缺陷预测序列,评价该序列的预测性能。

2.2基于簇类排序和簇间排序的缺陷模块序列生成

在基于聚类的软件缺陷模块序列预测中,在第②步得到聚类结果后,为了得到缺陷模块预测序列,需要设置一定合理的排序方法,将各类簇和类簇内部的各个模块按照缺陷倾向的可能性进行排序。排序的目的是为了提高预测序列的性能。结合该预测序列的性能评价指标Ce的求解过程,经过排序后的模块序列应该具有如下特点:①软件系统中有缺陷的模块应该尽量在序列的前部,无缺陷的模块应该尽量在序列的后部;②预测序列中模块的缺陷密度大体上应符合从大到小的顺序。所以,排序策略的设计应该从这两点出发。

有研究表明,单位代码包含缺陷的概率随着模块规模的增加而降低[7],那么,在经过聚类后,类簇总代码行越小,该类簇包含缺陷的概率应该越大。利用这一结论,将聚类后各类簇按照总的代码行从小到大的顺序进行排序,类簇内部各模块按照代码行从小到大排序,经过两次排序后得到的模块序列,其缺陷可能性应该是从大到小,记这种排序方法为mSSB(minimumSizeClusterStartedSizeBased)。

3工作量感知的缺陷模块排序性能评价

Ce(Costeffectiveness)评价指标是一种考察模型对模块缺陷倾向的排序能力的指标。Ce指标在一种被称为“基于代码行的alberg图”上求得,基于代码行的alberg图是如图1所示的二维图。

在基于代码行的alberg图中,3条曲线分别对应3个模型。其中model对应需要进行评价的预测模型,以该预测模型给出的缺陷模块序列的规模(代码行数)占系统总规模的百分比为横坐标,以预测模型给出的缺陷模块序列中的实际缺陷数目占系统总缺陷数目的百分比为纵坐标,每给定一个百分比值,得到该坐标轴上的一点,所有的点之间的连线可以得到该模型对应的曲线。optimal对应“理想最优模型”,该模型是将软件模块按缺陷密度(缺陷数目/代码行数)进行降序排序的模型。Random对应“随机模型”,该模型是将模块按随机顺序进行排序,因此其表现是一条45°的直线。

4实验设置和结果

4.1数据集

我们的实验在equinox3.4、JDtCore3.4、lucene2.4、mylyn3.1和pDeUi3.1五个系统上进行。我们收集了wmC、Dit、noC、LCom2、CBo、RFC和SLoC这七个度量,并将这些度量当作模块的特征用来聚类。对于每一个系统,网站http://bug.inf.usi.ch/上提供了每个模块中包含的缺陷数目。在我们的实验中,缺陷数据不参与聚类过程,只用来评价各种聚类方法的性能。表1给出了这5个系统上收集的数据集信息。

4.2实验结果

我们用mSSB排序方法进行实验。试验中,样本间的距离求解时采用的是欧氏距离。在实验中,当以Kmeans聚类算法建立聚类模型时,分别设置聚类个数k为样本总数的1%、2%、5%和10%。我们分别计算了π=0.2和π=1.0这两种情况下的值。

首先是采用Kmeans算法进行聚类。表2~表6分别为当π=0.2和π=1.0时5个数据集上的实验结果。其中,p|k列对应的数值是实验中聚类参数的设置,其中,p值表示Kmeans聚类时设置的类簇个数占样本总数的百分比,k值表示采用当前百分比时的具体聚类个数。表7表示采用Xmeans算法进行聚类时取不同π值时的结果。此时,对于各个数据集,每种排序方法只对应一个缺陷预测序列,所以也只得到一个性能评价指标,其值如表2~表7所示。

4.3结果分析

从实验结果可以看出,当采用mSSB方法时,从表2~表6可以看出,当采用Kmeans进行聚类时,在多数数据集上,该排序算法都能获得大于0的Ce值,这表明,在这些情况下,该算法明显优于随机选择模型。同样地,从表7可以看出,当采用Xmeans算法进行聚类时,多数情况下,该方法同样优于随机方法。

5结语

本文首先简要介绍了软件缺陷预测领域的相关研究工作,对基于机器学习的软件缺陷序列预测中的关键问题进行了阐述,分析了已有研究中建模方法和评价标准的不足。针对这些不足,提出了基于聚类的软件缺陷序列预测模型,着眼于建模过程中的排序问题,文中设计了一种排序算法,并采用了一种工作量敏感的评价指标对该模型的性能进行了实验比较。从5个数据集上的实验结果可以看出,不论是采用Kmeans聚类还是Xmeans聚类,大部分情况下当采用该排序方法时,所得的缺陷预测序列都能比随机方法在一定程度上帮助减少代码审查的工作量。

参考文献:

[1]LittLewooDB,LoRenZoS.Softwarereliabilityanddependability:aroadmap[C]//proceedingsoftheConferenceontheFutureofSoftwareengineering,2000:175188.

[2]CataLC,SeVimU,DiRiB.Clusteringandmetricsthresholdsbasedsoftwarefaultpredictionofunlabeledprogrammodules[C]//proceedingsofthe2009SixthinternationalConferenceoninformationtechnology:newGenerations,2009:199204.

[3]BiSHnUp,BHattaCHeRJeeV.Softwarefaultpredictionusingquadtreebasedkmeansclusteringalgorithm[J].ieeetransactionsonKnowledgeandDataengineering,2012,24(6):11461150.

[4]常瑞花,慕晓冬,李琳琳,等.基于模糊聚类非负矩阵分解的软件缺陷预测[J].宇航学报,2011,32(9):20592064.

[5]慕晓冬,常瑞花,宋国军,等.基于混沌免疫谱聚类的软件缺陷预测[J].高技术通讯,2012,22(12):12191224.

大数据时代的优缺点篇7

本系统采用neC电子的32位车身专用芯片V850/Fx3系列,V850是neC电子的32位微处理器核,5级流水线控制,内部32个32位寄存器,乘法/除法指令,数据空间支持最大4GB线性寻址能力,代码空间支持64m线性寻址能力,内部1mB的codeflash,60KB的Ram空间,32KB的dataflash用作eepRom模拟。

2常见Bootloader设计方案

目前常用的Bootloader方案有一下四种:

2.1方案一

如下图:

SHape\*meRGeFoRmat

图1方案一存储空间图

Fig.1memoryaddressspaceofsolutionone

原理如下:

Boot工程:

address:0x0000~0x3fff,interruptvector和自编程库函数,Can,上位机通讯协议;

application工程:

address:0x0000~0x3fff,interruptvector和自编程库函数,Can,上位机;应用程序函数;

Dummyvector:用于中转中断处理函数。因为如果有中断产生,程序指针只会跳到Bootvector,应用程序中断处理函数无法响应中断。Dummyvector处理流程如下:

SHape\*meRGeFoRmat

图2方案一中断处理机制

Fig.2theinterrupthandlemechanismofsolutionone

缺点:

1.Bootloader烧写在Rom里面,每次启动的时候需要执行,进行相应判断不是由应用程序开始。

2.每次进入中断程序时需要进行跳转,所以延长进入中断时间,且boot里面需要声明所有中断向量,boot里面的中断处理函数中要调用application中的中断处理函数比较复杂,因为如果application代码更新后,应用程序函数入口地址是变化的。

3.DummyinterruptVector需要在更新Bootloader时就写入,并且在更新应用程序的同时也更新这部分区域。

优点:

1.程序设计相对容易。

2.2方案二

如下图:

SHape\*meRGeFoRmat

图3方案二存储空间图

Fig.3memoryaddressspaceofsolutiontwo

缺点:

1.更新程序之前需要进行BootSwap功能切换应用程序和Bootloader程序,更新完毕后再次需要进行切换.

2.应用程序设计时比较复杂,需要加入Bootloader代码,且需要空出一段空白区域用于与Bootloader区域进行BootSwap交换.

优点:

1.eCU从应用程序开始跑,中断程序处理简单。Bootswap的目的就是为了处理中断机制。

SHape\*meRGeFoRmat

图4方案二存储空间图

Fig.4memoryaddressspaceofsolutiontwo

2.3方案三

如下图:

SHape\*meRGeFoRmat

图5方案三存储空间图

Fig.5memoryaddressspaceofsolutionthree

缺点:

1.芯片空间的使用效率比较低,需要有一半的Rom空间用做交换区.

优点:

1.Bootloader和应用程序整合在一个工程文件中,不需要专门的Boot区,程序设计简单,从应用程序开始跑。

2.由于旧程序仍然存在,应用更加安全.

2.4方案四

如下图:

SHape\*meRGeFoRmat

Fig.6memoryaddressspaceofsolutionfour

首先在Ram某段区间强行定义为Rom属性,否则无法执行代码,因为Ram默认存放变量。然后将Bootloader工程代码拷入到指定Ram区间,指针跳转到Ram开始执行与上位机建立通讯。调用底层flash操作库函数更新应用程序。

缺点:程序设计比较复杂,需要跳转到Ram运行。在Ram中更新flash的时候需要开辟Rom空间作为启动备份区,否则发生断电或者意外,程序将无法恢复。

优点:节省空间。程序从应用程序启动。

3结论

中断矢量的拷贝是Bootloader的难点,以上的一些方法无论是方案一的中转函数还是方案二的Boot区交换,都是对中断矢量的拷贝,使得应用程序中断处理函数能够响应中断。对四种Bootloader方案进行了比较和优缺点分析,具体应用应该根据用户的实际情况和客户的要求来设计。

实践中,要综合考虑到上位机的成本,Rom空间,启动时间,中断响应时间等因素。

4结束语

汽车电子已成为当前it产业的一大亮点,呈现出巨大的市场需求。Bootloader的设计作为软件设计的一部分,有着非常重要的功能,可以实现eCU的在线诊断,在线标定,代码升级等功能。根据客户的实际需求,开发出成熟的软件是我们的目标。

[参考文献]

[1]neCelectronics.V850eS/Fx3Usermanual,2006

[2]neCelectronics.Self-pragrammingnote,2007

[3]neCelectronics.DataFlashConvertUsermanual,2007

大数据时代的优缺点篇8

【关键词】频繁子图挖掘算法;软件缺陷检测;静态分析;深度优先搜索;程序依赖图

1.引言

随着软件应用规模的日益扩大和软件应用环境的日益复杂,因为软件质量导致的事故给人们造成的损失越来越多,后果也越来越严重,比如iBm360操作系统的失败、阿丽亚娜号航天火箭的爆炸[1]等。为保证软件的质量,必须检测软件缺陷并对其加以控制。

检测软件缺陷,通常指检查代码缺陷,其方法有很多种,包括人工审查、动态测试和静态分析。程序语义分析方法是静态分析常用的一种分析技术。它通过分析程序的控制流和数据流以及函数调用关系等计算程序的多种语义表示,如调用图和依赖图,来辅助软件审查。这种方法最大的优点就是不必执行目标程序,就可以通过扫描并分析程序的源代码并查找代码中的特定模式(可以理解为编程规则)集合,较早地发现程序代码中的缺陷。

最新的静态分析工具将数据挖掘技术(通常是频繁子图挖掘算法)与程序分析相结合。为了构造一个针对某一种类型的软件缺陷的高效的静态分析工具,必须使用适当的频繁子图挖掘算法。而该类静态分析工具的效率、性能的关键也就是频繁子图挖掘算法。

FFSm[5]算法是基于模式增长方法的。它与目前主流的频繁子图挖掘算法acGm[2]、FSG[3]和gSpan[4]等方法相比,时间复杂度最优、挖掘效率最高。它使用Cam来唯一标识图,使用FFSm-Join和FFSm-extension来扩展频繁子图,并通过相应的剪枝策略来获得候选子图。在计算支持度时,只对embeddinglist进行扫描,提高了计算的速度和效率。但是FFSm算法存在一定的局限性,有如下五个主要问题:

不能处理多重图(即两个节点之间可能存在一条以上的边);

只能处理无向图;

FFSm-extension需要对边和节点进行枚举,效率低;

无法输出有向频繁子图。

FFSm挖掘得到的频繁子图无法准确地表征规则,无法应用到软件缺陷检测中,实用性差。

针对上述提出的经典频繁子图挖掘算法存在的问题,本文在经典的算法FFSm的基础上,提出了一种新的频繁子图挖掘算法HFFSm(High-performanceFastFrequentSubgraphmining)。本文的主要工作概述如下:

提出一种将有向标记图等价转换为无向标记图的方法,即该方法可以在有向图转换为无向图之后保留原图边的方向性。而且该方法简单、通用、可移植。

基于经典频繁子图挖掘算法FFSm,提出一个能处理有向多重图并得到有向频繁子图的,比FFSm效率更优的频繁子图挖掘算法HFFSm。

2.FFSm算法介绍

FFSm算法使用邻接矩阵表示图,按照从上到下,从左到右的顺序扫描邻接矩阵的下三角,包括对角线,将得到的串表达式称为图的代码,将最大的代码称为图的规范表示,并把相应的邻接矩阵称为图的Cam(Canonicaladjacencymatrix)。

FFSm算法的基本思想如下:

(1)FFSm算法利用Cam来唯一标识图。

(2)简化输入数据库中的图为无向简单图并利用Cam的性质来解决子图同构问题。

(3)FFSm算法利用FFSm-Join和FFSm-extension操作来生成候选子图。FFSm-Join根据k-频繁子图所属类型的不同,采用不同的方式进行合并,生成k+1-频繁子图。FFSm-extension每次在频繁子图上添加一条边和新的节点来获得新的频繁子图。

(4)剪枝:去除既非次优Cam也非频繁的子图。

输入图集中,与k-频繁子图具有子图同构关系的所有图,称为embeddinglist。k+1-频繁子图的支持度可以通过扫描embeddinglist获得,提高了支持度的计算速度如图1所示。

3.HFFSm算法

针对第一部分提到的FFSm的种种缺陷,本文针对第一部分中提出的HFFSm频繁子图挖掘算法的缺点,对原FFSm算法做出以下几点改进:

(1)问题一解决方案:多重图等价转换为简单图

HFFSm算法无法处理多重图,但是两个顶点之间可能同时存在数据依赖和控制依赖或控制依赖边和共享数据依赖边,所以必须将多重图转换为简单图。

杨炯等人[6]提出虚拟节点的概念,对多边情况进行处理,转化为单边。他们为了处理一对节点间的多条边,使用一条长度为2通过一个新的虚拟节点连接到原终点的路径来代替每一条多出来的边。

如图2所示,当节点1和节点2之间存在多条边时,每一条多出来的边通过添加一个虚拟节点将其转换为长度为2的路径。

(2)问题二和问题四解决方案:有向图等价转换为无向图

由于HFFSm算法只能处理无向图,而静态分析得到的pDG图却是有向标识图,所以必须将其转换为无向标识图。

有一个可选方案是,直接忽略边的方向性,这也是很多其他算法包括FFSm采取的处理方式。从2.2节对pDG的介绍可以看出,从节点a到b的数据或控制依赖与从节点b到a的数据或控制依赖在语义上是不等价的。直接忽略边的方向性必然导致得到图无法准确反映程序内部元素之间的语义关系,挖掘得到的规则也极有可能是虚假规则。

本文提出一个新方案来解决该问题。首先给出一个定义,以便于对边的方向进行处理。

定义1:大边和小边

给定边,和分别是顶点和的标签。如果,则边为大边;否则,边为小边。

新方案包含如下三条规则:

大边的标签用大写字母表示,小边的标签用小写字母表示;

忽略共享数据依赖边的方向,标签统一用小写字母表示;

添加虚拟节点之后边的方向由原来边的方向确定。

按照上述三条规则对原图进行处理,就可以通过标签的大小写区分从节点a到b和从节点b到a的边,同时大写意味着边的方向是通过标签大的节点指向小的节点,小写意味着边的方向是通过标签小的节点指向大的节点。

但是该方法存在一个缺陷——当边两个顶点的标签相等时,使用该方法无法保证得到的无向图与有向图在语义上等价。如图3所示,用上述方法处理完之后,左图和右图等价,但是它们在语义上并非等价。

但是,两个顶点之间的边是属于数据依赖或控制依赖或共享数据依赖,同一类型的语句(顶点)间不会存在边(即使存在,在规则中这样的边是没有意义的,可以忽略),所以不用考虑边的两个顶点的标签相等的情况,这就意味着,在本文的问题范围内上述缺陷是不需要考虑的。

总之,通过上述三条规则,可以在本文的问题范围内(在挖掘编程规则时)将有向pDG图等价转换为无向标记图。

因为该方法在将有向图转换为无向图时保留了图中边的方向性,所以解决了问题二。通过边的标签的大小写可以判断边的方向,即大写意味着边的方向是通过标签大的节点指向小的节点,小写意味着边的方向是通过标签小的节点指向大的节点。因此可以将挖掘得到的无向频繁子图还原为有向频繁子图,解决了问题四。另外,本方案是针对于标记图,所以可以很方便的移植到同类算法中去,如gSpan。

(3)问题三解决方案:FFSm-extension的改进

FFSm-extension操作是向Cam添加一条从一个新节点到Cam最后行表示的节点的边。其有两个限定条件:

Cam必须是outer矩阵(矩阵最后一行除对角线元素之外有且仅有一个非0元素)。

添加的边必须是Cam最后一行表示的节点到一个未在Cam中的节点的边。

FFSm-extension伪代码,如图4所示。

一个图是频繁的,那么图中的每个节点和边必然也是频繁的。根据这个性质,利用前面提到的频繁单节点矩阵集和频繁边集可以对FFSm-extension进行优化。

从频繁单节点集中去除已经在m中的节点,然后遍历频繁单节点集。对于其中的每一个节点,检测其和m的最后一行表示的节点间是否存在边,若存在其且未包含在m中而包含在频繁边集中,则添入该节点和边生成新的矩阵。利用该方法可以避免产生一些非频繁的矩阵。要检验每个矩阵是否为次优Cam、是否频繁,这些都会带来资源的消耗,所以尽量减少非频繁矩阵的产生可以带来效率的提高。FFSm-extension伪代码,如图5所示。

4.实验

4.1实验环境

HFFSm算法采用Java技术实现。

实验运行的硬件环境:

CpU是intel(R)Core(tm)2DuoCpUt6400(2.00GHz),

一级缓存128KB,二级缓存2mB,

Ram是DDR2800mHz2.00GB。

实验运行的软件环境:

操作系统是windows7旗舰版32位,

编译软件是eclipseSDKv3.7.1和jdk1.7.0、jre7。

4.2实验内容

本部分主要比较HFFSm算法和改进过FFSm-extension后的FFSm算法的性能。

①输出结果分析比较

图6是频度阈值为5时,FFSm算法输出的一个频繁子图,图7是其文本输出。

与HFFSm输出的结果不同,因为FFSm算法只能处理和输出无向图,从图3和图4很难判断其对应的源程序代码,以及其代表的规则的含义,也就是说,FFSm挖掘得到的结果无法表征编程规则,在实际应用中基本无法使用。

而HFFSm算法输出的是有向图,通过边的方面可以知道程序的执行规则,从而可以还原图为超图中的源代码,便于理解规则的含义。

综上所述,FFSm算法只能输出无向频繁子图,HFFSm算法可以输出有向频繁子图。FFSm算法无法准确表征编程规则,HFFSm算法不仅可以准确表征编程规则,还可以将规则还原为相应的源代码,比FFSm算法具有更高的实用性。

②不同频度阈值下的运行耗时

图8是HFFSm和FFSm在不同频度阈值下运行耗时的图。

由图8可知,HFFSm和改进FFSm-exten-sion后的FFSm在运行时间,即算法运行的时间效率上基本没有差别,所以本文对FFSm的改进并未造成算法效率的降低。

由于对于FFSm的改进是将新的操作插入到原算法的实现中,例如对方向性的改进就是在解析输入pDG图文件时判断大小边对标签进行处理。所以,保证了改进算法时效率基本等效。

5.总结

采用静态分析技术可以较早地发现程序代码中的缺陷,以便于得到高质量的软件。但是,没有一种软件缺陷检测技术能够检测所有的软件缺陷,静态分析技术只能查找某些特定模式或规则。为了处理有向多重图、得到有向频繁子图并提高算法效率和实用性,尤其是减少算法应用时的虚假警报,本文在经典的算法FFSm的基础上,提出了一种新的频繁子图挖掘算法HFFSm。通过实验表明,本文算法比FFSm在时间效率上略有提高,但是避免了输出的一些错误的频繁子图,提高了算法的准确率。同时,算法输出的频繁子图是有向图,能够更加精确地表征规则,提高了算法的实用性。由于频繁子图挖掘算法和图结构都很复杂,处理时难度较大,本文算法仍有许多不足亟待解决。

参考文献

[1]郑人杰.软件用户盼望获得精品[J].测控技术,2000,19(2):1-5.

[2]a.inokuchi,t.washin,K.nishimura,H.motoda.aFastalgorithmforminingFrequentConnectedSubgraphs.ResearchReportRt-0448,iBmtokyoResearchLab,2002.

[3]m.Kuramoehi,G.Karypis.FrequentSubgraphDiscovery.proceedingsofieeethe2001internationalConferenceonDatamining(iCDm’01),november2001:313-320.

[4]X.Yan,J.Han.gSpan:Graph-basedSubstructurepatternsmining.proceedingsofieeethe2002internationalConferenceonDatamining(iCDm’02),2002:721-724.

[5]J.Huan,w.wang,J.prins.efficientminingofFrequentSubgraphsinthepresenceofisomorphism.proceedingsofieeethe2002internationalConferenceonDatamining(iCDm’03),2003:549-552.

大数据时代的优缺点篇9

关键词:信用评级风险防范议题

一、引言

新巴塞尔协议的核心内容是内部评级,包括了市场风险、信用风险和操作风险。市场风险由于数据都来之外部资本市场,而且方法成熟,需要我们自行研究的较少;操作风险的计量方法还不够成熟;信用风险,虽然方法成熟,但是需要使用内部数据,从而更多的需要我们自行开发研究,而且对于中国的银行业,传统的信贷业务仍是比重最大的业务,所以信用风险评级是目前我国银行研究的重点,也是内部评级的突破口。

信用风险评级模型的基本思想是从已有信用表现的历史数据中提炼信息,得到客户属性和行为变量与客户违约概率之间的函数关系,从而来预测未来的客户信用状况。这种函数关系,是广义上的对应关系,并不一定存在显式的表达。

尽管信用风险计量有很多领域还处于研究阶段,不过信用风险评级发展较早,从1968年奥尔特曼(altman)引入的Z-score模型开始,到现在的logistic模型、机器学习等方法,在发达国家,不论是理论研究,还是实际应用,信用风险评级都已经相当的成熟。那么我们是否可以直接搬来使用呢?信用风险内部评级模型,方法的选择固然重要,但是好的方法并不一定对应好的结果,实际上模型表现更多的决定于问题本身情况和问题解决的处理细节。我国的银行业进行信用风险评级,虽然在技术上的有一定的“后发优势”,但是绝对不是简单的“直接拿来”。信用风险的内部评级工作需要根植于内部数据,来开发适合中国实际情况的评级模型。本文从银行内部评级的角度,对信用风险评级的若干问题进行了讨论,并提出了适当的处理方式。

二、数据特性

不同的数据特性适用不同的模型。例如,判别分析要求自变量符合多元正态分布;而Logistic回归对于数据的分布要求比较低,而且在处理纲目数据方面有着非常大的优越性。在变量不服从多元正态分布的情况下,Logistic回归优于判别回归;但是如果变量服从多元正态分布,那么线性判别规则是最优的。而机器学习类的模型,对于分布要求不高,而且处理离散变量也有明显的优势,例如决策树、神经网络。

模型没有绝对的最优,必须按照数据情况来选择合适的模型。数据情况的统计分析,是十分重要的,即使国外已经有经验表明某种模型表现优异,也有结合实际的建模数据进行分析。如果我国的数据情况与国外不同,不符合该模型的假定,该模型就不可取。

所以,建模的第一步工作就是分析数据情况,讨论各种可能模型的适用性,初步确定符合数据情况的模型框架。

三、分布的变化

既然信用评级的基本思想是从历史数据中提炼信息来预测未来的客户信用状况。那么,即使我们从历史数据中提炼出了完整的信息,如果历史数据与未来情况不同,预测的可信度也会成为问题。

一个比较典型的问题是宏观经济的变化。宏观经济的变化对于整体违约概率的影响是非常大的,如图1所示,美国历年来的公司违约情况。公司客户的评级往往主要依据公司的财务数据来得出结论,而实际上,即使是相同的财务比例,在不同的宏观经济情况下,也有不同的表现。公司类客户同样还要考虑整体行业的演变过程,根据经济学理论,行业生命周期往往经历萌芽期-扩展期-成熟期-衰退期四个周期。

在消费者评分模型中,还有一个问题是人口漂移。我国目前正处在精神文明和物质文明高速发展的阶段,人口特性变化很快,如打工族的出现、贷款购房的增加、家用轿车消费增加等。这些变化会导致潜在信用消费人群和信用观念的变化。这种随着经济环境、人口结构和生活方式的变迁使样本人群的范围和特质发生变化,一般被称为人口漂移。人口漂移会使原有评分标准下的评价结果与现实情况不符,这时就应适当的调整权值修正人口漂移带来的偏差,并不断更新作为训练样本的数据。

在宏观经济的变化引起的违约概率的整体变化,需要建立宏观经济模型来调整客户评级;而类似人口漂移等问题,数据结构都已经发生了变化,需要经常的更新训练样本,升级评级模型。评级模型有个别模型本身对于分布变化的这类问题有一定的解决能力,例如最近邻法,它可以直接加入新的申请者或删除老的用户的方式动态升级系统,从而克服人口漂移带来的问题。

四、拒绝推断

当我们使用训练样本进行模型研究的时候,所有训练样本都是已经有信用表现的客户,即都是曾经被授信的客户,而申请被拒绝的客户不在其列。但是当我们使用模型的时候,却面对了所有的可能客户(即包括了按照以前的标准被授信或者被拒绝的客户),既然我们模型从来就不认识被拒绝客户,又如何对他们作出判断呢?所谓“拒绝推断”(refusereference)是指如何从被拒绝的申请人中鉴别出应向其授信的申请人的问题。模型开发者面临的情况如图2。

在完全不准确(近乎随机)的信用评分的情况下,跃为较为精确的评级模型,“拒绝推断”造成的影响不是很严重。当然实际情况不会如此,即使是简单的专家选择,也会使得训练样本有偏。而开始使用模型后,由于人口漂移等诸多因素,原有的信用评级模型随着时间的流逝而渐渐失效,从而需要不断地更新。“拒绝推断”是信用操作中无法回避的重要问题,目前主要的解决有部分接受法、混合分解法等。

1.部分接受法

这是一种解决这类问题的较理想的方法,但是却不会受到经营者的欢迎。部分接受法就是在未被授信的客户集中进行随机的取样,批准他们的贷款申请,然后观察其以后的行为。这些申请者,被

(图2“拒绝推断”的图例)

赋以相应的权重,然后和那些通过原有规则获得批准的客户(或者是它们当中的随机取样)联系在一起,这将会带来完全随机的人群样本,可以用来创建新的评级模型。但是经营者往往不愿意这样做,他们的理由就是既然那些客户已经被认为是没有好的信用质量,批准他们的信用申请会带来损失。但是,如果授信方接收了当中一些人的申请,那么就可以通过建立更加具有预测能力的模型再长期获利。在任何情况下,授信方的利润都不会因为这些取样而受到太大的影响,因为这些取样都是经过仔细挑选的。关于部分接受法的研究还需要更加广泛的工作,不过有一点可以肯定的是,这个方法需要前台经营部门和风险管理部门的通力合作和预先的计划。

2.混合分解法

这是一种在没有任何关于人群信息的情况下,估计两种人群比例的方法。使用这种方法的前提是关于好坏人群的性质分布的假设。特别是,必须假设知道这些分布就等同于知道一些参数的值,而这些值是可以通过数据估计的。这种方法的关键就在于将假定的优质客户分布与假定的劣质客户分布的加权平均作为观察值的分布与整体样本分布的匹配。如此得到的整体样本分布称为“混合分布”。

这一方法可以让人们能够利用已知分布的一些优异性质,但它的弊端也很明显,就是关于好坏分布的假设必须是准确的。不幸的是,信用数据的特征非常复杂,想准确的得到它的分布往往是很困难的。

五、数据真实性

这是一个比较有中国特色的问题,虽然发达国家也有财务欺诈,但是绝对没有中国的严重。由于制度的缺失,或者制度执行的乏力,在中国,即使是会计师事务所审计出来的数据可能也是不可靠的。所以反财务欺诈,对于模型开发者是面临的严峻问题。但是模型开发者能做的只能是发现在统计意义上或者逻辑关系上出现的异常现象。

六、数据缺失

我国银行建立评级模型,面临最为严重的问题是数据缺失。在数据缺失非常严重的情况,建立一个优秀的模型几乎是不可能的,所以在此讨论在能建模的前提下,数据缺失问题如何处理。

如果一个变量缺失一定比例(例如50%)以上,只有放弃该变量;如果从经济学含义上,该变量确实非常重要,那么只有通过专家的经验来寻找可替代的变量(或者变量组合)。例如,家庭地址的所属区可能是十分重要的变量,但是并没有被记录,或者建模人员无法从家庭地址中提炼出区域,那么可以通过邮政编码和电话号码结合表征区域变量。

在数据缺失不是很严重的情况下,我们可以采用缺值替代的方法,例如均值替代、同类均值替代等,或者在不影响数据量的前提下也可以直接删除数据缺失的记录。

以上讨论的都还是完全随机缺失,这类缺失是完全随机发生的,不影响样本的无偏性。但是缺失更常见的随机缺失和非随机缺失,所谓随机缺失是指该变量的数据缺失与其他变量有关,例如财务数据缺失情况与企业的大小有关;非随机缺失是该变量的缺失与本身取值有关,如高收入人群的不原意提供家庭收入,财务情况差的公司不提供财务报表。

对于随机缺失和非随机缺失,删除记录是不合适的,随机缺失可以通过已知变量对缺失值进行估计;而非随机缺失还没有很好的解决办法。总结而言,缺值问题还是一个需要深入研究的问题。

七、过度拟合

由于样本中存在噪音,所以模型的拟合优度只能达到一定程度,这是理论能达到的最优拟合度。有些时候,当模型把噪音当成了信息进行拟合,使得拟合优度超过了理论的最优拟合度,过度拟合的模型实际上包含了错误的信息,预测能力很差。如图3是一个过度拟合的简单例子,对于图中的点,我们通过线性拟合和非线性拟合得到拟合曲线a和b,显然的曲线b的拟合优度要高于曲线a,但是如果本质上y和x之间是线性关系,那么非线性拟合的模型假设是错误的,较高的拟合优度实际上是过度拟合造成的。

过度拟合可以通过评价样本等方法来解决,如图4,当训练不断进行,训练样本的误判率不断降低,而评价样本则呈现先降后升的情况,那么当评价样本的误判率到最低时,我们就应该停止训练。

八、指标选取中一些问题

信用评级在我国还处于起步阶段,而发达国家已建立起一套相当完备的标准,在很多方面我们可以借鉴已有成果,但我国的文化习惯和道德标准与发达国家之间存在很大差异,在选取指标时应注意国情和评估的具体目的。具体评价指标的选取各国具有不同,如美国法律不允许将性别、年龄等个人属性作为指标列入消费者信用评估体系,但这显然是非常重要的指标,而且我国目前没有这样的法律规定;德国将是否服兵役作为一项重要指标;意大利将出生省份和婚约中对共同财产的要求作为重要指标;而日本则将供职公司是否上市以及公司的雇员数作为重要指标。

大数据时代的优缺点篇10

[关键词]异常客户孤立点检测k-medoids算法遗传算法

国内大多数商业银行都已拥有自己的数据集中业务平台,数据集中以后,商业银行建立了庞大的数据仓库,实施了对经营信息、客户数据的有效存储,紧接着商业银行就迫切需要从这些海量的数据当中挖掘出高价值的信息资源,从而精确的把握商业竞争、客户动态等实时信息,以便实施具有针对性战略。面对数量庞大的银行客户,如何应对随之带来的风险,成为商业银行客户关系管理必须面对的一个问题。因此,本文将异常客户检测(exceptionalClientDistinguish,eCD)作为研究对象,利用数据挖掘的思想和方法,对异常客户的风险进行预警。

一、异常客户检测

客户关系管理即为吸引并保持有经济价值的客户,驱逐并消除缺乏经济价值的客户。识别异常客户,一方面可有效地驱逐和消除风险,另一方面可以避免将正常客户误判为异常客户,吸引并保持有经济价值潜力的客户。

目前,异常客户检测技术主要还是基于数据特征匹配的方法。目前存在两个缺点。首先,总结异常客户特征主要靠专家手工完成,耗费人力物力;其次,所需时间较长,错过最佳挽留时机,异常客户造成的危害就无法减少。

异常客户反映在数据上,就是异常数据。Hawkins给出了异常的本质性定义:异常是在数据集中与众不同的数据,使人怀疑这些数据并非随机偏差,而是产生于完全不同的机制;Knor和ng给出了基于距离的异常定义:数据集S中的一个对象o,如果它满足下列性质:数据集S中至少有p*100%的对象与o的距离大于距离D,则对象o称为DB(p,D)-异常。

二、孤立点检测

发现异常数据,孤立点检测是个行之有效的方法。孤立点(outlier)是数据集中的小部分数据对象,这一小部分对

象和数据中的一般行为或数据模型有着明显的不同。孤立点挖掘分为两个子问题:在给定的数据集中定义什么数据可以认为是不一致的;找到一个有效的方法来挖掘孤立点。

孤立点在某种尺度下与其他点不同或不一致。孤立点可能是由于度量或执行错误导致的。许多数据挖掘算法试图使孤立点的影响最小化,或者排除它们。然而,一个人的噪声可能是另一个人的信号。这样的点通常包含了一些重要的隐藏信息。例如,在欺诈探测中,孤立点可能预示着欺诈行为。

目前孤立点挖掘算法主要有四种:统计学方法、基于距离、基于偏离和基于密度的方法。

基于统计的方法主要应用于科研计算,这主要是因为这种方法必须事先知道数据的分布特征,

从Knorr和ng开始开始研究采用无需任何参数的方法,并提出使用数据点到其最近邻居的距离和的方法作为异常的量度标准。虽然距离是一种发现孤立点的有效的无参数方法,但需要耗费时间来计算距离。

a.arning和p.Raghavan提出了基于偏离的孤立点探测的线性方法,但基于偏离的方法中的序列异常的概念并没有得到普遍的认同。这是因为序列异常在概念上仍然有一定的缺陷,遗漏了不少的异常数据。

基于密度的方法只关注对象周围临近的密度(最近邻居数)。关于它周围的邻居具有高密度邻居的数据点不是孤立点,具有低密度邻居的数据对象可能是孤立点。

上文中介绍了当前各种孤立点检测算法面临的种种缺陷,并对其进行了比较,发现基于距离的孤立点检测方法在许多方面都优于其他方法,在思路上也是正确的。基于距离的方法与基于统计的方法相比,不需要用户拥有任何领域知识。与“序列异常”相比,在概念上更加直观。

三、基于距离的k-medoids聚类算法与遗传算法

本文将基于距离的k-medoids聚类算法与遗传算法相结合,既可以很好地解决局部最优的问题,也可以很好地解决孤立点的问题,还可以加快遗传算法的收敛速度,节约时间成本。

k-medoids算法与k均值算法相似,但与k均值不同的是k-medoids算法不采用均值作为聚类中心,而是采用数据集中任意一个数据作为聚类中心,因此,可以很好地解决k均值对孤立点敏感的问题,极大地提高聚类的精度。但该方法同样受初始值影响很大,通常不能得到全局最优解。

遗传算法是一种建立在自然选择原理和自然遗传机制上的迭代式自适应概率性搜索方法,具有鲁棒性强、需要的领域知识少等优点,用于孤立点检测理论上是可行的。

本文提出的基于k-medoids算法和遗传算法结合的孤立点检测算法,继承了遗传算法的优点,在一定程度上克服了现有算法的弱点和不足。随机产生遗传算法的第一代并开始选择,然后在每代进化中,都用k-medoids算法对每个被选择的个体进行进一步的优化。也就是说,在每一代都要对所有被选中的个体计算以其为初始值的k-medoids算法的局部最优结果,并以这些局部最优结果替换掉原来的个体并继续进化,直到达到最大代数或者结果符合要求为止。

该算法的步骤将在以下部分详细介绍。

1.对个体进行编码和初始种群的生成

本文采用实数编码。染色体中实数的数量代表需要聚类的数量。初始种群采用随机函数生成,形成一个初始种群矩阵,其中每一行代表一个个体,每一行中的每个元素代表一个聚类中心。矩阵的行数代表种群中个体的数目,列数代表需要聚类的数目。

2.适应度函数的确定

本文采用均方差作为适应度函数,定义如下:

其中,e为所有数据对象与相应聚类中心的均方差之和,p为代表对象空间中的一个点,为聚类的中心对象,n为中点的个数。

3.选择算子的实现

遗传算法使用选择运算(或称复制运算)来实现对群体中的个体进行优胜劣汰操作。本文采用锦标赛选择法。

4.用k-medoids算法进行优化

用k-medoids算法对选择出来的个体进行优化,并用优化后的个体代替原来的个体。用k-medoids算法进行聚类一般只能得到局部最优解,但用其优化后的个体来代替原来的个体便可大大加速遗传算法的收敛速度,节约时间成本。

5.交叉算子的实现

交叉运算是产生新个体的主要方法。交叉率一般取值0.4-0.9。单点交叉中,交叉点的范围为[1,nvar-1],nvar为个体变量数目,以该交叉点为分界相互交换变量。

6.变异算子的实现

遗传算法中的变异运算是产生新个体的辅助方法,它是必不可少的一个运算步骤。变异率一般取值0.001-0.1。

四、实验分析

本文的数据来自美国加州大学irvine分校的机器学习库(theUCiirvinemachineLearningRepository),选择德国信用数据集为研究对象,该数据集包含20个属性,本研究截取前100条数据,采用k均值算法、k-medoids算法和本文研究的新算法分别对数据集进行了聚类分析,实验结果见表1(本结果只显示包含孤立点的类,其中的数字代表数据对象的序号)。

从表可以看出,在聚类时k均值算法无法把孤立点分离出来,而k-medoids算法和本文所研究的算法都可以把孤立点分离出来。从衡量聚类效果的重要指标均方差值的大小来看,在存在孤立点的时候,k-medoids算法比k均值算法要好,而新算法显然优于前面两个算法。

五、结论

本文比较了四种孤立点检测方法,通过分析发现基于距离的孤立点检测方法在许多方面都优于其他方法,在思路上也是正确的。基于距离的k-medoids算法可有效检测孤立点,但容易陷入局部最优。将k-medoids算法与遗传算法相结合,既可以很好地解决局部最优的问题,也可以很好地解决孤立点的问题,还可以加快遗传算法的收敛速度,节约时间成本。应用该算法可以有效地检测孤立点,即商业银行的异常客户,对风险进行有效地预警。

参考文献:

[1]HawkinsDm.identificationofout1iers.ChapmanandHal1.London.1980