美章网 资料文库 数据挖掘论文范文

数据挖掘论文范文

数据挖掘论文

数据挖掘论文范文第1篇

在早期关于数据挖掘技术的研究中,研究的重点放在数据挖掘模型的建立以及相关算法的研究上,但是应用这种研究方法所得到结果研究结果是比较孤立的,难以取得理想的数据处理效果,随着关于数据挖掘技术研究的深入,人们发现在开展数据挖掘技术的研究过程中,想要有效的实现用户相关的挖掘目标,除了需要加大算法的研究力度之外,还需要制定出特定的实现机制,以便于所制定的挖掘计划能够转化成为对一个系统工作的控制,这样才能促使挖掘项目获得一个理想的挖掘效果,对于挖掘算法的约束作用,在挖掘算法开展的任何阶段都可以实现,并且挖掘算法的基本形式就是交互式数据,在实际的挖掘算法开展的过程中,严格按照相关的计算流程开展才能达到快速、准确完成挖掘任务的目的。在开展数据挖掘计算的过程中,由于面临着多种因素的影响,并且其中一些因素是难以把握的,这直接导致了挖掘算法的结算结果具有不可预测性,因此还需要为挖掘算法添加反馈机制,通过有效的反馈机制能够对计算结果进行验证,并且能够对算法中的数据进行修正,在该过程中,不仅要保证所挖掘到数据的正确性,还需要保证数据是用户所侧重的,这就需要所挖掘的数据结果不仅具有逻辑上的正确性,还要能够满足用户的主观偏好,既要能够满足用户的需求,这就需要有效的约束来发现算法中的问题,并及时的开展算法纠正,这样才能保证所开展的挖掘算法能够满足各方面的实际需求。

但是在实际的开展挖掘算法的过程中,很容易导致陷入到一个误区当中,也就是将关注的重点放在一个系统处理所出现的问题上,但是对系统规模大小的控制没有予以足够的重视,出现这样的问题会对挖掘算法结果起到反作用,使得相关问题难以很好的解决。在进行数据挖掘的约束时,要保证实现系统增量式扩充,在对用户的实际需求与目标予以明确之后,需要借助于约束参数,结合约束参数的形式对一些有待解决的问题实施验证,一旦确定相关数值之后,就可以通过实验的交互式输入实现,最终较大较优值,该约束机制能够应用于数据挖掘算法的各个不同阶段,另一方面,在开展数据的预处理时,要能够保证约束个数的设置在保证数据挖掘结果正确性的同时,能够保持数据的规模,并且可以将约束机制应用于整个项目细分之后的子目标,从而实现快速约束。为了能够更好的解决相关问题,可以对不同类型的问题加用不用的约束调节,特别是在维度较高的数据的除了过程中,如果所选择的约束条件合适,能够有效简化挖掘算法。

在选择约束类型的过程中,时态约束下的关联规则主要是指:一次数据库扫描挖掘算法能够在减少一定的I/O个数的基础上,促使数据量的不断上升,这就会导致计算机内存占用量的线性增大,因此,ISS容量控制就是关联规则数据挖掘算法中非常重要的内容,并且能够有效减少CPU的占用量,为了能够有效的改善这一问题,可以采取对数据进行分批处理的方式,通过对数据实时有效的组织,能够有效的改善数据结构,降低数据内存,并且能够生成独立的关联规则,在降低计算机硬件资源占用率的同时,有效改善精确度。

2结束语

数据挖掘论文范文第2篇

1.1数据挖掘相关技术数据挖掘相关技术介绍如下[6]:(1)决策树:在表示决策集合或分类时采用树形结构,在这一过程中发现规律并产生规则,找到数据库中有着最大信息量的字段,从而可建立起决策树的人工智能及识别技术。(2)聚类分析:聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。(3)关联分析:关联分析又称关联挖掘,就是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、因果、关联或相关性结构。也可以说,关联分析是用来发现有关交易的数据库中不同商品(项)之间的联系。(4)神经网络方法:顾名思义,类似于生物的神经结构,由大量简单的神经元,通过非常丰富和完善的连接组成自适应的非线性动态系统,具有自适应、自组织、自学习、联想记忆、分布存储、大规模并行处理等功能。粗集方法:也就是在数据库里把行为对象列视为元素,将不同对象在某个(或多个)属性上取值相同定义为等价关系R。其等价类为满足R的对象组成的集合[5]。

1.2IBMSPSSModelerIBMSPSSModeler是一个数据挖掘工作台,用于帮助用户快速直观地构建预测模型,而无需进行编程。其精密的数据挖掘技术使用户能够对结果进行建模,了解哪些因素会对结果产生影响。它还能可提供数据挖掘相关的数据提取、转换、分析建模、评估、部署等全过程的功能[3]。通常,SPSSModeler将数据以一条条记录的形式读入,然后通过对数据进行一系列操作,最后将其发送至某个地方(可以是模型,或某种格式的数据输出)[3]。使用SPSSModeler处理数据的三个步骤:(1)将数据读入SPSSModeler;(2)通过一系列操纵运行数据;(3)将数据发送到目标位置。

2客户流失预测分析

2.1数据预处理数据预处理[6],将需要的客户投保数据按照业务预测分析的要求,将数据抽取到中间数据中,同时对数据清洗和转换,满足业务预测分析要求。每日凌晨调用存储过程将核心业务系统数据提取到中间数据库,寿险业务数据与其他数据一样,存在不安全和不一致时,数据清洗与转换可以帮助提升数据质量,进而提升数据挖掘进程的有效性和准确性。数据清洗主要包括:遗漏数据清洗,错误数据处理,垃圾数据处理[1]。

2.2数据选取数据预处理后,可以从中得到投保人的投保信息,包括投保人姓名,投保年龄(有效保单为当前年龄,无效保单为退保年龄),保费,投保年期,保单状态等。数据如图1所示。

2.3客户流失预测模型建立寿险业务按渠道来分可分为个人保险、团体保险、银行保险、网销保险、经代保险五类。由于团体保险在寿险公司发展比较缓慢,团险业务基本属于停滞阶段。结合寿险公司的营销特点,选定个人保单作为分析的对象,通过IBMSPSSModeler预测模型工具[3],使用决策树预测模型对客户流失进行预测分析。

2.4结果分析通过使用IBMSPSSModeler决策类预测模型分析某寿险公司2013年个人客户承保情况来看有以下规则:(1)投保年数在1年以内,首期保费在0~2000元或大于9997.130保费的客户比较容易流失。(2)保单终止保单中,女性客户较男性客户容易流失。(3)投保年数在2年以上,湖北及河北分支机构客户流失率比较容易流失。(4)分红寿险相对传统寿险,健康寿险的客户比较容易流失[1]。

