数据挖掘技术论文范例(汇总4篇)
【导言】此例“数据挖掘技术论文范例(汇总4篇)”的范文资料由阿拉题库网友为您分享整理,以供您学习参考之用,希望这篇资料对您有所帮助,喜欢就复制下载支持吧!
数据挖掘论文【第一篇】
之所以在某些应用中较CPU能够获得更高的性能,主要是因为GPU和CPU在硬件结构设计上存在很大差异。如图1所示[10],GPU将大量的晶体管用作ALU计算单元,从而适应密集且可并行的图像渲染计算处理需要。相对GPU而言,CPU却是将更多的晶体管用作复杂的控制单元和缓存等非计算功能,并以此来提高少量执行单元的执行效率。此外,存储带宽是另一个重要问题。存储器到处理器的带宽已经成为许多应用程序的瓶颈。目前GPU的芯片带宽是CPU芯片带宽的6倍左右。
/GPU协同并行计算在诸多适用于高性能计算的体系结构中,采用通用多核CPU与定制加速协处理器相结合的异构体系结构成为构造千万亿次计算机系统的一种可行途径。而在众多异构混合平台中,基于CPU/GPU异构协同的计算平台具有很大的发展潜力。在协同并行计算时,CPU和GPU应各取所长,即CPU承担程序控制,而密集计算交由GPU完成。另外,除管理和调度GPU计算任务外,CPU也应当承担一部分科学计算任务[12]。新型异构混合体系结构对大规模并行算法研究提出了新的挑战,迫切需要深入研究与该体系结构相适应的并行算法。事实上,目前基于GPU加速的数据挖掘算法实现都有CPU参与协同计算,只是讨论的重点多集中在为适应GPU而进行的并行化设计上。实践中,需要找出密集计算部分并将其迁移到GPU中执行,剩余部分仍然由CPU来完成。
为了加速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]。
并行编程语言和模型过去几十年里,人们相继提出了很多并行编程语言和模型,其中使用最广泛的是为可扩展的集群计算设计的消息传递接口(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。
因提供丰富的库函数库以及诸多其他研究者贡献和共享的函数库,MATLAB是研究人员实现算法的常用平台。通过封装的数据容器(GPUArrays)和函数,MATLAB允许没有底层CUDA编程能力的研究人员可以较容易获得GPU计算能力,因此MATLAB较OpenCL更容易上手。截止准备本文时,2014版本的MATLAB提供了226个内置的GPU版本的库函数。对于有CUDA编程经验的人员,MATLAB允许直接集成CUDA内核进MATLAB应用。本文第四节的实验亦基于MATLAB实现。
引擎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相关工作综述
基于CPU的数据挖掘算法实现数据挖掘算法的研究一直很活跃,许多成熟和经典的算法已经实现在诸多研究或商用软件包/平台,例如开源的Weka[18]和KNIME,以及商用的IBM公司的PASWModeler(即之前SPSS公司的Clementine®)。这些软件默认都是单机版本,可运行在普通PC或高性能服务器上,基于CPU的计算能力。为了适应目前大规模的计算,出现了基于Google公司提出的MapReduce[19]计算框架实现的开源数据挖掘平台Mahout[20]。相关的研究起源于斯坦福大学AndrewNg研究组2006年的经典论著[21]。由于现有的算法需要先找到可“迁移”到MapReduce的方式,因此目前Mahout平台上仅有几个能支持分布式部署的数据挖掘算法,包括用于分类的朴素贝叶斯、随机森林,用于聚类的k-Means,基于项目的协同过滤等。目前Mahout仍然是基于CPU的计算能力。
聚类算法聚类是数据挖掘中用来发现数据分布和隐含模式的一种无监督学习,每个训练元组的类标号是未知的,并且要学习的个数或集合也可能事先不知道。对于给定的数据集,聚类算法按照一定的度量,将数据对象分组为多个簇,使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大[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倍的加速。
分类算法分类是数据挖掘中应用领域极其广泛的重要技术之一,至今已经提出很多算法。分类算法[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算法的加速效果是非常明显的。
关联分析算法关联规则挖掘是数据挖掘中较成熟和重要的研究方法,旨在挖掘事务数据库频繁出现的项集。因此,挖掘关联规则的问题可以归结为挖掘频繁项集[35]。关联分析算法首先找出所有的频繁项集,然后根据最小支持度和最小置信度从频繁项集中产生强关联规则。Apriori算法[36]是最有影响力的挖掘布尔关联规则频繁项目集的经典算法。Apriori算法使用逐层搜索的迭代方法产生频繁项目集,即利用k频繁项集来产生(k+1)项集,是一种基于生成候选项集的关联规则挖掘方法。在刘莹等人的文章[37]中指出,产生候选项和计算支持度,占据Apriori的大部分计算量。产生候选项的任务是连接两个频繁项集,而这个任务在不同线程之间是独立的,所以这个过程适合在GPU上被并行化。通过扫描交易数据库,计算支持度程序记录一个候选项集出现的次数。由于每个候选项集的计数与其他项集的计数相对独立,同样适合于多线程并行。所以文献[37]的作者们在实现Apriori时使用GPU并行化了产生候选项和计算支持度这两个过程,取得了显著的加速效果。文献[38]是目前发现的对于在GPU上实现频繁项集挖掘最全面细致的研究。他们使用的是早期的CUDA平台,采用了bitmap和trie两种数据结构来实现GPU的挖掘算法,并且根据不同数据集和支持度进行了算法性能的对比,均相对于CPU版本的算法获得的一定的加速比。
时序分析由于越来越多的数据都与时间有着密切的关系,时序数据作为数据挖掘研究的重要分支之一,越来越受到人们的重视。其研究的目的主要包括以下两个方面:一是学习待观察过程过去的行为特征;二是预测未来该过程的可能状态或表现。时序数据挖掘主要包含以下几个主要任务:数据预处理,时序数据表示,分割,相似度度量,分类,聚类等。这些任务中很多都涉及到相当大的计算量。由于问题规模的不断扩大,并且对于实时性能的要求,时序数据挖掘的任务就必须要求充分地提高计算速度或者通过优化减少计算量。时序数据的表示有时候会采取特征来表示,这就涉及到了特征提取问题,当特征数量庞大的时候就需要进行维数约简,主要的方法有奇异值分解法,离散小波变换。这些计算都涉及到很大的时间复杂度,为了减少计算的时间消耗,SheetalLahabar等人使用GPU加速SVD的计算,获得了60多倍的加速效果[39]。动态时间弯曲(DynamicTimeWarping,DTW)起初被应用于文本数据匹配和视觉模式识别的研究领域,是一种相似性度量算法。研究表明这种基于非线性弯曲技术的算法可以获得很高的识别、匹配精度。Berndt和Clifford提出了将DTW的概念引入小型时间序列分析领域,在初步的实验中取得了较好的结果[40]。随着问题规模的扩大,对于DTW的计算成为了时序数据挖掘的首先要处理的问题。在DTW中,搜索需要找出与训练数据最近距离的样本,这就需要搜索与每个训练样本的距离,这就可以很好的利用GPU进行并行化处理。DorukSart等人在对DTW加速的处理中,获得了两个数量级的加速效果[41]。而对于分类和聚类任务的加速,上面已经提到,这里不再累赘。
深度学习深度学习虽然隶属机器学习,但鉴于机器学习和数据挖掘领域的紧密联系,深度学习必定将在数据挖掘领域获得越来越多的应用。从2006年Hinton和他的学生Salakhutdinov在《科学》上发表的文章[42]开始,深度学习在学术界持续升温。深度学习的实质是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类预测的准确性[43]。如何在工程上利用大规模的并行计算平台来实现海量数据训练,是各个机构从事深度学习技术研发首先要解决的问题。传统的大数据平台如Hadoop,由于数据处理延迟太高而不适合需要频繁迭代的深度学习。神经网络一般基于大量相似的神经元,故本质上可以高度并行化训练;通过映射到GPU,可以实现比单纯依赖CPU显著地提升。谷歌搭建的DistBelief是一个采用普通服务器的深度学习并行计算平台,采用异步算法,由很多计算单元独立更新同一个参数服务器的模型参数,实现了随机梯度下降算法的并行化,加快了模型训练速度。百度的多GPU并行计算平台克服了传统SGD训练不能并行的技术难题,神经网络的训练已经可以在海量语料上并行展开。NVIDIA在2014年9月推出了深度学习GPU加速库cuDNN,可以方便地嵌入高层级机器学习框架中使用,例如Caffe[45]。cuDNN支持NVIDIA的全系列GPU,包括低端的TegraK1和高端的TeslaK40,并承诺可向上支持未来的GPU。
小结并行化能带来多少倍的加速取决于算法中可并行化的部分。例如,如果可并行部分的时间占整个应用程序执行时间的20%,那么即使将并行部分加速100倍,总执行时间也只能减少%,整个应用程序的加速只有倍;即使无限加速也只能减少约20%的执行时间,总加速不会超过倍。对于一个数据挖掘(学习和预测)算法进行GPU加速实现,首先要思考是否存在可并行执行的部分,之后再结合GPU的架构特点进行针对性实现优化。然而,由于数据挖掘算法普遍是数据密集型计算,而GPU片内存储容量有限,如何降低与内存交换数据集是一个要解决的关键问题。通过以上相关工作的分析,可以发现数据挖掘算法在GPU上的加速具有数据独立,可并行化共同特征。本文提出数据挖掘算法在GPU上加速实现的一种解决思路:在大数据下,分析算法的性能瓶颈,从而确定算法中耗时大,时间复杂度高的部分,将此部分在GPU上执行,不耗时部分在CPU上串行执行,以达到加速效果。为了更充分利用GPU的并行计算的体系结构,可深入分析耗时大的部分,将具有数据独立,可并行化的部分在GPU上并行执行,达到更进一步的加速效果。
3实践和分析:协同过滤推荐
当前主要的协同过滤推荐算法有两类:基于用户(r-based)和基于项目(item-based)的协同过滤推荐算法。基于项目的协同过滤推荐算法[46-50]认为,项目间的评分具有相似性,可以通过用户对目标项目的若干相似项目的评分来估计该项目的分值。基于用户的协同过滤推荐算法认为,如果用户对一些项目的评分比较相似,那么他们对其他项目的评分也比较相似。本文根据以上总结的算法特征围绕两种经典协同过滤算法的实现,通过大规模数据的实验来验证GPU相对于传统CPU的优势。
算法实现
基于CPU实现协同过滤推荐的两类经典算法本文基于MATLAB实现CPU版本的基于用户和基于项目的两种经典协同过滤推荐算法。实现的步骤:1)数据表示:收集用户的评分数据,并进行数据清理、转换,最终形成一个mn的用户-项目评分矩阵R,m和n分别代表矩阵中的用户数和项目数,矩阵中的元素代表用户对项目的评分值。2)最近邻居搜索:主要完成对目标用户/项目的最近邻居的查找。通过计算目标用户/项目与其他用户/项目之间的相似度,算出与目标用户/项目最相似的最近邻居集。该过程分两步完成:首先采用协同过滤推荐算法中运用较多的度量方法“Pearson相关系数”计算用户/项目之间的相似度得到相应的相似度矩阵,其次是采用最近邻方法找到目标用户/项目的最近的K个邻居,这些邻居是由与目标相似度最高的一些用户/项目组成的。3)产生推荐:根据之前计算好的用户/项目之间的相似度,并使用相应的预测评分函数对用户未打分的项目进行预测,得到预测评分矩阵,然后选择预测评分最高的Top-n项推荐给目标用户。4)性能评估:本研究拟采用平均绝对误差MAE作为评价推荐系统预测质量的评价标准。MAE可以直观地对预测质量进行度量,是最常用的一种方法。MAE通过计算预测的用户评分与实际评分之间的偏差度量预测的准确性;MAE越小,预测质量越高。
基于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。
实验结果与分析
实验环境本实验所用的CPU是IntelXeonE52687W,核心数量是八核,主频率是,内存大小是32GB;所使用的GPU是NVIDIAQuadroK4000,显存容量是3GB,显存带宽是134GB/s核心频率是811MHz,流处理器数是768个。使用Windows764位操作系统,编程环境使用最新的CUDA。
实验数据本实验使用目前比较常用的MovieLens[56]数据集作为测试数据,该数据集从MovieLens网站采集而来,由美国Minnesota大学的GroupLens研究小组提供,数据集1包含943个用户对1682部电影约10万的评分数据,数据集2包含6040个用户对3952部电影约100万的评分数据,其中每个用户至少对20部电影进行了评分。评分的范围是1~5,1表示“很差”,5表示“很好”。实验需要将每个数据集划分为一个训练集和一个测试集,每次随机选出其中80%的评分数据用作训练集,另20%用作测试集。
实验结果与分析本文采用加速比来比较算法的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获得得可观的计算加速而不牺牲应用效果。
小结
本文通过使用JACKET加快开发过程。目前国内还缺少对JACKET的了解和应用,JACKET的出现为科学领域进行大规模计算仿真提供了新的研究方法,并使得研究人员可以在熟悉的MATLAB平台上实现相关算法。
4结束语
本文既对基于GPU加速经典数据挖掘的研究进行了分类回顾和小结,也实践了基于GPU加速协同过滤计算,通过和基于CPU的版本对比,确实可以实现可观的效率提升。这对我们深入研究将GPU应用到大数据处理场景可以积累宝贵的一手经验,并在已知的尚未基于GPU加速的数据挖掘算法有的放矢。
数据挖掘论文【第二篇】
[关键词]数据挖掘数据挖掘方法
随着信息技术迅速发展,数据库的规模不断扩大,产生了大量的数据。但大量的数据往往无法辨别隐藏在其中的能对决策提供支持的信息,而传统的查询、报表工具无法满足挖掘这些信息的需求。因此,需要一种新的数据分析技术处理大量数据,并从中抽取有价值的潜在知识,数据挖掘(DataMining)技术由此应运而生。
一、数据挖掘的定义
数据挖掘是指从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,这些信息的表现形式为:规则、概念、规律及模式等。它可帮助决策者分析历史数据及当前数据,并从中发现隐藏的关系和模式,进而预测未来可能发生的行为。数据挖掘的过程也叫知识发现的过程。
二、数据挖掘的方法
1.统计方法。传统的统计学为数据挖掘提供了许多判别和回归分析方法,常用的有贝叶斯推理、回归分析、方差分析等技术。贝叶斯推理是在知道新的信息后修正数据集概率分布的基本工具,处理数据挖掘中的分类问题,回归分析用来找到一个输入变量和输出变量关系的最佳模型,在回归分析中有用来描述一个变量的变化趋势和别的变量值的关系的线性回归,还有用来为某些事件发生的概率建模为预测变量集的对数回归、统计方法中的方差分析一般用于分析估计回归直线的性能和自变量对最终回归的影响,是许多挖掘应用中有力的工具之一。
2.关联规则。关联规则是一种简单,实用的分析规则,它描述了一个事物中某些属性同时出现的规律和模式,是数据挖掘中最成熟的主要技术之一。关联规则在数据挖掘领域应用很广泛适合于在大型数据集中发现数据之间的有意义关系,原因之一是它不受只选择一个因变量的限制。大多数关联规则挖掘算法能够无遗漏发现隐藏在所挖掘数据中的所有关联关系,但是,并不是所有通过关联得到的属性之间的关系都有实际应用价值,要对这些规则要进行有效的评价,筛选有意义的关联规则。
3.聚类分析。聚类分析是根据所选样本间关联的标准将其划分成几个组,同组内的样本具有较高的相似度,不同组的则相异,常用的技术有分裂算法,凝聚算法,划分聚类和增量聚类。聚类方法适合于探讨样本间的内部关系,从而对样本结构做出合理的评价,此外,聚类分析还用于对孤立点的检测。并非由聚类分析算法得到的类对决策都有效,在运用某一个算法之前,一般要先对数据的聚类趋势进行检验。
4.决策树方法。决策树学习是一种通过逼近离散值目标函数的方法,通过把实例从根结点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每个结点说明了对实例的某个属性的测试,该结点的每一个后继分支对应于该属性的一个可能值,分类实例的方法是从这棵树的根结点开始,测试这个结点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动。决策树方法是要应用于数据挖掘的分类方面。
5.神经网络。神经网络建立在自学习的数学模型基础之上,能够对大量复杂的数据进行分析,并可以完成对人脑或其他计算机来说极为复杂的模式抽取及趋势分析,神经网络既可以表现为有指导的学习也可以是无指导聚类,无论哪种,输入到神经网络中的值都是数值型的。人工神经元网络模拟人脑神经元结构,建立三大类多种神经元网络,具有非线形映射特性、信息的分布存储、并行处理和全局集体的作用、高度的自学习、自组织和自适应能力的种种优点。
6.遗传算法。遗传算法是一种受生物进化启发的学习方法,通过变异和重组当前己知的最好假设来生成后续的假设。每一步,通过使用目前适应性最高的假设的后代替代群体的某个部分,来更新当前群体的一组假设,来实现各个个体的适应性的提高。遗传算法由三个基本过程组成:繁殖(选择)是从一个旧种群(父代)选出生命力强的个体,产生新种群(后代)的过程;交叉〔重组)选择两个不同个体〔染色体)的部分(基因)进行交换,形成新个体的过程;变异(突变)是对某些个体的某些基因进行变异的过程。在数据挖掘中,可以被用作评估其他算法的适合度。
7.粗糙集。粗糙集能够在缺少关于数据先验知识的情况下,只以考察数据的分类能力为基础,解决模糊或不确定数据的分析和处理问题。粗糙集用于从数据库中发现分类规则的基本思想是将数据库中的属性分为条件属性和结论属性,对数据库中的元组根据各个属性不同的属性值分成相应的子集,然后对条件属性划分的子集与结论属性划分的子集之间上下近似关系生成判定规则。所有相似对象的集合称为初等集合,形成知识的基本成分。任何初等集合的并集称为精确集,否则,一个集合就是粗糙的(不精确的)。每个粗糙集都具有边界元素,也就是那些既不能确定为集合元素,也不能确定为集合补集元素的元素。粗糙集理论可以应用于数据挖掘中的分类、发现不准确数据或噪声数据内在的结构联系。
8.支持向量机。支持向量机(SVM)是在统计学习理论的基础上发展出来的一种新的机器学习方法。它基于结构风险最小化原则上的,尽量提高学习机的泛化能力,具有良好的推广性能和较好的分类精确性,能有效的解决过学习问题,现已成为训练多层感知器、RBF神经网络和多项式神经元网络的替代性方法。另外,支持向量机算法是一个凸优化问题,局部最优解一定是全局最优解,这些特点都是包括神经元网络在内的其他算法所不能及的。支持向量机可以应用于数据挖掘的分类、回归、对未知事物的探索等方面。
事实上,任何一种挖掘工具往往是根据具体问题来选择合适挖掘方法,很难说哪种方法好,那种方法劣,而是视具体问题而定。
三、结束语
目前,数据挖掘技术虽然得到了一定程度的应用,并取得了显著成效,但仍存在着许多尚未解决的问题。随着人们对数据挖掘技术的深人研究,数据挖掘技术必将在更加广泛的领域得到应用,并取得更加显著的效果。
数据挖掘论文【第三篇】
关联规则最初是针对购物篮分析问题提出的,目的是发现事务数据库(TransactionDatabase)中不同商品之间的联系。关联规则是形如A=》B的蕴涵式,其中A称为该关联规则的前项,B称为该关联规则的后项。事务,是一个明确定义的商业行为,如顾客在商店购物就是一次典型的事务。由用户设定的支持度和置信度的门槛值,当sup-port(A=>B)、confidence(A=>B)分别大于等于各自的门槛值时,认为A=>B是有趣的,此两值称为最小支持度(minsupport)和最小置信度(minconfidence)。同时满足minsupport和minconfidence的这种关联规则就叫做强的关联规则。设任务相关的数据D是数据库事物的集合,当项集的支持计数≥D中事务总数|D|与minsup-port的乘积时,就叫做频繁项集,当项集的支持计数可能≥D中事务总数|D|与minsupport的乘积时,就叫做侯选项集。所有侯选项集K-项集的集合记作Ck,所有频繁项集K-项集的集合常记作Lk,很明显Lk奂Ck。如果仅依赖最小支持度和最小置信度这两个参数的限制,所挖掘出的强关联规则不一定是用户感兴趣的,因此,用户可以根据实际应用的需求,再结合自身的领域知识,通过选择与实际分析任务有关的数据集,设置不同的参数,限定前项和后项的个数,选择前项和后项包含的属性等操作,对关联规则的挖掘进行约束。
2模糊集理论的引入
在讨论实际问题的时候,需要判定模糊概念涵义,如判断某个数据在模糊集的定义和归属,这时就需要普通集合与模糊集合可依某种法则相互转换。模糊理论中的截集是模糊集合和普通集合之间相互转换的一座桥梁。
3基于事务间数值型关联规则的数据挖掘算法
假设有一就业数据库,先通过数据整理,将原始数据记录值区间[0,10]偏置10个单位。由此就得到了经过偏置后的数据库记录。再依滑动窗口方法,设maxspan=1(该值可以依实际情况的需要来定),就可将偏置后的数据库数据整理转化为扩展事务数据库。再把扩展事务数据库记录通过隶属度函数转化为对应的隶属度。
4结语
事务间具有相互关联的项天生就比事务内的项之间的关联的支持度来得低,这是一个很应值得注意的现象。概括出来就是事务间项具有的低支持度性质,由此衍生出来的就是对提高低支持度项集间关联规则挖掘效率的讨论及其应用。通过基于相似度度量的方法来转换思路不失为一种好的方法,简单地说就是在保证失真能被有效控制的状态下通过科学有效的方法使我们能够最大程度地逼近来接近真值。如何把这一思路运用到事务间关联规则的挖掘上特别是能行之有效地对两个或两个以上的项进行挖掘,这正是本文所想认真讨论的问题。,本文的模糊关联规则算法对数据量较小或面对中小型数据量进行处理(或者直接处理)也是可以的,但面对大数据量或超大数据量却是存在一些问题的。原始数据库转化为扩展数据库光这个计算工作量开销的时间复杂度都是值得深思的;缺少信息压缩存储技术以便尽量降低算法的空间复杂度,如采用Hash技术等。
数据挖掘技术论文【第四篇】
要了解Web数据挖掘技术,首先就必须要了解数据挖掘技术。数据挖掘是指从大量不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、有用的信息和知识的过程。它的表现形式为概念(Concepts)、规则(Rules)、模式(Patterns)等形式。数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。数据挖掘技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。Web数据挖掘是一种综合的技术,它主要是使用数据挖掘技术在互联网挖掘各种有用的、有趣的、隐藏起来的信息或者是有用的模式。与传统的数据挖掘相比,Web数据挖掘所挖掘的信息更加的海量,这些信息具有异构和分布广的特点。对于服务器上的日志与用户信息的挖掘仍然属于传统的数据挖掘。Web数据挖掘由于Web的逻辑结构其所挖掘到的模式有可能是关于Web内容的,也有可能是关于Web结构的。同时有些数据挖掘技术也不能直接运用到Web数据挖掘中。Web数据挖掘的研究范围十分广泛,它的研究主要包括了数据库技术、信息获取技术、统计学、神经网络等。Web数据挖掘根据所处理的对象可以分为三类:Web文档的内容挖掘、Web文档的结构挖掘、Web使用的挖掘。Web文档的内容挖掘指的是从Web文档及对其的描述内容中获取到有用的信息,即是对Web上大量的各种文档集合的内容进行处理,例如摘要、分类、聚类、关联分析等。同时内容挖掘还可以对各种多媒体信息进行挖掘。Web上的内容摘要是用简洁的语言和方式对文档的内容进行描述和解释,让用户在不用浏览全文的情况下就可以对全文的内容和文章写作的目的有一个总体的了解。文章写作的目的有一个总体的了解。而Web内容挖掘的这种方式非常有用,例如应用到检索结果的显示中。Web分类则指的是根据已经确定好的类别,为每一个获得的Web文档确定一个大类。聚类则是指的在没有确定类别之前,将相似度高的文档归为一类。关联分析指的是从文档集合中找出不同语词之间的具有的关系。Web文档的结构挖掘指的是从互联网的整体结构和网页之间的相互链接以及网页本身的结构中获取有用的信息和知识。目前为止针对结构的挖掘主要还是链式结构模式。对于Web结构的挖掘主要源于对引文的分析,引文分析的主要内容就是通过对网页的链接数和被连接数以及对象的分析来建立一个链接结构模式,这种模式可以用来对网页进行归类,同时还可以获取网页之间的相似度和关联度等信息。Web使用的挖掘一般情况下指的是对Web日志的挖掘。其挖掘的对象是用户与互联网交互过程中所抽取出来的各种信息,例如访问记录、用户名、用户注册信息以及用户所进行的操作等。在这一方面的研究已经比较成熟,同时也有很多较为成熟的产品例如NETPERCERPION公司的Netpercerptions,Accrue公司的AccrueInsight和AccrueHitList等都是技术较为成熟的产品。
二、Web数据挖掘技术的工作流程
Web数据挖掘技术的主要工作流程可以分为以下几个步骤:第一步,确立目标样本,这一步是用户选取目标文本,以此来作为提取用户的特征信息;第二步,提取特征信息,这一步就是根据第一步得到的目标样本的词频分布,从现有的统计词典中获取所要挖掘的目标的特征向量,并计算出其相应的权值;第三步,从网络上获取信息,这一步是利用通过搜索引擎站点选择采集站点,然后通过Robot程序采集静态的Web页面,最后再获取这些被访问站点的网络数据库中的动态信息,然后生成WWW资源库索引;第四步,进行信息特征匹配,通过提取源信息的特征向量,去和目标样本的特征向量进行匹配,最后将符合阈值条件的信息返回个用户。
三、Web数据挖掘技术在高校数字图书馆中的应用
高校数字图书馆为师生主要提供以下功能:查找图书、期刊论文、会议文献等数字资源;图书借阅、归还等服务;图书信息、管理制度;导航到图书光盘、视频资源等数据库系统。师生时常登录到网站中查找其需要的信息,根据师生所学专业、研究方向不同,关注目标也不同。通常这类师生会到常用的图书馆网站上,查找自己所需要的特定领域的资源;浏览一下有哪些内容发生变化,是否有新知识增加,而且所有改变常常是用户所关注的内容;另外,当目标网页所在的位置有所改变或这个网站的组织结构、层次关系有所变动时,所有这些问题只要稍加改动,容易使用户难以找到所需内容。本课题采用Web挖掘技术与搜索技术相结合。首先允许用户对感兴趣的内容进行定制,构造数据挖掘的先验知识,然后通过构造浏览器插件,捕获用户在浏览器上的行为数据,采用Web数据挖掘的方法,深入分析用户的浏览行为数据,获得用户的信息资料集,最终为用户提供不同的个性化服务页面,并提供用户对站内信息进行搜索功能,同时可以满足师生对于图书馆资源进行查找访问的需求,实现高校图书馆网站资源真正意义上的个性化服务。
1、为开发网络信息资源提供了工具
数字图书馆需要的是一种可以有效的将信息进行组织管理,同时还能够对信息进行深层的加工管理,提供多层次的、智能化的信息服务和全方位的知识服务,提供经过加工、分析综合等处理的高附加值的信息产品和知识产品的工具。目前许多高校数字图书馆的查询手段还只局限于一些基本的数据操作,对数据只能进行初步的加工,不具有从这些数据中归纳出所隐含的有用信息的功能,也使得这些信息不为人知,从而得不到更好的使用,这些都是对网络信息资源的一种浪费。而通过Web数据挖掘技术科研有效的解决这一问题。这种技术可以用于挖掘文档的隐含的有用的内容,或者可以在其他工具搜索的基础上进一步进行处理,得到更为有用和精确的信息。通过Web数据挖掘技术科研对数字图书关注中的信息进行更加有效地整合。
2、为以用户为中心的服务提供帮助
通过浏览器访问数字图书馆后,可被记载下来的数据有两类,一类是用户信息,另一类是用户访问记录。其中用户信息包括了用户名,用户访问IP地址,用户的职业、年龄、爱好等。用户名师用户登录图书馆时输入,用户访问IP地址通过程序获得,其他的信息都是用户在注册时所填写的,访问记录则是在用户登录时所记录的,也是由程序获得。对这些用户信息进行分析可以更加有效的了解用户的需求通过分析服务器中用户请求失败的数据,结合聚集算法,可以发现信息资源的缺漏,从而指导对信息资源采集的改进,让高校数字图书馆的信息资源体系建设的更加合理。对数字图书馆系统的在线调查、留言簿、荐书条等的数据进行收集整理,并使之转化为标准的结构化数据库,然后在通过数据挖掘,皆可以发现用户所感兴趣的模式,同时还可以预先发现用户群体兴趣的变迁,调整馆藏方向,提前做好信息资源的采集计划。通过Web数据挖掘,可以对用户的信息需求和行为规律进行总结,从而为优化网络站点的结构提供参考,还可以适当各种资源的配置更加的合理,让用户可以用更少的时间找到自己所需要的资源。例如可以通过路径分析模式采掘捕捉确定用户频繁浏览访问的路径,调整站点结构,并在适当处加上广告或荐书条。
3、Web数据挖掘技术在图书馆采访工作中的应用
在图书馆的工作中有一步十分的重要,这就是采访工作,采访工作的做的好坏程度会直接的对图书馆的服务质量产生影响。通常情况图书馆的工作人员会根据图书馆的性质、服务对象及其任务来决定采访的内容。但是这种采访局限性很大,很多时候会受采访人员的主观意识的影响,同时这种方式也会显得死板不灵活。很多时候会出现应该购进的文献没有买,不应该买的文献却买了很多等与读者的需求不符的现象。这些现象的产生都是因为缺乏对读者需求的了解和分析。要解决这些问题就必须对读者的需求进行全面的了解和分析,而Web数据挖掘则为解决该问题提供了一种较好的方法。通过对各种日志文件和采访时获得的数据进行分析,可以很清楚的得到读者需要的是什么样的书籍、不需要的又是什么样的书籍,从而为采购提供各种科学合理的分析报告和预测报告。根据对分析还能帮组图书馆管理人员确定各种所需书籍的比例,从而确定哪些文献应该及时的进行补充,哪些文献应该进行剔除,对馆藏机构进行优化,真正的为高校里的师生提供所需要的文献和资料。
4、使用Web数据挖掘技术提供个性化服务
传统的信息检索工具在友好型、可理解性、交互性方面都存在着很大的缺陷。通常情况下都只是将各种查询结果毫无逻辑的简单的进行罗列,用户很难从其中获取自己需要的信息,通过数据挖掘,可以对图书馆网站上的在线调查、留言簿、读者调查表等数据进行收集整理,对不需要的冗余信息进行剔除。通过分析可以获知用户所喜好的浏览模式是哪种,他们常访问的网站的路径是什么,他们对图书馆中的那些资源比较有兴趣。然后再根据用户的普遍需求与每个人的个性需求,建立起相应的规则,从而帮助网站设计人员对网站进行设计和优化,使得这些信息检索变得更加的个性化、智能化,并根据每个用户的偏好等特征将检索到的信息排列处理,使得读者可以用最快的速度获得想要检索的文献信息。通过Web数据挖掘技术可以对用户的特征信息进行总结,将那些从没有发出过信息的潜在用户进行归类,同时还可以免费的为他们提供各种他们所感兴趣的信息和资料,把这些潜在的用户转变为正式的用户使用Web数据挖掘可以对用户的检索日志进行分析,从而得知用户所感兴趣的内容、他们的研究方向,并根据这些内容为用户指定个性化服务的内容,为用户提供各种他们所感兴趣的各种信息。
5、应用Web数据挖掘技术可以为学校决策者提供更好的决策支持