时间:2023-03-17 18:10:52
导言:作为写作爱好者,不可错过为您精心挑选的10篇数据挖掘论文,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。
随着信息技术迅速发展,数据库的规模不断扩大,产生了大量的数据。但大量的数据往往无法辨别隐藏在其中的能对决策提供支持的信息,而传统的查询、报表工具无法满足挖掘这些信息的需求。因此,需要一种新的数据分析技术处理大量数据,并从中抽取有价值的潜在知识,数据挖掘(DataMining)技术由此应运而生。
一、数据挖掘的定义
数据挖掘是指从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,这些信息的表现形式为:规则、概念、规律及模式等。它可帮助决策者分析历史数据及当前数据,并从中发现隐藏的关系和模式,进而预测未来可能发生的行为。数据挖掘的过程也叫知识发现的过程。
二、数据挖掘的方法
1.统计方法。传统的统计学为数据挖掘提供了许多判别和回归分析方法,常用的有贝叶斯推理、回归分析、方差分析等技术。贝叶斯推理是在知道新的信息后修正数据集概率分布的基本工具,处理数据挖掘中的分类问题,回归分析用来找到一个输入变量和输出变量关系的最佳模型,在回归分析中有用来描述一个变量的变化趋势和别的变量值的关系的线性回归,还有用来为某些事件发生的概率建模为预测变量集的对数回归、统计方法中的方差分析一般用于分析估计回归直线的性能和自变量对最终回归的影响,是许多挖掘应用中有力的工具之一。
2.关联规则。关联规则是一种简单,实用的分析规则,它描述了一个事物中某些属性同时出现的规律和模式,是数据挖掘中最成熟的主要技术之一。关联规则在数据挖掘领域应用很广泛适合于在大型数据集中发现数据之间的有意义关系,原因之一是它不受只选择一个因变量的限制。大多数关联规则挖掘算法能够无遗漏发现隐藏在所挖掘数据中的所有关联关系,但是,并不是所有通过关联得到的属性之间的关系都有实际应用价值,要对这些规则要进行有效的评价,筛选有意义的关联规则。
3.聚类分析。聚类分析是根据所选样本间关联的标准将其划分成几个组,同组内的样本具有较高的相似度,不同组的则相异,常用的技术有分裂算法,凝聚算法,划分聚类和增量聚类。聚类方法适合于探讨样本间的内部关系,从而对样本结构做出合理的评价,此外,聚类分析还用于对孤立点的检测。并非由聚类分析算法得到的类对决策都有效,在运用某一个算法之前,一般要先对数据的聚类趋势进行检验。
4.决策树方法。决策树学习是一种通过逼近离散值目标函数的方法,通过把实例从根结点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每个结点说明了对实例的某个属性的测试,该结点的每一个后继分支对应于该属性的一个可能值,分类实例的方法是从这棵树的根结点开始,测试这个结点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动。决策树方法是要应用于数据挖掘的分类方面。
5.神经网络。神经网络建立在自学习的数学模型基础之上,能够对大量复杂的数据进行分析,并可以完成对人脑或其他计算机来说极为复杂的模式抽取及趋势分析,神经网络既可以表现为有指导的学习也可以是无指导聚类,无论哪种,输入到神经网络中的值都是数值型的。人工神经元网络模拟人脑神经元结构,建立三大类多种神经元网络,具有非线形映射特性、信息的分布存储、并行处理和全局集体的作用、高度的自学习、自组织和自适应能力的种种优点。
6.遗传算法。遗传算法是一种受生物进化启发的学习方法,通过变异和重组当前己知的最好假设来生成后续的假设。每一步,通过使用目前适应性最高的假设的后代替代群体的某个部分,来更新当前群体的一组假设,来实现各个个体的适应性的提高。遗传算法由三个基本过程组成:繁殖(选择)是从一个旧种群(父代)选出生命力强的个体,产生新种群(后代)的过程;交叉〔重组)选择两个不同个体〔染色体)的部分(基因)进行交换,形成新个体的过程;变异(突变)是对某些个体的某些基因进行变异的过程。在数据挖掘中,可以被用作评估其他算法的适合度。
7.粗糙集。粗糙集能够在缺少关于数据先验知识的情况下,只以考察数据的分类能力为基础,解决模糊或不确定数据的分析和处理问题。粗糙集用于从数据库中发现分类规则的基本思想是将数据库中的属性分为条件属性和结论属性,对数据库中的元组根据各个属性不同的属性值分成相应的子集,然后对条件属性划分的子集与结论属性划分的子集之间上下近似关系生成判定规则。所有相似对象的集合称为初等集合,形成知识的基本成分。任何初等集合的并集称为精确集,否则,一个集合就是粗糙的(不精确的)。每个粗糙集都具有边界元素,也就是那些既不能确定为集合元素,也不能确定为集合补集元素的元素。粗糙集理论可以应用于数据挖掘中的分类、发现不准确数据或噪声数据内在的结构联系。
8.支持向量机。支持向量机(SVM)是在统计学习理论的基础上发展出来的一种新的机器学习方法。它基于结构风险最小化原则上的,尽量提高学习机的泛化能力,具有良好的推广性能和较好的分类精确性,能有效的解决过学习问题,现已成为训练多层感知器、RBF神经网络和多项式神经元网络的替代性方法。另外,支持向量机算法是一个凸优化问题,局部最优解一定是全局最优解,这些特点都是包括神经元网络在内的其他算法所不能及的。支持向量机可以应用于数据挖掘的分类、回归、对未知事物的探索等方面。
事实上,任何一种挖掘工具往往是根据具体问题来选择合适挖掘方法,很难说哪种方法好,那种方法劣,而是视具体问题而定。
三、结束语
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平台上实现相关算法。
1.1数据库环境的异构型
Web上的每个站点就是一个数据源,数据源之间是异构的,外加上各个站点的信息和组织的不同,Web网站就构成了一个巨大的异构数据库环境。要对这些数据进行挖掘,首先,要解决各个站点之间的异构数据集成,提供用户统一界面,从复杂的数据源中取得所需的有用的信息知识。其次,有关Web上的数据查询。
1.2数据结构的半结构化
Web上的数据比较复杂,各个站点的数据都独立设计,具有动态可变性。虽然Web上的数据形成半结构化数据。这些问题是进行Web数据挖掘所面临的最大困难。
2XML技术在Web数据挖掘中的优势
Web数据的异构使Web数据挖掘变得十分困难,通过XML可以解决这个问题。因为XML文档具有很好的自我描述性,他的元素、子元素、属性结构树可以表达极为丰富的语义信息,能够很好的描述半结构化的数据,因此在网络数据集成、发送、处理和显示的方面。开发人员能够用XML的格式标记和交换数据。XML在三层架构上为数据的处理提供了有用的途径。利用XML,Web设计人员能够构建文档类型定义的多层次互相关联的系统、元数据、数据树、样式表和超链接结构。基于XML的Web数据挖掘技术,能够使不同来源的结构化的数据很容易地结合在一起,解决Web数据挖掘的难题。
2.1XML技术在Web数据挖掘中具体作用利用XML技术我们在Web数据挖掘中可以完成以下几点:
2.1.1集成异构数据源
XML是一种半结构化的数据模型,可以完成和关系数据库中的属性一一对应,从而实施精确地查询与模型抽取。XML可以搜索多个不同数据库的问题,以实现集成。
2.1.2和异构数据进行交换
在Web数据挖掘程中,用户需要和异构数据源进行数据交换,XML通过自定义性及可扩展性来标识各种数据,从而描述从各站点搜集到的Web页中的数据。XML的出现解决了数据查询的统一接口。
2.1.3过滤信息并显示
XML描述数据本身,可以使得定义的数据以不同的方式显示,对获取的信息进行裁减和编辑以适应不同用户的需求。以不同的浏览形式提供给不同的用户。
3基于XML的Web数据挖掘模型
我们通过对XML及Web数据挖掘的分析,设计了一个基于XML的Web数据挖掘模型通过提供一个Web数据挖掘的集成环境,提高数据挖掘系统的整体性能。工作流程如下:系统根据用户要求搜集Web资源,经数据转换器处理成相应的XML数据存储,提供给挖掘器使用;挖掘器则根据要求从选取相应的算法挖掘,输出挖掘结果;用户根据自己的满意度,获得需要的挖掘结果,调整挖掘要求进入新一轮数据挖掘。通过系统的维护我们可以加入新的挖掘算法,实现升级。
3.1各模块具体功能
3.1.1数据收集
从Web站点上采集数据并存储,获得挖掘内容。针对异构数据源,可以多种方式提出相关需求,挖掘的重点是Web内容和Web使用的数据。把用户访问网站留下原始日志数据进行清洗、过滤和转换处理,转变成统一处理的数据结构,构建日志数据库。
3.1.2转换器
对检索得到的数据用XML技术进行预处理,建立半结构化数据模型,抽取其特征的元数据,用结构化的形式保存,为挖掘模块提供所需的数据。
3.1.3挖掘器
不同的挖掘算法有不同适用情况,挖掘综合器根据具体的需求和挖掘方法的不同选择策略到挖掘算法库中去选择挖掘算法或种组合算法执行挖掘任务。随着应用的深入,知识库中的算法和规则不断的丰富。挖掘算法库是挖掘分析方法的综合库,以插拔的形式组织存放各种挖掘算法。314结果生成与评估以直观的方式提交挖掘结果,便于用户的评估。通过模式分析和兴趣度度量,若结果使得用户满意,数据挖掘结束,输出用户感兴趣的内容;否则可以在此重新提出挖掘要求,重新挖掘。
3.2系统各模块实现方法
3.2.1数据收集
数据的收集也涉及数据挖掘的技术,其过程是:通过人工输入办法,给出查询主题,找到相关的Web页,然后,通过相应的数据挖掘的算法对训练数据集提炼,利用提炼出的数据模式,进行更大范围的搜索,以获取更多的数据源。最终形成较新和有效XML文档。
3.2.2数据的转换处理
数据抽取转换是模型实现一个重要环节,其主要方法是把现有的Web页面转换成XML格式,并使用相关工具处理XML结构数据检要把HTML中含有的与主题无关的标记过滤掉,然后转化到XML的格式存储。目前Web页面到XML文档的转换,有两部分数据构成:一是XML数据,二是非XML数据。XML数据,可以直接将它们提交给下一个模块。对于非XML数据,本文的实现方法是用到Tidy以改正HTML文档中的常见错误并生成格式编排良好的等价文档,还可以使用Tidy生成XHTML(XML的子集)格式的文档。通过构造相应的Java类完成将数据从HTML到XML的转换。
3.2.3挖掘方法
(1)文本分类:文本分类是指按预先定义的主题类别,把集合中的每个文档确定一个所属类别。这样,用户能够方便地浏览文档,并限制搜索范围来使查找更为容易。利用文本分类技术对大量文档进行快速、有效地自动分类。有关的算法通常采用TFIDF和NaiveBayes等方法。
(2)文本聚类:文本聚类与分类的不同之处在于,聚类不需要预先定义好的主题类别,它是将把文档集合分成若干个簇,要求同簇内文档内容相似度最大,而不同簇间的相似度最小。Hearst等人研究表明聚类假设,即与用户查询相关的文档通常会聚类比较靠近,而远离与用户查询不相关文档。可以利用文本聚类技术把搜索引擎检索结果分成若干个簇,用户只要考虑那些相关的簇,就能够缩小所需要浏览的结果数量。目前,常用的文本聚类算法,分为两种:以G-HAC等算法为代表的层次凝聚法,以k-means等算法为代表的平面划分法。
(3)关联分析:关联分析是指从文档集合中发现不同词语之间关系Brin提出一种从大量文档中查找一对词语出现模式算法,在Web上寻找作者和书名的模式,从而发现数千本在Amazon网站上查找不到的新书。
(4)模式评价:Web数据挖掘中十分重要的过程就是模式评价。常用的方法有预留法和交叉实验法,将数据分成训练集和测试集两部分,学习和测试反复进行,最后用一个平均质量模型来确定模型质量的好坏。
(5)预留法:从数据集合随机抽取预定大小一个子集作为测试集,其他数据则作为训练集。
(6)交叉验证法:把整个数据集合按照所要进行的学习测试循环次数分成一定数目的子集,在每次循环中,选取其一个子集作为测试集,其它子集并集则作为训练集。
二、在部队食品采购系统中的应用以及其价值评价
在部队食品采购系统实际应用工程中,其实可以运用MicrosoftSQLServerAnalysisServices来对数据进行分析,并且在数据挖掘过程中对多维数据进行描述与查找起到一定作用。因为多维数据比较复杂,增长的也比较快,因此,进行手动查找是很困难的,数据挖掘技术提供的计算模式可以很好的对数据进行分析与查找。在建设部队食品采购仓库数据的时候,数据内容主要包括了人员的健康、兵员的饮食以及训练等,进行数据挖掘主要包括以下内容:第一,把每个主题信息数据进行收集、汇总、分析等,对人员情况、健康、饮食、训练等进行合理分析;第二,多维分析数据信息。根据部队的实际情况,利用数据挖掘技术对部队人员健康、饮食、训练等数据信息进行多维分析,其中包含上钻、切片、下钻等;第三,挖掘健康与饮食之间的内在关系。根据数据库中许多面向主题的历史数据,采用数据挖掘技术进行分析与演算得到部队人员的训练和健康情况与部队饮食之间内在关系,以便于为部队食品采购提供合理的、有效的保障,从而提高部队整体人员的健康水平、身体素质以及训练质量,对提高我国部队战斗力有着深远的意义。
2增量子空间数据挖掘算法
为了能够有效地在复杂网络中挖掘出目的数据流,使用了复杂网络数据流密度的分析方法在对复杂网络进行社区划分后,通过对社区网络进行无向环路遍历并得到社区网络的所有环路。接下来挖掘算法先后挖掘出目的数据流所属的社区以及环路,最终确定目的数据流的具置。
2.1基于社区网络遍历的数据流挖掘
当数据流i与社区k的相关度最大时,说明数据流i位于社区k的可能性就最大。但是当多个数据流的大小区别不大时,以数据流的大小作为指标来定义相关度会导致挖掘精度较低。这里我们也引入数据流的特征集和数据流中的分组队列长度来计算相关度。
2.2基于多增量空间的数据流挖掘
在采用基于社区网络遍历的数据流挖掘方法得到数据流的所属社区后,我们接着采用基于多增量空间的数据流挖掘方法来挖掘出数据流的所属环路。先将社区网络的环路进行多增量空间扩展,即先得到
目标数据流所经过的环路,再得到数据流所经过的节点与时间的相关系数,这样就可以在时空上确定目的数据流位于环路的哪个节点中。
3实验结果
为了验证本文提出的基于复杂网络数据流密度的增量子空间数据挖掘算法的效果,我们通过matlab7.0软件进行算法仿真,其中仿真的复杂网络由多种网络形式组成,网络节点有200个,数据流大小为500bytes,节点的接收能耗为10nJ/bit,发射能耗为50nJ/bit,进行信号处理和功率放大的能耗为10nJ/bit。其他节点干扰而产生的能量消耗为5nJ/bit。在对本文算法进行分析的过程中,我们采用了对比分析的方法,Lopez-Yanez等人提出一种基于时间序列数据挖掘的新的关联模型,该模型是基于伽玛分类,是一种监督模式识别模型,目的是为了挖掘已知模式中的时间序列,以预测未知的值。由Negrevergne等人提出的一种PARAMINER算法:一个通用的模式挖掘算法的多核架构。多核架构采用的是一种新的数据集缩减技术(称之为EL-还原),在算法中通过结合新的技术用于处理多核心架构的并行执行数据集。为了验证本文算法的挖掘有效性,我们分别在增多节点数量和社区网络数的情况下获取算法的数据挖掘精度。实验采用的精度为NMI[16],实验结果如图3和图4所示。在不同节点数量下基于复杂网络数据流密度的增量子空间数据挖掘算法的挖掘精度更高,挖掘精度高于85%,而文献[14]的挖掘精度在77%以上,挖掘精度在76%以上。因为、提出的关联模型、提出的多核架构没有准确把握数据流在不同时间段里与环路位置的相关情况。而本文算法采用社区网络遍历和多增量空间的方法可以有效地确定这种相关性。图4为不同社区数下的算法挖掘精度,从图中可以看出,当社区网络的种类增多时,会对算法的挖掘精度造成影响,本文算法的挖掘精度在社区数为10时是95.7%,当社区数增加到50时为87.5%。而基于时间序列数据挖掘方法的挖掘精度在社区数为10时是88.6%,在社区数为50时是77.4%,而PARAMINER算法在社区数为10时是86.7%,社区数为50时是78.2%。因此从数据分析来看,本文算法的数据挖掘精度在社区数增多时仍能保持在较高水平。
(1)传统电网能量流由电网单方向流向客户,智能配电网的能量流可双向流动。
(2)传统电网信息流传输慢,信息不完整,存在较多信息孤岛,智能配电网可以实现信息全面集成,高速双向对等通信,支持分布式处理。
(3)传统电网的业务流程局限于部门内部,智能配电网的业务流程贯穿多个部门,支持互动业务流程,全局角度的优化决策。因此,涵盖电源、电网、用户的全流程,贯穿电网规划、设计、建设、运行维护、技术改造、退役的全过程,最终形成电力流、信息流、业务流的高度融合和一体化,将成为智能配电网发展、研究、建设的重点。
智能配电网的信息化建设已经全面开始,但我们仍然不能忽略存在的问题。
(1)对配网信息化的认识和定位不清楚,应用主体不明确,导致后期的应用具体的受益者少或不明显。
(2)对配电信息化系统缺乏统一细致的规划,存在“盲人摸象”的现象,提不出完整而准确的需求。
(3)容易套用调度自动化的建设思路,过分强调实时应用,而没有针对配电信息量大面广的特点,忽视了对其它系统的相关数据利用和整合,造成配电系统的信息缺口很大,模型不完整,后期的应用无法实用化。
(4)配电自动化涉及供电企业内部的生产管理环节较多,因此存在管理体制对自动化基于实时历史数据库开展配电网数据挖掘的应用与研究文/杨劭炜邱佳杰叶伟宝当前全球能源开发利用正呈现多元化、清洁化的发展趋势,我国经济快速发展,用电需求急速增加,而煤炭、风能、水能、太阳能等传统与新能源资源的分布与消费呈逆向分布,因此,国家电网公司在2009年5月21日,提出了建设“坚强智能电网”的发展战略,并分三个阶段逐步实现。国家电网“十二五”电网智能规划中明确了“电网发展方式的转变”是这一期间的核心,而作为“两个薄弱点”之一的“配电网”将是重点需要解决的。本文以配电网为切入点,引入数据挖掘技术,围绕最能体现配网管理水平的各类业务,既提高了传统配电网业务的执行效率,又能发挥信息技术强大的智能决策优势。摘要系统的不适应,或者说是自动化系统对不同的管理体制的适应性不强。造成工作职责界定不清楚,运行管理工作跟不上,系统应用和数据维护工作很薄弱。另外,根据国网“十二五”规划,国家电网公司明确要制定实施农电发展战略,大力加强农网建设。本项目正是以县公司这样的基层供电公司为研究对象,综合考虑配电网业务的复杂性,及县公司覆盖城网和农网的特点,力图在建立一个有效配电网数据挖掘与分析模型的基础上,依托先进的技术手段,提高在县公司对智能配电网的认识和管理水平,并在可能的情况下,将研究成果在浙江省范围内的县级供电企业进行推广。
2项目建设目标
实现对配调图形数据的智能化管理与各业务环节的正常流转;研究无线数据通信节点的接入及组网管理方式,接入包括可能的3G、GPRS、WIFI、RJ45、RS485、RS232等,基于星型、树型等网络结构,管理并维护多个节点,对数据进行预处理;应用有源电子标签的电子标识系统来定位现场配网设备,解决管理人员在日常巡检和维护中,突发状况时的准确定位及地理环境变迁后的配网设备查找;为移动终端上各类信息(地理背景、电力网架、电力用户信息,配网设备台帐等)提供图形化的展示和管理;实现以文件或接口的方式导入电网拓扑、电力用户信息、设备台帐信息等。项目主要研究内容:
(1)工作任务生成与流转方式的研究。提出工作任务的概念,将其作为系统中业务流转的唯一单元。设计并实现其具体流转方式。
(2)无线数据网络的研究。分析以无线数据网作为整个系统的通讯核心的技术可行性。研究无线数据通信节点的接入及组网管理方式,接入包括可能的3G、GPRS、WIFI、RJ45、RS485、RS232等,基于星型、树型等网络结构,管理并维护多个节点,对数据进行预处理。
(3)有源电子标签的研究与应用。研究使用有源电子标签的电子标识系统来定位现场配网设备的技术可行性,以解决管理人员在日常巡检和维护中,对突发状况时的准确定位及地理环境变迁后的配网设备查找。
(4)移动终端上配网信息可视化展现的研究。为移动终端上各类信息(地理背景、电力网架、电力用户信息,配网设备台帐等)提供图形化的展示和管理。
(5)与相关系统数据接口的研究与实现。研究电网拓扑、电力用户信息、设备台帐信息等数据的载入方式及其技术可行性。涉及系统包括:GIS,PMS,营销系统等。
3项目技术方案详情
3.1系统架构
(1)总体要求及架构。系统将采用面向服务架构(SOA),遵循IEC61970标准接口和CIM数据标准,集成SCADA、市公司数据交换总线(IEB)、电力营销、气象网站、负控管理等相关系统,采用数据仓库技术,有效解决多源头复杂数据的采集、海量数据之上进行快速准确科学的数据分析的难题,贴近国内供电企业电网运行工况和负荷分析预测人员及电网规划人员日常工作所需的基于省公司实时历史数据库开展配电网数据挖掘系统。
(2)技术路线。①基于IEC、CIM等标准,建立资源中心,通过IEB企业总线接收来自PMS、ACADA、电力营销、用电采集、气象系统等的多维数据;②采用C/A/S三层架构,保证平台的稳定性和时效性;③部署上满足大范围推广应用;
3.2集成框架
基于省公司实时历史数据库开展配电网数据挖掘平台集成了SCADA、市公司数据交换总线(IEB)、电力营销、气象网站、负控管理等相关系统。集成框架如图1所示。
4硬件架构
平台应用采用单独的应用服务器独立部署,需要配置相应的软硬件环境。应用服务器通过F5实现均衡负载,当用户增加,已有服务器性能影响用户体验时,通过增加应用服务器的方式提升系统整体性能。
5软件架构
基于省公司实时历史数据库开展配电网数据挖掘平台将提供6大业务分析功能及3个基础管理功能,共约40个分析子功能项,满足各级负荷分析预测人员的日常工作所要。
1.1Hadoop平台的具体操作流程
(1)对物联网中的RFID数据进行过滤、转换、合并的处理,并在分布式系统HDFS中保存PML文件形式的数据。同时,可采取副本策略来处理PML文件,在同一机构的不同节点或不同机构的某一节点上保存PML文件中的2-3个副本,进而可实现对存储、处理、节点失效问题的有效解决。
(2)在执行任务过程中,创建和管理控制是Master(主控程序)的主要工作,当Worker处于空闲状态时会接收到有关的分配任务,需与Map/Reduce互相合作实现操作处理,处理的最终结果由Master来归并,同时将反馈结果传送给用户。
1.2Map/Reduce的具体操作流程
(1)根据参数在Map/Reduce思想指导下对输入文件进行分割处理,使其细化为M块(16-64M大小范围)。
(2)Master、Worker、Map操作(M个)、Reduce操作(R个)是构成执行程序的主要部分,其中Map/Reduce的处理任务会由Master伴随物联网的快速发展和广泛应用,人们可以有效利用物联网来实现信息交换和通信的目的,不过物联网海量数据的日益增多大大降低了物联网服务的质量。在此,对基于Apriori算法进行物联网数据挖掘研究。摘要将其分配给空闲的Worker。
(3)在处理Map任务时,Worker会读取处理中的数据,并向Map函数传送<key,value>,而后产生中间结果在内存中缓存且定时向本地硬盘传送。此外,依据分区函数将中间结果分割为R块区,利用Master将本地硬盘接收到的数据位置信息传送给Reduce函数。
(4)ReduceWorker根据Master所传送的文件信息采用远程读取方式来操作,以在本地文件中找到对应的文件,对文件的中间key进行有序排列,并利用远程发送信息给具体执行的Reduce。
(5)ReduceWorker依据key排序后的中间数据向Reduce函数传送与key对应的中间结果集,而最后的结果需采取最终输出文件来进行编写。
(6)当Map、Reduce的任务全部完成之后,MapReduce将回归到用户程序的调用点处,同时以Master对用户程序进行激活。
2基于Apriori算法的物联网数据挖掘
2.1Apriori数据挖掘原理和操作流程
Apriori是提升物联网数据挖掘功能的一种最有效算法,其原理是在K项集中以逐层搜索迭代的方式来探索。具体的操作流程包括:
(1)扫描数据集以生成频繁1-项集L1。
(2)通过L1来探索频繁项集L2,采用不断迭代的方式来持续探索,直至频繁项集是空集。
2.2K次循环搜索后的数据挖掘流程
当已完成了K次循环搜索时,还需要进行2个数据挖掘的操作流程:(1)在LK-1生成CK(候选集)之后,开展JOIN操作。(2)支持度统计和剪枝的操作依据Apriori性质来进行,而后使得CK生成LK(频繁集)。为提高物联网数据挖掘的效率,节省系统的时间和内存消耗,在Apriori算法基础上还需要借鉴和移植云计算平台的分布式并行计算性质。如此以实现Hadoop架构的建立,在扫描数据库查找频繁项集中得到的并联规则需要存储在Hadoop架构中。同时,为取得各个计算节点上的局部频繁项集,各个DataNode节点需要经历并行操作的扫描处理,并使用Master来统计和确定实际全局的支持度、频繁项集。
2.3Apriori算法Map/Reduce化的处理流程
上述提及基于Apriori算法的物联网数据挖掘需借助于Map/Reduce模式,其数据挖掘功能的实现还应Map/Reduce化Apriori算法。主要的处理流程包括:
(1)用户提出挖掘服务的请求,且由用户来设置Apriori所需的数据,如最小支持度、置信度。
(2)当Master接收到请求后,通过NameNode来进行PML文件的申请,而后逐步完成访问空闲节点列表、向空闲的DataNode分配任务、调度和并行处理各个DataNode需要的存储节点算法。
(3)运用Map函数来处理每个DataNode的<key,value>对映射、新键值对,以CnK(用1表示每一个CnK的支持度)来表示所产生的一个局部候选频繁K项集。
(4)通过Reduce函数来实现调用计算,对每个DataNode节点上相同候选项集的支持度进行累加,以产生一个实际的支持度,将其与最小支持度(用户申请时所设置)进行比较,进而用LnK表示所生成的局部频繁K项集的集合。
(5)对所有的处理结果进行合并,从而实现全局频繁K项集LK的生成。
发现的是用户感兴趣的知识;发现的知识应当能够被接受、理解和运用。也就是发现全部相对的知识,是具有特定前提与条件,面向既定领域的,同时还容易被用户接受。数据挖掘属于一种新型的商业信息处理技术,其特点为抽取、转化、分析商业数据库中的大规模业务数据,从中获得有价值的商业数据。简单来说,其实数据挖掘是一种对数据进行深入分析的方法。因此,可以描述数据挖掘为:根据企业设定的工作目标,探索与分析企业大量数据,充分揭示隐藏的、未知的规律性,并且将其转变为科学的方法。数据挖掘发现的最常见知识包括:
1.1.1广义知识体现相同事物共同性质的知识,是指类别特点的概括描述知识。按照数据的微观特点对其表征的、具有普遍性的、极高概念层次的知识积极发现,是对数据的高度精炼与抽象。发现广义知识的方法与技术有很多,例如数据立方体和归约等。
1.1.2关联知识体现一个事件与其他事件之间形成的关联知识。假如两项或者更多项之间形成关联,则其中一项的属性数值就能够借助其他属性数值实行预测。
1.1.3分类知识体现相同事物共同特点的属性知识与不同事物之间差异特点知识。
1.2数据挖掘过程
1.2.1明确业务对象对业务问题清楚定义,了解数据挖掘的第一步是数据挖掘目的。挖掘结果是无法预测的,但是研究的问题是可预见的,仅为了数据挖掘而数据挖掘一般会体现出盲目性,通常也不会获得成功。基于用户特征的电子商务数据挖掘研究刘芬(惠州商贸旅游高级职业技术学校,广东惠州516025)摘要:随着互联网的出现,全球范围内电子商务正在迅速普及与发展,在这样的环境下,电子商务数据挖掘技术应运而生。电子商务数据挖掘技术是近几年来数据挖掘领域中的研究热点,基于用户特征的电子商务数据挖掘技术研究将会解决大量现实问题,为企业确定目标市场、完善决策、获得最大竞争优势,其应用前景广阔,促使电子商务企业更具有竞争力。主要分析了电子商务内容、数据挖掘技术和过程、用户细分理论,以及基于用户特征的电子商务数据挖掘。
1.2.2数据准备第一选择数据:是按照用户的挖掘目标,对全部业务内外部数据信息积极搜索,从数据源中获取和挖掘有关数据。第二预处理数据:加工选取的数据,具体对数据的完整性和一致性积极检查,并且处理数据中的噪音,找出计算机丢失的数据,清除重复记录,转化数据类型等。假如数据仓库是数据挖掘的对象,则在产生数据库过程中已经形成了数据预处理。
1.2.3变换数据转换数据为一个分析模型。这一分析模型是相对于挖掘算法构建的。构建一个与挖掘算法适合的分析模型是数据挖掘获得成功的重点。可以利用投影数据库的相关操作对数据维度有效降低,进一步减少数据挖掘过程中数据量,提升挖掘算法效率。
1.2.4挖掘数据挖掘获得的经济转化的数据。除了对选择科学挖掘算法积极完善之外,其余全部工作都自行完成。整体挖掘过程都是相互的,也就是用户对某些挖掘参数能够积极控制。
1.2.5评价挖掘结果这个过程划分为两个步骤:表达结果和评价结果。第一表达结果:用户能够理解数据挖掘得到的模式,可以通过可视化数据促使用户对挖掘结果积极理解。第二评价结果:用户与机器对数据挖掘获得的模式有效评价,对冗余或者无关的模式及时删除。假如用户不满意挖掘模式,可以重新挑选数据和挖掘算法对挖掘过程科学执行,直到获得用户满意为止。
2用户细分理论
用户细分是指按照不同用户的属性划分用户集合。目前学术界和企业界一般接受的是基于用户价值的细分理论,其不仅包含了用户为企业贡献历史利润,还包含未来利润,也就是在未来用户为企业可能带来的利润总和。基于用户价值的细分理论选择客户当前价值与客户潜在价值两个因素评价用户。用户当前价值是指截止到目前用户对企业贡献的总体价值;用户潜在价值是指未来用户可能为企业创造的价值总和。每个因素还能够划分为两个高低档次,进一步产生一个二维的矩阵,把用户划分为4组,价值用户、次价值用户、潜在价值用户、低价值用户。企业在推广过程中根据不同用户应当形成对应的方法,投入不同的资源。很明显对于企业来说价值用户最重要,被认为是企业的玉质用户;其次是次价值用户,被认为是金质用户,虽然数量有限,却为企业创造了绝大部分的利润;其他则是低价值用户,对企业来说价值最小,成为铅质用户,另外一类则是潜在价值用户。虽然这两类用户拥有较多的数量,但是为企业创造的价值有限,甚至很小。需要我们注意的是潜在价值用户利用再造用户关系,将来极有可能变成价值用户。从长期分析,潜在价值用户可以是企业的隐形财富,是企业获得利润的基础。将采用数据挖掘方法对这4类用户特点有效挖掘。
3电子商务数据挖掘分析
3.1设计问卷
研究的关键是电子商务用户特征的数据挖掘,具体包含了价值用户特征、次价值用户特征、潜在价值用户特征,对电子商务用户的认知度、用户的需求度分析。问卷内容包括3部分:其一是为被调查者介绍电子商务的概念与背景;其二是具体调查被调查对象的个人信息,包含了性别、年龄、学历、感情情况、职业、工作、生活地点、收入、上网购物经历;其三是问卷主要部分,是对用户对电子商务的了解、需求、使用情况的指标设计。
3.2调查方式
本次调查的问卷主体是电脑上网的人群,采用随机抽象的方式进行网上访问。一方面采用大众聊天工具,利用电子邮件和留言的方式发放问卷,另一方面在大众论坛上邀请其填写问卷。
3.3数据挖掘和结果
(1)选择数据挖掘的算法利用Clementine数据挖掘软件,采用C5.O算法挖掘预处理之后数据。
(2)用户数据分析
1)电子商务用户认知度分析按照调查问卷的问题“您知道电子商务吗?”得到对电子商务用户认知情况的统计,十分了解20.4%,了解30.1%,听过但不了解具体使用方法40.3%,从未听过8.9%。很多人仅听过电子商务,但是并不清楚具体的功能与应用方法,甚至有一小部分人没有听过电子商务。对调查问卷问题“您听过电子商务的渠道是什么?”,大部分用户是利用网了解电子商务的,占40.2%;仅有76人是利用纸质报刊杂志上知道电子商务的并且对其进行应用;这也表明相较于网络宣传纸质媒体推广电子商务的方法缺乏有效性。
2)电子商务用户需求用户希求具体是指使用产品服务人员对应用产品或服务形成的需求或者期望。按照问题“假如你曾经使用电子商务,你觉得其用途怎样,假如没有使用过,你觉得其对自己有用吗?”得到了认为需要和十分需要的数据,觉得电子商务有用的用户为40.7%,不清楚是否对自己有用的用户为56.7%,认为不需要的仅有2.4%。
3)电子商务用户应用意愿应用意愿是指消费者对某一产品服务进行应用或者购买的一种心理欲望。按照问题“假如可以满足你所关心的因素,未来你会继续应用电子商务吗?”获得的数据可知,在满足各种因素时,将来一年之内会应用电子商务的用户为78.2%,一定不会应用电子商务的用户为1.4%。表明用户形成了较为强烈的应用电子商务欲望,电子商务发展前景很好。基于用户特征的电子商务数据研究,电子商务企业通过这一结果能够更好地实行营销和推广,对潜在用户积极定位,提高用户体验,积极挖掘用户价值。分析为企业准确营销和推广企业提供了一个有效的借鉴。
二、最小二乘法拟合直线
最小二乘法是一种数学优化技术。它以某一社会、经济或自然现象为对象,寻找一拟合曲线,以满足给定对象系统的一组观测数据。通常要求选择的拟合曲线会使各观测数据到拟合曲线的误差的平方和最小。
本文研究销售企业(如商场)异常客户的性质。设一段时期内客户的累计消费金额为y,对应的消费时期为x。假定测得客户的n个数据(x1,y1),…,(xn,yn),则在XOY平面上可以得到n个实验点:Pi(xi,yi)(i=1,…n),这种图形称为“散点图”(如图1,图2)。在利用最小二乘法进行分析时,各种非线性关系的拟合曲线均可线性化,因此此处选择直线y=ax+b作为拟合直线,寻求x与y之间近似线性关系时的经验公式。其中a为直线的斜率,b为直线在y轴上的截距。
如果Pi(i=1,…n)全部位于同一条直线上,则可认为变量之间的关系为y=ax+b,但一般情况下不会如此。记估计值=axi+b,则各实验点与拟合直线之间的误差为εi=-yi=(axi+b)-yi,它反映了用直线y=ax+b来描述(xi,yi)时,估计值与观测值yi之间的偏差大小。则有:
要求偏差越小越好。但由于εi可正可负,简单求和可能将很大的误差抵消掉,只有平方和才能反映二者在总体上的接近程度,这就是最小二乘原则。于是问题归结为根据这一要求来确定y=ax+b中的a和b,使得最小。因为F(a,b)是关于a、b的二次函数并且非负,所以其极小值总是存在的。根据罗彼塔法则,F取最小值时,有:
于是得到了符合最小二乘原则的相应解:
三、基于斜率的异常客户挖掘算法
1.问题描述
本文的目的是研究某一消费时期内,异常客户的消费倾向。取异常客户一年内各月份的累计消费金额为参考,记录的数据如下(表1,表2)。根据其散点图(图1,图2)可以看出,客户的累计消费金额随时间都呈上升趋势,所以难以观察出该客户是否对商场保持持久的忠诚度,是否有转向竞争对手的可能。基于斜率的异常客户挖掘算法正是要解决识别客户性质这一问题。
2.算法描述
算法:Outlier_Analysis。根据输出的a值来判断异常客户的性质:积极的或消极的。
输入:客户数据,即参考点,由有序点对(xi,yi)表示;参考点的个数n。
输出:a(直线的斜率),b(直线在y轴上的截距)。
方法:
(1)初始化a、b。
(2)对客户的n个观测数据(即n个记录点)进行相关数据计算:
(3)ifa<0then
客户购买金额呈减少趋势,为消极客户
else
2空间数据挖掘应用模型的实现
2.1模型设计
城市空间布局及发展具有规范性,因此,对避难场所进行选址需要遵循城市发展战略及人口增长规律。
1)数据挖掘预处理。对研究区各行政区划的人口数据、面积、土地利用类型、已建应急避难场所等数据进行统计,建立txt文本,进行空间数据挖掘,创建数据字典。
2)数据矢量化。在ArcGIS10平台中,以合肥市地图为底图,对行政区划进行数字化,并结合合肥市最新规划图及遥感影像图,对元数据进行矢量化,并编辑地物的属性,形成ShapeFile文件。
3)建立数据库。将空间数据中的属性信息录入属性数据库。
4)空间分析。结合矢量化的人口密度专题图和现有场地点状分布图,重点对服务区覆盖范围外人口进行分析,通过对空间数据进行缓冲区分析、栅格分析、重分类、叠加分析、地图运算等过程,确定应急避难场所综合评价方案,最终确定新场所地址。
5)可视化。根据最终新场所的ShapeFile文件,结合人口密度分布图,制作新场所分布图。
2.2文本及地理信息数据挖掘
1)地理空间特征提取。依据《安徽省应急避难场所分级技术标准(试行)》的场所分级和选址要求[1,2],从纸质地图、规划图、统计数据等地理文本中抽取符合条件的元数据。
2)地理数据分类。从挖掘后的地理空间数据中提取道路、土地利用类型、人口密度、新居民地等地物数据及各类地物的空间特征信息。
3)空间数据挖掘:对空间特征信息进行评价,将符合选址条件的用地数据以及影响避难场所选址的主要因素进行分类、提取,建立相应的空间位置、属性信息,并绘制矢量图层。
3数据库的设计与实现
研究模型的数据库由空间数据库和属性数据库组成,统一存放在关系数据库中,实现数据的统一管理。
1)空间数据库的设计与实现。将要矢量化的合肥市地图进行扫描,加载到ArcMap中,打开ArcCatalog,在目标文件夹下新建ShapeFile文件。通过对需要矢量化的地物进行分析,将现有应急避难场所归为点图层,将城市主、次干道、断裂归为线图层,将土地利用类型、河流、湖泊、人口密度、现有居民地等要素归为面图层。
2)属性数据库的设计与实现。在ArcMap中打开表,进行地物属性库的编辑,对照空间属性库表,分别添加地物的属性字段,并输入属性信息。
4应急避难场所的空间优化和选取
4.1影响选址的主要因素
本文依据《地震应急避难场所选址及配套设施要求》,对影响选址的主要因素进行分类、量化。
4.1.1场地的安全性
选址应具有地质、水文及自然环境方面的抗震安全保障。新建场地距离断层必须有一定的距离,利用GIS的缓冲区分析,建立断层的6层缓冲区,分别赋予不同的评价指标。
4.1.2现有避难场地
按照安徽省地震应急避难场所及配套设施要求,地震应急避难场所分为3类,其服务范围分别为5km、1km、0.5km。以此为标准,对研究区现有27个应急避难场所进行类型划分,并建立服务范围属性表。应用ArcMap的缓冲区分析功能,分别建立以5km、1km、0.5km为服务半径的缓冲区,生成服务范围矢量图,并转换为栅格图像,进行重分类。
4.1.3土地利用现状
新选址的区域覆盖合肥市主、副城区范围,城市区域用地多数被建设用地覆盖,其中有些地块不适于建造避难场地,例如工业用地。土地利用现状评价指标
4.1.4现有居民点空间分布
避难场地的位置距离居民点有距离限制。以居民点为研究对象,进行邻近区分析。对合肥市居民点进行以100m为层次的缓冲区分析,并把矢量数据转为栅格数据。