3总结

数据挖掘论文范文第3篇

1.1GPUGPU之所以在某些应用中较CPU能够获得更高的性能,主要是因为GPU和CPU在硬件结构设计上存在很大差异。如图1所示[10],GPU将大量的晶体管用作ALU计算单元,从而适应密集且可并行的图像渲染计算处理需要。相对GPU而言,CPU却是将更多的晶体管用作复杂的控制单元和缓存等非计算功能,并以此来提高少量执行单元的执行效率。此外,存储带宽是另一个重要问题。存储器到处理器的带宽已经成为许多应用程序的瓶颈。目前GPU的芯片带宽是CPU芯片带宽的6倍左右。

1.2CPU/GPU协同并行计算在诸多适用于高性能计算的体系结构中,采用通用多核CPU与定制加速协处理器相结合的异构体系结构成为构造千万亿次计算机系统的一种可行途径。而在众多异构混合平台中,基于CPU/GPU异构协同的计算平台具有很大的发展潜力。在协同并行计算时,CPU和GPU应各取所长,即CPU承担程序控制,而密集计算交由GPU完成。另外,除管理和调度GPU计算任务外,CPU也应当承担一部分科学计算任务[12]。新型异构混合体系结构对大规模并行算法研究提出了新的挑战,迫切需要深入研究与该体系结构相适应的并行算法。事实上,目前基于GPU加速的数据挖掘算法实现都有CPU参与协同计算,只是讨论的重点多集中在为适应GPU而进行的并行化设计上。实践中,需要找出密集计算部分并将其迁移到GPU中执行,剩余部分仍然由CPU来完成。

1.3CUDA为了加速GPU通用计算的发展,NVIDIA公司在2007年推出统一计算设备架构(ComputeUnifiedDeviceArchitecture,CUDA)[10,13]。CUDA编程模型将CPU作为主机,GPU作为协处理器,两者协同工作,各司其职。CPU负责进行逻辑性强的事务处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。CUDA采用单指令多线程(SIMT)执行模式,而内核函数(kernel)执行GPU上的并行计算任务,是整个程序中一个可以被并行执行的步骤。CUDA计算流程通常包含CPU到GPU数据传递、内核函数执行、GPU到CPU数据传递三个步骤。CUDA不需要借助于图形学API,并采用了比较容易掌握的类C/C++语言进行开发,为开发人员有效利用GPU的强大性能提供了条件。CUDA被广泛应用于石油勘探、天文计算、流体力学模拟、分子动力学仿真、生物计算和图像处理等领域,在很多应用中获得了几倍、几十倍,乃至上百倍的加速比[13]。

1.4并行编程语言和模型过去几十年里,人们相继提出了很多并行编程语言和模型,其中使用最广泛的是为可扩展的集群计算设计的消息传递接口(MessagePassingInterface,MPI)和为共享存储器的多处理器系统设计的OpenMP[14]。OpenMP最初是为CPU执行而设计的。OpenACC[15]是计算机厂商为异构计算系统提出的一种新编程模型,其主要优势是为抽象掉许多并行编程细节提供了编译自动化和运行时系统支持。这使得应用程序在不同厂商的计算机和同一厂商不同时代的产品中保持兼容性。然而,学习OpenACC需要理解所有相关的并行编程细节。在MPI编程模型中,集群中的计算节点之间相互不共享存储器;节点之间的数据共享与交互都通过显式传递消息的方式实现。MPI成功应用于高性能科学计算(HPC)领域。现在很多HPC集群采用的是异构的CPU/GPU节点。在集群层次上,开发人员使用MPI进行编程,但在节点层次上,CUDA是非常高效的编程接口。由于计算节点之间缺乏共享存储器机制,要把应用程序移植到MPI中需要做大量针对性分析和分解工作。包括苹果公司在内的几大公司在2009年共同开发了一套标准编程接口,称之为OpenCL[16]。与CUDA类似,OpenCL编程模型定义了语言扩展和运行时API,使程序员可以在大规模并行处理中进行并行管理和数据传递。与CUDA相比,OpenCL更多地依赖API,而不是语言的扩展,这允许厂商快速调整现有编译器和工具来处理OpenCL程序。OpenCL和CUDA在关键概念和特性上有诸多相似之处,因此CUDA程序员可以很快掌握OpenCL。

1.5MATLAB因提供丰富的库函数库以及诸多其他研究者贡献和共享的函数库,MATLAB是研究人员实现算法的常用平台。通过封装的数据容器(GPUArrays)和函数,MATLAB允许没有底层CUDA编程能力的研究人员可以较容易获得GPU计算能力,因此MATLAB较OpenCL更容易上手。截止准备本文时,2014版本的MATLAB提供了226个内置的GPU版本的库函数。对于有CUDA编程经验的人员,MATLAB允许直接集成CUDA内核进MATLAB应用。本文第四节的实验亦基于MATLAB实现。

1.6JACKET引擎JACKET[17]是一个由AccelerEyes公司开发专门用于以MATLAB为基础的基于GPU的计算引擎,其最新版本已经包含了高层的接口,完全屏蔽了底层硬件的复杂性,并支持所有支持CUDA的GPU计算,降低了进行CUDA开发的门槛。JACKET是MATLAB代码在GPU上运行的插件。JACKET允许标准的MATLAB代码能够在任何支持CUDA的GPU上运行,这使得广大的MATLAB及C/C++用户可以直接使用GPU强大的计算能力进行相关应用领域的快速原型开发。JACKET包含了一套运行于MATLAB环境中优化并行计算的基础函数库。并且支持MATLAB数据类型,可将任何存储于MATLABCPU内存中的变量数据转换为GPU上的数据类型,对以往的MATLAB程序来说,只需更改数据类型,就能迁移到GPU上运行。本文的第四节的实验亦基于JACKET在MATLAB上实现。

2相关工作综述

2.1基于CPU的数据挖掘算法实现数据挖掘算法的研究一直很活跃,许多成熟和经典的算法已经实现在诸多研究或商用软件包/平台,例如开源的Weka[18]和KNIME,以及商用的IBM公司的PASWModeler(即之前SPSS公司的Clementine®)。这些软件默认都是单机版本,可运行在普通PC或高性能服务器上,基于CPU的计算能力。为了适应目前大规模的计算,出现了基于Google公司提出的MapReduce[19]计算框架实现的开源数据挖掘平台Mahout[20]。相关的研究起源于斯坦福大学AndrewNg研究组2006年的经典论著[21]。由于现有的算法需要先找到可“迁移”到MapReduce的方式,因此目前Mahout平台上仅有几个能支持分布式部署的数据挖掘算法,包括用于分类的朴素贝叶斯、随机森林,用于聚类的k-Means,基于项目的协同过滤等。目前Mahout仍然是基于CPU的计算能力。

2.2聚类算法聚类是数据挖掘中用来发现数据分布和隐含模式的一种无监督学习,每个训练元组的类标号是未知的,并且要学习的个数或集合也可能事先不知道。对于给定的数据集,聚类算法按照一定的度量,将数据对象分组为多个簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大[22-23]。k-Means算法是经典的基于距离/划分的聚类分析算法,也是应用得最广泛的算法之一,采用距离作为相似性的评价指标,即认为两个对象距离越近,其相似度就越大。k-Means算法的流程如下[24]:输入:簇的数目k和包含n个对象数据集D。输出:k个簇的集合。方法:1)从D中任意选择k个对象作为初始簇中心。计算每个数据对象到各簇中心的欧氏距离,将每个数据对象分配到最相似的簇中。2)重新计算每个簇中对象的均值。3)循环执行步骤2-3两个步骤,直到各个簇内对象不再变化。上述算法步骤2属于计算密度最大的部分,且具备并行化的条件。计算各个数据对象到各簇中心的欧氏距离和将数据对象分配到最近的簇的时候,数据对象之间都是相互独立的,不需要进行交换,且没有先后顺序,后计算的对象不需要等待前一次计算的结果,仅在完成全部分配过程之后,才需要进行一次数据汇总。所以文献[25]的作者们使用GPU并行优化了一维数据的k-Means算法的步骤2,并使用带缓存机制的常数存储器保存中心点数据,能获得更好的读取效率。文献中还展示了实验结果,在8600GT上取得了14倍左右的加速效果。DBSCAN属于基于密度的聚类算法中最常被引用的,G-DBSCAN是它的一个GPU加速版本[26]。文献[26]的实验显示较DBSCAN可以实现高达112倍的加速。BIRCH是经典的基于层次的聚类算法,文献[27]中基于CUDA实现的GPU加速版本在实验中获得了高达154倍的加速。

2.3分类算法分类是数据挖掘中应用领域极其广泛的重要技术之一,至今已经提出很多算法。分类算法[28]是一种监督学习,通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。分类算法是将一个未知样本分到几个已存在类的过程,主要包含两个步骤:首先,根据类标号已知的训练数据集,训练并构建一个模型,用于描述预定的数据类集或概念集;其次,使用所获得的模型对新的数据进行分类。近年来,许多研究已经转向实现基于GPU加速分类算法,包括k-NN(k近邻)分类算法[29],支持向量机分类算法[30],贝叶斯分类算法[31-32]等。kNN算法[33]是数据挖掘中应用最广泛的一种分类算法,简单易实现。它是一种典型的基于实例的学习法,将待判定的检验元组与所有的训练元组进行比较,挑选与其最相似的k个训练数据,基于相应的标签和一定的选举规则来决定其标签。在ShenshenLiang等人的文章[34]指出,由于kNN算法是一种惰性学习法,对于每个待分类的样本,它都需要计算其与训练样本库中所有样本的距离,然后通过排序,才能得到与待分类样本最相邻的k个邻居。那么当遇到大规模数据并且是高维样本时,kNN算法的时间复杂度和空间复杂度将会很高,造成执行效率低下,无法胜任大数据分析任务。所以加速距离的计算是提高kNN算法的核心问题。因为每个待分类的样本都可以独立地进行kNN分类,前后之间没有计算顺序上的相关性,因此可以采用GPU并行运算方法解决kNN算法串行复杂度高的问题。将计算测试集和训练集中点与点之间的距离和排序一步采用GPU并行化完成,其余如判断类标号一步难以在GPU上高效实现,由CPU完成。文献[34]通过GPU并行化实现kNN算法,让kNN算法时间复杂度大幅度减少,从而说明GPU对kNN算法的加速效果是非常明显的。

2.4关联分析算法关联规则挖掘是数据挖掘中较成熟和重要的研究方法,旨在挖掘事务数据库频繁出现的项集。因此,挖掘关联规则的问题可以归结为挖掘频繁项集[35]。关联分析算法首先找出所有的频繁项集,然后根据最小支持度和最小置信度从频繁项集中产生强关联规则。Apriori算法[36]是最有影响力的挖掘布尔关联规则频繁项目集的经典算法。Apriori算法使用逐层搜索的迭代方法产生频繁项目集,即利用k频繁项集来产生(k+1)项集,是一种基于生成候选项集的关联规则挖掘方法。在刘莹等人的文章[37]中指出,产生候选项和计算支持度,占据Apriori的大部分计算量。产生候选项的任务是连接两个频繁项集,而这个任务在不同线程之间是独立的,所以这个过程适合在GPU上被并行化。通过扫描交易数据库,计算支持度程序记录一个候选项集出现的次数。由于每个候选项集的计数与其他项集的计数相对独立,同样适合于多线程并行。所以文献[37]的作者们在实现Apriori时使用GPU并行化了产生候选项和计算支持度这两个过程,取得了显著的加速效果。文献[38]是目前发现的对于在GPU上实现频繁项集挖掘最全面细致的研究。他们使用的是早期的CUDA平台,采用了bitmap和trie两种数据结构来实现GPU的挖掘算法,并且根据不同数据集和支持度进行了算法性能的对比,均相对于CPU版本的算法获得的一定的加速比。

2.5时序分析由于越来越多的数据都与时间有着密切的关系,时序数据作为数据挖掘研究的重要分支之一,越来越受到人们的重视。其研究的目的主要包括以下两个方面:一是学习待观察过程过去的行为特征;二是预测未来该过程的可能状态或表现。时序数据挖掘主要包含以下几个主要任务:数据预处理,时序数据表示,分割,相似度度量,分类,聚类等。这些任务中很多都涉及到相当大的计算量。由于问题规模的不断扩大,并且对于实时性能的要求,时序数据挖掘的任务就必须要求充分地提高计算速度或者通过优化减少计算量。时序数据的表示有时候会采取特征来表示,这就涉及到了特征提取问题,当特征数量庞大的时候就需要进行维数约简,主要的方法有奇异值分解法,离散小波变换。这些计算都涉及到很大的时间复杂度,为了减少计算的时间消耗,SheetalLahabar等人使用GPU加速SVD的计算,获得了60多倍的加速效果[39]。动态时间弯曲(DynamicTimeWarping,DTW)起初被应用于文本数据匹配和视觉模式识别的研究领域,是一种相似性度量算法。研究表明这种基于非线性弯曲技术的算法可以获得很高的识别、匹配精度。Berndt和Clifford提出了将DTW的概念引入小型时间序列分析领域,在初步的实验中取得了较好的结果[40]。随着问题规模的扩大,对于DTW的计算成为了时序数据挖掘的首先要处理的问题。在DTW中,搜索需要找出与训练数据最近距离的样本,这就需要搜索与每个训练样本的距离,这就可以很好的利用GPU进行并行化处理。DorukSart等人在对DTW加速的处理中,获得了两个数量级的加速效果[41]。而对于分类和聚类任务的加速,上面已经提到,这里不再累赘。

2.6深度学习深度学习虽然隶属机器学习,但鉴于机器学习和数据挖掘领域的紧密联系,深度学习必定将在数据挖掘领域获得越来越多的应用。从2006年Hinton和他的学生Salakhutdinov在《科学》上发表的文章[42]开始,深度学习在学术界持续升温。深度学习的实质是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类预测的准确性[43]。如何在工程上利用大规模的并行计算平台来实现海量数据训练,是各个机构从事深度学习技术研发首先要解决的问题。传统的大数据平台如Hadoop,由于数据处理延迟太高而不适合需要频繁迭代的深度学习。神经网络一般基于大量相似的神经元,故本质上可以高度并行化训练;通过映射到GPU,可以实现比单纯依赖CPU显著地提升。谷歌搭建的DistBelief是一个采用普通服务器的深度学习并行计算平台,采用异步算法,由很多计算单元独立更新同一个参数服务器的模型参数,实现了随机梯度下降算法的并行化,加快了模型训练速度。百度的多GPU并行计算平台克服了传统SGD训练不能并行的技术难题,神经网络的训练已经可以在海量语料上并行展开。NVIDIA在2014年9月推出了深度学习GPU加速库cuDNN,可以方便地嵌入高层级机器学习框架中使用,例如Caffe[45]。cuDNN支持NVIDIA的全系列GPU,包括低端的TegraK1和高端的TeslaK40,并承诺可向上支持未来的GPU。

2.7小结并行化能带来多少倍的加速取决于算法中可并行化的部分。例如,如果可并行部分的时间占整个应用程序执行时间的20%,那么即使将并行部分加速100倍,总执行时间也只能减少19.8%,整个应用程序的加速只有1.247倍;即使无限加速也只能减少约20%的执行时间,总加速不会超过1.25倍。对于一个数据挖掘(学习和预测)算法进行GPU加速实现,首先要思考是否存在可并行执行的部分,之后再结合GPU的架构特点进行针对性实现优化。然而,由于数据挖掘算法普遍是数据密集型计算,而GPU片内存储容量有限,如何降低与内存交换数据集是一个要解决的关键问题。通过以上相关工作的分析,可以发现数据挖掘算法在GPU上的加速具有数据独立,可并行化共同特征。本文提出数据挖掘算法在GPU上加速实现的一种解决思路:在大数据下,分析算法的性能瓶颈,从而确定算法中耗时大,时间复杂度高的部分,将此部分在GPU上执行,不耗时部分在CPU上串行执行,以达到加速效果。为了更充分利用GPU的并行计算的体系结构,可深入分析耗时大的部分,将具有数据独立,可并行化的部分在GPU上并行执行,达到更进一步的加速效果。

3实践和分析:协同过滤推荐

当前主要的协同过滤推荐算法有两类:基于用户(r-based)和基于项目(item-based)的协同过滤推荐算法。基于项目的协同过滤推荐算法[46-50]认为,项目间的评分具有相似性,可以通过用户对目标项目的若干相似项目的评分来估计该项目的分值。基于用户的协同过滤推荐算法认为,如果用户对一些项目的评分比较相似,那么他们对其他项目的评分也比较相似。本文根据以上总结的算法特征围绕两种经典协同过滤算法的实现,通过大规模数据的实验来验证GPU相对于传统CPU的优势。

3.1算法实现

3.1.1基于CPU实现协同过滤推荐的两类经典算法本文基于MATLAB实现CPU版本的基于用户和基于项目的两种经典协同过滤推荐算法。实现的步骤:1)数据表示:收集用户的评分数据,并进行数据清理、转换,最终形成一个mn的用户-项目评分矩阵R,m和n分别代表矩阵中的用户数和项目数,矩阵中的元素代表用户对项目的评分值。2)最近邻居搜索:主要完成对目标用户/项目的最近邻居的查找。通过计算目标用户/项目与其他用户/项目之间的相似度,算出与目标用户/项目最相似的最近邻居集。该过程分两步完成:首先采用协同过滤推荐算法中运用较多的度量方法“Pearson相关系数”计算用户/项目之间的相似度得到相应的相似度矩阵,其次是采用最近邻方法找到目标用户/项目的最近的K个邻居,这些邻居是由与目标相似度最高的一些用户/项目组成的。3)产生推荐:根据之前计算好的用户/项目之间的相似度,并使用相应的预测评分函数对用户未打分的项目进行预测,得到预测评分矩阵,然后选择预测评分最高的Top-n项推荐给目标用户。4)性能评估:本研究拟采用平均绝对误差MAE作为评价推荐系统预测质量的评价标准。MAE可以直观地对预测质量进行度量,是最常用的一种方法。MAE通过计算预测的用户评分与实际评分之间的偏差度量预测的准确性;MAE越小,预测质量越高。

3.1.2基于GPU实现协同过滤推荐的两类经典算法在大数据下,协同过滤算法中主要的时间消耗在于相似度计算模块,占了整个算法的大部分时间,且每个用户/项目之间的相似度可以被独立计算,不依靠其他用户/项目,具备并行化的条件,所以在以下的实验中,将相似度计算模块在GPU上执行,其他部分在CPU上执行,进而提高整个算法的执行效率。使用MATLAB编程技术和JACKET编程技术在GPU上分别实现基于用户和基于项目的两种经典协同过滤推荐算法。实现步骤如下:1)数据表示:收集用户的评分数据,并进行数据清理、转换,最终形成用户-项目评分矩阵。2)将收集的数据从CPU传输至GPU。3)对传输到GPU上的数据执行GPU操作,调用相关函数库,采用公式(1)和(2)分别计算并获取用户/项目间的相似度矩阵。4)将GPU计算结果返回CPU中以便后续操作。5)采用公式(3)和(4)在CPU上分别获取两种经典算法的评分预测矩阵。6)选择预测评分最高的Top-n项推荐给目标用户。7)采用公式(5)求两种经典算法的平均绝对误差MAE。

3.2实验结果与分析

3.2.1实验环境本实验所用的CPU是IntelXeonE52687W,核心数量是八核,主频率是3.1GHz,内存大小是32GB;所使用的GPU是NVIDIAQuadroK4000,显存容量是3GB,显存带宽是134GB/s核心频率是811MHz,流处理器数是768个。使用Windows764位操作系统,编程环境使用最新的CUDA。

3.2.2实验数据本实验使用目前比较常用的MovieLens[56]数据集作为测试数据,该数据集从MovieLens网站采集而来,由美国Minnesota大学的GroupLens研究小组提供,数据集1包含943个用户对1682部电影约10万的评分数据,数据集2包含6040个用户对3952部电影约100万的评分数据,其中每个用户至少对20部电影进行了评分。评分的范围是1~5,1表示“很差”,5表示“很好”。实验需要将每个数据集划分为一个训练集和一个测试集,每次随机选出其中80%的评分数据用作训练集,另20%用作测试集。

3.2.3实验结果与分析本文采用加速比来比较算法的CPU实现和GPU实现的运行效率。计算加速比的方法如式(6)所示:在公式中,TimeCPU表示算法在CPU上的平均运行时间,TimeGPU表示算法在GPU上的平均运行时间。所有实验中均取最近邻居数为20,且各实验结果均为5次独立测试的平均值。图2是关于两个算法核心步骤的加速效果,而图3则展示了算法整体加速效果。可以看出,(1)整体加速效果取决于核心步骤的加速效果,(2)GPU版本的算法在性能上较CPU版本有较显著地优势,且面对大数据集的加速效果更为明显。例如在基于100万条数据集时,Item-based的整体算法的加速比达到了14倍左右,而面对10万条数据集时,加速比不到8倍。这可以解释为GPU的多核优势在面对大数据集时被更为充分地得到释放;(3)算法对r-based和Item-based两种算法的加速比相近。图4是关于算法预测效果的评估,可以看出基于GPU加速的两类经典协同过滤算法与基于CPU的两类经典协同过滤算法在预测效果上相近。如果结合图2和图3,可获得结论-能够基于GPU获得得可观的计算加速而不牺牲应用效果。

3.3小结

本文通过使用JACKET加快开发过程。目前国内还缺少对JACKET的了解和应用,JACKET的出现为科学领域进行大规模计算仿真提供了新的研究方法,并使得研究人员可以在熟悉的MATLAB平台上实现相关算法。

4结束语

数据挖掘论文范文第4篇

近年来,我国的部队管理体系已经逐渐向着自动化方向发展,部队中各个部门都建立了一定的管理体系,也逐渐脱离了人工管理模式,实现信息现代化模式,很大程度提高了部队工作的效率,但是由于外界因素与经济发展的多样化以及人们的思维模式也在不断改变,从而出现了一些新问题,使得部队管理体系存在着一定问题:第一、关联性小、系统比较独立。现阶段,部队采购食品系统的作用以及目的比较简单,思维面也比较窄,也就是说按照清单进行食品采购时,不能充分考虑到采购人员的健康、效率等问题,不能达到最优化采购方式,因此就变得比较独立;第二,数据功能简单,可靠性不高。现阶段,部队食品采购数据只是对采购的种类与过程进行简单记录,时间一久,就会被损坏或者丢失;第三,数据分散不集中。现阶段与部队人员健康、起居饮食、训练相关的数据分散在不同系统中,使得数据变得不一致、不完整,仅仅只能进行简单查询、汇总、统计等工作,不能对数据进行多角度分析、关联等,不能为采购食品提供很好的政策支持。针对部队采购存在的问题,可以利用数据仓库以及数据挖掘技术建立多为数据库,利用数据挖掘进技术对食品采购数据进行挖掘。依据现阶段部队的实际发展情况,建立一套新数据库的成本代价比较高,因此,选用了目前社会上通用方法,对已经存在的数据进行一定改革与拓展,合理优化系统数据,成为新的数据库。并且选取对数据挖掘影响比较大的系统性分析,包括训练系统,食品采购系统、人员管理系统以及医疗卫生系统。针对食品采购采购系统建立数据模型。

二、在部队食品采购系统中的应用以及其价值评价

在部队食品采购系统实际应用工程中,其实可以运用MicrosoftSQLServerAnalysisServices来对数据进行分析,并且在数据挖掘过程中对多维数据进行描述与查找起到一定作用。因为多维数据比较复杂,增长的也比较快,因此,进行手动查找是很困难的,数据挖掘技术提供的计算模式可以很好的对数据进行分析与查找。在建设部队食品采购仓库数据的时候,数据内容主要包括了人员的健康、兵员的饮食以及训练等,进行数据挖掘主要包括以下内容:第一,把每个主题信息数据进行收集、汇总、分析等,对人员情况、健康、饮食、训练等进行合理分析;第二,多维分析数据信息。根据部队的实际情况,利用数据挖掘技术对部队人员健康、饮食、训练等数据信息进行多维分析,其中包含上钻、切片、下钻等;第三,挖掘健康与饮食之间的内在关系。根据数据库中许多面向主题的历史数据,采用数据挖掘技术进行分析与演算得到部队人员的训练和健康情况与部队饮食之间内在关系,以便于为部队食品采购提供合理的、有效的保障,从而提高部队整体人员的健康水平、身体素质以及训练质量,对提高我国部队战斗力有着深远的意义。

三、结束语

数据挖掘论文范文第5篇

在上述系统设计的基础之上,我们提出了网店客户购买数据挖掘系统的模型,该模型由三个层次组成,其逻辑架构如图一所示。

2、系统设计与实现

2.1系统开发与运行环境硬件环境:CPUIntelI3380M/RAM2G/硬盘320G软件配置:●操作系统:Windows7SP1●开发工具:2005/VisualC#●数据库管理系统:MSSQLServer2008●辅助软件:SPSSClementine11.1;SQLServer2008AnalysisServices(SSAS)

2.2主要技术与系统实现通过对上述对客户购买数据挖掘系统模型的分析可知,该系统主要由用户接口模块、数据清洗模块、数据格式转换模块、数据库生成模块和数据挖掘引擎模块等组成。1)用户接口模块本系统最终目的还是为为客户的决策提供支持,因此友好的界面设计是用户与系统交互的基础。简洁而易于理解的界面有利于提高用户对系统的使用效率。2)数据预处理模块客户访问数据进入数据预处理模块进行清洗,去除无关的信息,剥离出对数据挖掘有价值的数据。数据预处理模块对原始访问数据进行分析,将用户购买数据记录逐条的分割成十个字段,分别为:u_id(访问者编号),u_date(到访日期),u_time(到访时间),u_orderid(订单编号),u_product(客户购买的商品),u_bowser(使用的浏览器类型),page(首次到访页面),place(客户所在地区),payment(支付方式),logistic(物流方式),同时删除访问数据中与以上字段不相干的数据。然后将经过预处理的数据存入中间文件。3)XML转换模块该模块程序使用.NET的相关的方法编写,主要功能将预处理过的客户购买数据转换成标准化XML格式的数据文件进行存储。该程序的主要实现原理是对经过预处理的中间文件中的数据记录逐个分割并存入数组,然后将数组的内容按照XML的格式写入文件,完成转换。4)数据库导入模块利用.NET的相关方法并结合数据库管理工具建立支持数据挖掘的客户购买数据库,编写相关程序将已经转换成XML格式的客户访问数据逐条的导入到数据库并形成日志数据表方便进行后续的数据挖掘。5)数据挖掘引擎模块数据挖掘引擎是实现客户购买数据挖掘系统的实现关键。优秀的数据挖掘算法不仅可以使数据挖掘的结果更加准确,也可以提高数据挖掘的效率。本系统主要用到的算法是该模块利用数据挖掘算法对数据进行挖掘,主要包括算法的优化、日志数据表的删除操作以及挖掘结果集的保存与删除操作等。这里主要用到的算法是K-Means算法。主要是利用该算法发现最相似的客户聚类,通过对聚类的分析来得出网店众多的顾客一般的购买行为模式,从而可以适当地调整网站营销的策略中的来提高网络营销的效果,进而增加销售量。

3、小结

数据挖掘论文范文第6篇

1.1关联分析。它是形如X→Y的蕴涵式,其中X和Y分别称为关联规则的先导和后继。用关联规则可以从大量数据项集中挖掘出它们之间有趣的联系。此外,关联规则也可用于序列模式发现。

1.2分类。它能将数据库中的数据项,映射到给定类别中的一个。分类[3]定义了一种从属性到类别的映射关系,给定样本的属性值,根据已知的模式将其划分到特定的类中。

1.3聚类分析。聚类是根据一定的规则,按照相似性把样本归成若干类别。在对样本合理划分后,对不同的类进行描述。聚类通常用于将客户细分成不同的客户群,如有相同爱好的客户群。

1.4时间序列。按照时间的顺序把随机事件变化发展的过错记录下来就构成了一个时间序列。对时间序列进行观察、研究,找寻它变化发展的规律,预测它将来的走势就是时间序列分析。

1.5孤立点分析。孤立点在数学上是指坐标满足曲线方程,但并不落在曲线上的点。它也可以被看作是在数据集合中与大多数数据特征不一致的数据。对孤立点进行分析极有可能发现重要的隐藏信息。

1.6遗传算法。它是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法;是一个以适应度为目标函数,对种群个体施加遗传操作,实现群体结构重组,经迭代而达到总体优化的过程。目前,将数据挖掘技术应用于烟草行业的研究逐步受到重视。欧阳秀君,刘文在《数据挖掘技术在烟草CRM中的应用》一文中[4],主要探讨如何将数据挖掘中的关联规则、聚类、分类方法应用于烟草CRM中。康江峰,陈辉[5]将基于数据挖掘的技术应用于对烟草精准营销策略的研究。王辛盟[6]采用数据挖掘技术,利用SPSS统计软件,以某烟草配送中心的订单数据和客户资料数据为数据源,用聚类的方法对客户群进行细分。郑阳洋、刘希玉[7]采用基于多层次关联规则挖掘技术,对2007年山东省内某地级市卷烟商业企业的销售数据进行分析,得到“消费者在购买品名为红河(软甲)的客户中,有57%会同时购买类名为八喜的卷烟”的规则。但以上对于烟草行业的数据挖掘研究的方法主要集中在关联规则、聚类分析和分类三种方法上,在接下来的研究中,我将探讨如何将更多的数据挖掘方法应用于烟草行业的数据分析上。

2数据挖掘技术在烟草行业中的应用

2.1聚类分析在卷烟销售中的应用为了便于日常卷烟销售及统计,通常根据卷烟的属性对进卷烟行分类,常见的卷烟分类方法如下:一是按照价位段划分,5元以下、5-10元、10元以上等;二是按照利润贡献度,分为一类烟、二类烟、三类烟、四类烟和五类烟;三是按照卷烟品牌划分,泰山系列、黄鹤楼系列、七匹狼系列等;四是按照产地划分,鲁产烟、沪产烟、外产烟等;五是按照焦油含量划分,低焦油卷烟和高焦油卷烟。以上就卷烟的某一单一属性对卷烟类别进行区分,极大的方便卷烟的销售管理工作,然而,消费者在选择卷烟时,往往会考虑多方面的属性,因此单一属性的卷烟分类无法解释消费者偏好。因此需要引入基于多属性的卷烟分类方法,由于卷烟规格多且本身具有多重属性,基于主观判别分类方法难以满足分类要求,需借助统计学的方法对卷烟进行科学分类。聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程,同一类别的样本表现出较高的相似性。因此,可将聚类分析用于解决上述卷烟分类问题,根据多属性相似程度将卷烟分成几个类别,消费者在同一类别中的香烟偏好无显著差异,即同一类别中的香烟具有较高的替代效应。在实际销售过程中,当某一牌号的卷烟断货、紧俏时,可推荐此牌号所在类别的其它牌号的卷烟给消费者作为有效替代。

2.2时间序列用于卷烟销售趋势预测卷烟销售市场季节性特别显著,主要表现为两个方面:一是市场以节假日为节点,节前卷烟销售迅猛,节后消费趋于平淡;二是夏季是旅游市场的旺盛,旅游业带动外来人口流动增加,卷烟销售量也随同增加。同时,卷烟市场也受经济、人口结构等方面因素影响,使得卷烟销售量存在明显的非线性特征,波动范围比较大,传统线性预测模型难以准确预测。为了提高卷烟销售预测精度,建立一个基于时间序列、能够精确预测卷烟销售量的模型已经成为一种必然趋势。时间序列由四个影响成分所组成,分别是长期趋势、循环变动、季节变动、不规则变动。这四个影响成分与卷烟销售市场的变动规律相吻合。通过建立卷烟销售时间序列模型,对以往销售的历史数据进行分析,能够有效地预测未来卷烟销售市场的走势和发展规律,更好地掌握卷烟市场的供需关系。在此基础上,做好备货工作,设立合理库存,实现有效的货源供应。通过对区域市场变化趋势的预测并结合客户实时经营状况,能够对客户的需求总量做出相适应的预测,确保做好客户的合理定量工作,保障不同零售客户需求。预测结果还可为制定公平合理的货源投放政策提供依据,使得各类货源能够投放至有相应销售能力的客户手中,更好的满足消费者的需求。

2.3孤立点分析用于烟草专卖执法数据挖掘中的孤立点分析方法可以通过计算数据点之间的距离,稠密度等来模拟用户之间的属性差异,由此找到那些属性特征与正常点差异非常大的用户数据点。人们普遍认为孤立点的存在极有可能是度量或执行错误所导致的,因其不符合数据的一般模型,所以在研究普遍现象时,人们总是试图使孤立点的影响最小化,而尽可能排除它们。然而,孤立点可能隐藏着比一般的数据更有价值的信息。近些年来,孤立点挖掘作为一个重要的研究课题,已被广泛用于信用卡诈骗监测、市场内部交易侦测、工业设备故障探测等领域。在已建立的烟草分销数据库中储存着大量客户订单信息,这些订单信息包含多个维度,如用户ID、商品编号、订购数量、需求数量、同一品牌订货间隔等等。可利用孤立点挖掘算法对客户订单数据进行分析,建立客户评估监测模型,找到以下“孤立点”:订单金额高的,敏感牌号订购量大的,敏感牌号订购频繁的,以往订购敏感牌号频率低但最近一段时间频繁订购的,按照商圈不具备高端敏感牌号销路的却频繁订购等等。这类订单“异常”的客户,或者称为“孤立点”,可以被认为是存在相当大的“违规”可能性,我们的专卖执法人员应该对这一类的零售户采取进一步的跟踪调查。孤立点数据分析,势必成为专卖执法的又一利器。

2.4遗传算法用于车辆配送线路优化卷烟商业企业的销售收益主要来自于订单,销售成本主要产生在物流配送的环节。所以,在假设销售量不变的情况下,如何优化线路配置,降低成本,最大化公司利润,在当前烟草行业面临巨大的挑战和压力下,显得尤为重要。因此,采用科学的、合理的方法来确定配送线路将是车辆优化调度工作的重中之重,是物流系统优化、物流科学化的关键。烟草商业企业已有的线路优化系统中储存有客户商店位置、道路情况等信息,可以在此基础上,利用遗传算法对配送线路问题进行优化。将一系列实际中车辆配送的约束条件,转换成二进制编码(染色体)并随机产生初始种群,通过模拟达尔文的遗传选择和自然淘汰的生物进化过程,并借助于自然遗传学的遗传算子进行组合交叉和变异,逐代演化产生出越来越好的近似解,末代种群中的最优个体经过解码,可以作为最终问题的近似最优解,用以实现对车辆的优化调度,即合理地进行配货优化、货物配装优化,特别是配送路线优化。从而达到提高里程利用率,降低行驶费用,减少车辆空驶里程,增加货运量,节约燃料,降低大修费等,为企业带来更大的经济效益。另外,车辆优化调度在减少废气排放量,降低城市空气污染方面也起到积极作用。

3结束语

数据挖掘论文范文第7篇

1.1较高的有效性数据挖掘技术作为一种数据的深加工技术,其本身是带有鲜明的目的性的,在实际应用活动中能够对长时间积累下来的经济统计数据进行基于数据使用者要求的深入加工。在实践应用活动中主要有两种重要的应用形式,一种是对积累经济统计数据的管理高效化处理,一种是对现有经济数据的目的性分析。其中第一种分析方式是从经济数据管理的角度出发的,在应用中主要是以固有数据信息的统计、分类为基础,将原本混乱的数据库信息进行科学、系统的归类,保证统计数据管理的高效性和使用的便利性。另一种工作方式是一种经济数据的再加工过程,以鲜明的数据统计、分析目标为指引对原有数据的呈现形式、组成内容和关联形式进行重新加工,以保证经济统计数据能够最大限度地服务于管理者的需求。

1.2综合应用性强如前文所述,数据挖掘技术是一个工具系统而不是单一的工具,能够实现使用主体的各种信息需求,随着现代社会经济的快速发展,当前我国经济管理的各个部门都需要大量的经济统计信息来作为经济管理决策的基础。但是因为各个管理部门经济管理的领域不同、经济管理的方式不同、经济的管理权限不同,所以相应的经济统计数据呈现形式的需求就不同。这就为经济数据统计系统提出了更高的要求,其不仅要对符合各个经济管理部门需求的数据内容进行统计,同时要将统计完成的数据换算成各种不同的呈现形式,并根据统计信息的来源和统计信息的计算方式对其可靠性进行评估[2]。最终这些数据信息的输出格式还应该符合所服务的经济管理部门管理系统的格式要求,保证统计数据能够在管理部门的管理系统中正常录入、应用,数据挖掘技术很好地满足了上述的复杂经济数据管理要求,其功能的综合性促进了其应用深度的提高和范围的扩大。

1.3宏观数据库有利于数据挖掘技术的应用当前因为经济管理部门的职权较为分散,各个经济管理部门的经济统计数据需求不尽相同。所以我国的经济统计活动绝大多数还采用传统的经济统计方法,统计收集的经济信息存在一定的局限性,不能够服务于经济管理活动的整体,或者造成一些数据统计工作的重复,对经济数据统计工作造成了一系列的质量和效率上的影响。经济数据统计活动急需一个能够整合各个统计系统,实现统计数据信息融合的新技术。宏观经济统计数据库为数据挖掘技术的开展提供了平台,数据管理系统的经济统计信息要正确无误,然后经过数据挖掘技术的整合,就能得到更加丰富的数据资源[3]。

2数据挖掘技术的应用

在社会经济管理活动中,管理主体对经济统计数据的要求主要有两个。一个是统计数据的真实性、一个是数据统计信息的实用性。单就这两个经济统计数据要求而言,数据挖掘技术能够很好地满足经济统计工作的需求,是适用性极强的一种经济数据统计技术,其在具体的经济数据统计活动中主要有以下三种应用方法。

2.1预处理方法在经济数据统计活动中,最为基础的一种处理方式就是经济数据的预处理方法,因为数据挖掘本身是一种基于提供基础信息的智能分析技术。其本身是受基础经济信息限制的,不可能无中生有代替经济数据收集系统的功能。所以所有作为数据挖掘系统数据基础的经济统计数据信息都应该进行预处理,处理的内容主要包括对这些数据中不正确、不真实、不准确,以及不同经济统计数据信息之间差距较大的现象。对这些基础数据存在的问题进行处理的过程被称为数据清理,当前数据清理主要采用的方法有均值法、平滑法和预测法。其中均值法是现代分析技术中模糊理念的一种应用形式,当基础数据中的一个数据点是空值或者噪声数据的时候,可以采用均值法进行处理,即用数据库中所有该属性已知的属性均值来填补空缺。保证数据挖掘系统对基础数据的分析和整理能够正常进行,得出相对而言准确度较高的统计分析数据。其中Ci表示当前数据点的取值,Cj表示当前数据点前后不为空的数据点,K表示当前数据点进行计算所取的参考数据点数量[4]。平滑法依然是对基础数据中空值和噪声数据的计算方法,其与均值法的区别是用加权平均数代替了平均数,考虑了计算过程中提取的每一个数据对数据结果的影响权重,所以计算出的结果往往更加接近真实的数值。其中Ci表示当前数据点的取值,Cj表示当前数据点前后不为空的数据点,K表示为对当前数据点进行计算所取的数据点数量。WJ表示Cj数据点的权值。

2.2集成化处理方法在数据挖掘技术的应用活动中,因为相同地区的数据统计主体不同,或者在不同地区对相同经济数据的统计标准不统一,会产生一系列的数据集成问题,如何对这些调查方向不同或者是呈现方式不同的数据进行有效集成而不影响经济数据统计的准确性,是数据挖掘技术的重要任务。在具体的数据集成过程中主要考虑以下几个方面的问题[5]。

2.2.1模式集成当前因为社会经济活动中经济数据的统计内容过于广泛,很多经济数据统计并不是来自于官方的统计局而是来自一些民间统计组织,或者是由一线社会经济主体直接提供的经济数据,在数据挖掘过程中将这些来自多个数据源存在多种数据呈现模式的经济数据信息进行集成就涉及实体识别的问题。例如在数据挖掘过程中如何确定一个数据库中“std-id”与另一个数据库中的“std-no”是否表示同一实体,当前一般使用数据库与数据库之间的含元数据对比来保证实体识别高效率和高质量[6]。

2.2.2冗余问题数据挖掘本身是对经济统计数据的一种深加工技术,经过其加工的经济统计技术应该在本质上达到最简状态。在数据挖掘过程中要将与其他数据呈现某种正相关关系的数据项目进行精简,以保证数据库中数据量维持在一个较低的水平,为数据管理和应用提供便利。在经济数据挖掘活动中人均国民生产总值就是典型的冗余属性,因为其数值是可以通过国内生产总值和总人口属性计算出来的,所以类似人均国民生产总值这种冗余属性在数据挖掘过程中就应该精简,应用的时候在利用国民生产总值和人口属性计算得出[7]。对冗余属性的判断主要通过相关度对比来实现。其中n表示元组的个数,分别是属性A和属性B的平均值,分别是属性A和属性B的标准方差,在这一公式中如果则表示A、B两个属性是正相关,也就是说A越大B就越大,值越高二者的正相关关系就越密切;如果则表示属性A、B之间没有直接关系,是相互独立的;如果则表示A、B两个属性呈负相关,属性B会随着属性A的减小而增大,的绝对值越大,二者的负相关关联关系就越密切。

2.3决策树方法在数据挖掘技术应用过程中,经过系统的分析和总结以后,分析数据的输出是一个关键的环节,其输出的数据形式会对使用者的经济管理决策产生直接的影响。决策树是一种较为常见的、直观的快速分类方法。其应用的关键是决策树的构建,具体而言主要分为两步:第一步是利用训练集建立并精简一棵决策树,建立输出分析的模型;第二步是利用构建完毕的决策树进行输入数据的分类,这一分类是一个递归的过程,从决策树的根部开始进入到树干、枝丫,直到输入数据的分类满足了某种条件而停止。在具体的应用中停止分割的条件有两个:一个是当一个节点上的所有数据都属于同一个类别的时候;另一个是没有分类属性可以对输入数据进行再分割[8]。在决策树构建完成后,还要根据使用者的具体要求对决策树进行“剪枝”,剪枝的主要目的是要降低因为使用训练集而对决策树本身数据输出产生的起伏影响。

3结语

数据挖掘论文范文第8篇

1.1代码理解在软件开发过程中,程序员面对着诸多的问题,具体内容如下:其一,项目代码的维护,但项目的原有文档已经过期,甚至出现了文档不存在的情况;其二,项目缺陷的修改,但此时项目中的代码程序员并未接触过;其三,项目代码的审查,面对众多的代码,程序员的工作开展较为困难;其四,项目架构设计的提取,但程序员仅掌握了源代码。面对上述的情况,程序员要对源代码进行分层聚类,对各个模块进行可视化的展示,此时,对代码及项目架构的理解将更加准确,因此,提出了分层聚类法。此方法有效分析了源代码,其聚类过程主要分为两个阶段,分别为基于调用入口的聚类与基于PageRank的聚类。在软件系统结构分析过程中,主要应用的方法为软件聚类,此方法作为关键技术主要应用于软件维护活动中,如:软件模块复用、软件模块更改影响及软件体系体系结构挖掘等。通过软件聚类,工程师能够获取软件系统的总体结构划分及局部细节信息。通常情况下,为了实现聚类结果的灵活切换,要提高软件聚类工具的性能,其特性如下:一方面,对软件聚类模块化层次进行划分;另一方面,根据使用者的选择对软件聚类结果进行动态调整。通过对软件聚类领域中图聚类的研究,提出了基于源代码分析的层次化软件聚类算法,此方法满足了多粒度显示软件聚类层次聚类结果的需求,此聚类方法拥有两个阶段,同时对于输出的聚类结果中的模块命名提出了新的方法,即:基于文本挖掘的方法,在此基础上,提取的文本信息拥有了语义信息的模块命名[2]。

1.2代码开发现阶段,JAVA应用中广泛应用着基于开源框架的编程,此时配置的逻辑控制是借助XML配置文件实现的,但现有的JAVA应用为单机版,同时框架的逻辑具有复杂性,开源框架的文档化相对较差。在此情况下,程序员在对框架使用与配置缺少正确性。为了实现上述问题的有效解决,提出了基于应用代码库中的XML配置文件及代码关联结构挖掘的XML配置片段推荐方法,将此方法应用到软件开发中,促进了程序员对配置文件的编辑。上述方法的核心为频繁子树挖掘,通过实验分析可知,该方法具有一定的有效性,特别是在XML配置片段中扮演着重要的角色,因此,它促进了软件的开发。目前,在软件开发构建新系统过程中,程序员需要利用编程框架从而实现编程,此时不仅利于通用性作用的发挥,还利于程序机构的清晰。在框架编程时,开发人员要对编程进行扩展,同时还要构建XML配置文件。框架编程有着一定的优势,但在实际应用过程中仍存在不足,逻辑缺陷极易被应用,在此基础上,程序员对框架的使用缺乏有效性与正确性。在此背景下,配置代码推荐被应用,它具有较强的可用性,分别体现在数据与方法两方面。

1.3回归测试在软件应用开发后,客户将对其进行使用,但使用前与使用过程中,均会出现代码修改的情况,造成此情况的原因为代码缺陷与功能更新。在代码更新后,重新前,要对代码进行测试,此时的测试便是回归测试。它主要是为了验证修改软件,使软件的功能得到有效的发挥。因此,回归测试对于软件来说是重要的,它直接保证着软件的质量[3]。

2结语