时间: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平台上实现相关算法。
主要采用关联规则与频次分析相结合的数据挖掘方法,关联规则旨在提示处方中存在的两个或两个以上腧穴之间的配伍形式,频次分析能够提供针灸治疗某一疾病选用的腧穴及其频繁程度。罗玲等在全面采集古代针灸治疗中风文献基础上,重点进行了选穴的经络症状关联分析,发现针刺治疗中风半身不遂使用腧穴频次最多的为曲池、肩等手阳明经穴;肩、曲池、足三里、百会、风池配伍是最常用处方;多选用足少阳经和手足阳明经穴位。针刺治疗中风不省人事使用腧穴频次最多的为督脉百会穴、心包经中冲穴;风池、百会、曲池配伍或大椎、百会、风池配伍是最常用处方;经脉多选用督脉和足少阳、手阳明等阳经穴位。以上表明针灸治疗中风遵循了辨证循经取穴的处方规律。何冬凤等在全面采集现代针灸治疗心绞痛临床文献基础上,重点进行了选穴的经络部位关联分析。结果发现,心绞痛选穴分布在心包经、膀胱经、任脉、心经最多;选穴主要分布在上肢部、背部、胸部,上肢部用穴中近90%分布于心包经和心经,背部用穴近95%分布于膀胱经,胸部用穴全分布于任脉和心经。以上表明针灸治疗心绞痛遵循了辨位循经取穴的处方规律。数据挖掘结果证实了古代、现代取穴规律和特点与针灸临床理论的一般规律和特点是基本相符的。经络辨证提示了经穴效应的循经性,特定穴的选用提示了经气会聚状态是腧穴发挥效应特异性的关键。
1.2腧穴运用规律的研究
1)神经系统疾病:赵凌等收录了从先秦至清末的偏头痛针灸专著,采用多层关联规则挖掘算法,计算腧穴项集的支持度和置信度,发现手足少阳经脉的穴位丝竹空、风池、率谷、颔厌、头临泣出现频次最高,偏头痛处方配伍中以合谷一风池出现的频次最高,少阳经的交会穴选用最多。杨洁等发现针灸治疗贝尔面瘫中,手足阳明经穴选用最多,重视局部穴位,配合远端选穴,地仓穴为使用频次最多经穴,交会穴、五输穴、下合穴等特定穴运用广泛。吴粮葶等挖掘针灸治疗中风后遗症的现代文献,表明针灸治疗中风后遗症选穴以循经为基础,首选阳经腧穴,分布主要在四肢,阳明经与少阳经的配伍关系最为常用,特定穴为选穴的主体,特别重视交会穴及肘膝关节以下的特定穴。李旗等挖掘出针刺治疗格林巴利综合征所选腧穴以足三里、合谷、曲池、阳陵泉、外关、三阴交使用频率最高,经络则以手足阳明经最为常用。CongMen等以不同针刺手法刺激小鼠足三里,构筑神经元混沌放电的复杂网络来刻画神经元放电时间序列的时变特性。
2)消化系统疾病:任玉兰等通过多维、多层的关联规则分析针刺治疗功能性消化不良的古文献,发现足三里、中脘、脾俞、胃俞、内关是治疗FD最常用的主要腧穴,足三里与中脘相配是最主要穴位组配方式;取穴以循经为基础,主要集中在任脉、膀胱经、脾胃经上;所选腧穴以特定穴为主体,遵循局部与远端取穴相结合原则。张勇等以古文献中治疗鼓胀的经穴为原始数据,运用频数统计及关联规则算法,统计出古代治疗鼓胀最常用经穴为足三里、水分、气海等,通过2次priori关联结果,最终确认组穴1(复溜,中风)和组穴2(复溜,脾俞)在临床应用中具有强关联性。郑华斌等发现在治疗肠易激综合征中,特定穴的使用广泛,其中以足三里为最,其次为天枢、上巨虚、中脘等,脏腑辨证取穴为针刺治疗肠易激综合征的重要原则,以足阳明胃经的足三里和天枢为主。
3)心血管系统疾病:何冬凤等收集从先秦至清末有关胸痹的文献,挖掘结果为历代针灸治疗胸痹以心包经选用频次最高,阴经使用最为频繁,特定穴的选用占有绝对优势,如五输穴原穴络穴等,体现了循经取穴原则。高丽美通过频次分析及关联规则算法挖掘现代穴位贴敷治疗心绞痛文献,结果表明心俞、膻中、内关、厥阴俞使用频次最多,腧穴选用以特定穴为主,俞募配伍使用最多。腧穴分部以胸腹部、背部腧穴为主;以足太阳膀胱经、任脉、手厥阴心包经选用频次较高。
4)其他系统疾病:王洪彬等借鉴文献计量学及数据挖掘的相关方法,对针灸治疗更年期综合征的常用腧穴及经络进行描述性统计。发现现代治疗女性更年期综合征所选取的穴位中以三阴交、肾俞、关元、足三里使用频率最高,膀胱经、任脉、脾经腧穴应用最为广泛。王静等发现源于149篇文献的186条数据元素组成的阿片类药依赖针灸治疗数据库中,用穴频次居于前五的经穴足三里、三阴交、内关、合谷和神门构成了穴—穴,症—穴,研究对象—穴,—穴和戒毒分期—穴等关联规则中的穴位主体。
1.3刺灸方法的应用规律研究
贾春生等提出建立刺灸法文献数据库并设计文献数据应用平台,在此基础上分析数据资料,建立刺灸法数据挖掘模型。此后,各学者运用数据挖掘方法对穴位注射、火针、穴位敷贴、穴位埋线、刺络放血等刺灸法进行了特异性规律及特点的研究。刺灸法挖掘技术的应用中,频次分析最为常用,能够提供各类刺灸法治疗不同疾病的频繁程度,筛选其治疗的优势病种。张选平等发现穴位埋线疗法主要优势病种是内科的胃脘痛、肥胖病、痫证、哮喘、腹痛、面瘫、便秘;外科的腰腿痛;皮肤科的牛皮癣和五官科的重睑术。刘新等总结出放血针具共涉及9种,以三棱针使用频次最高,将放血量人为分为6个等级,其中放血量为少许(少于0.1mL)的出现频次最高,为401次。许晓康等发现水针疗法在内科疾病治疗中出现频次最高,其次为外科疾病,相对于其他疾病,呃逆出现频次最高。
1.4腧穴疾病谱的研究
吴粮葶等通过规范病症、腧穴名称,统计中风后遗症所属病症的针灸病症谱及总结针灸治疗中风后遗症的腧穴谱,结果显示针灸病症谱分布呈偏向性,腧穴谱遍布十四经脉,首选阳经腧穴,常用腧穴以阳明少阳经穴为主。邢晶晶等通过文献比例、疾病比例对内关及其常见配伍的针刺病谱进行分析,总结出内关针刺病谱主要分布于脾胃系和心系;单穴内关针刺病谱中冠心病文献比例最高;内关配伍足三里针刺病谱中呃逆文献比例最高;内关配伍三阴交针刺病谱中焦虑抑郁文献比例较高。黄宗雄等通过对清代及清以前昆仑穴相关文献的整理,挖掘得出:昆仑单穴主治病证33种,筛选出2种优势病证;配伍主治病证45种,筛选出19种优势病证及其高频配伍处方。陈文修等统计出百会单穴主治病证73种,筛选出22种优势病证;配伍主治病证106种,筛选出21种优势病证及其高频配伍处方。
1.5名老中医经验挖掘
张华等对田从豁教授临床病历资料进行整理,发现田从豁教授临床应用穴方共19个,阴交、肓俞、水分配伍使用频次最多。陈裕收集当代名中医针灸治疗偏头痛医案247篇,总结出临床与肝阳上亢型关联密切的是足少阳胆经,血瘀阻络型是手少阳三焦经,风邪上扰型是足太阳膀胱经,气血不足型是足阳明胃经。并且,根据关联规则挖掘提出的基本配穴规律与中医经络理论相契合。
1.6针灸临床决策支持系统构建
针灸临床决策支持系统对于实现针灸临床决策模式的转变有重大意义,基于数据挖掘方法,各学者在此方向进行了有益的探索。任玉兰等提出建立疾病症状、证候症状关系的样本数据库、概率数学模型;再通过遗传算法进行针灸治疗最优方案的选择,构建具有人工智能特征的针灸临床循证诊疗决策辅助支持平台。王佑林等利用复杂网络的K核心思想并改进来寻找针灸治疗疾病所用穴位的主穴信息,使其更好地适应中医决策系统并提供支持。李云松等发现在决策系统中,使用一元字串和二元字串的特征更适合腧穴处方的自动生成,提出了一种基于K近邻方法的腧穴处方自动生成算法,通过分析病历库中与目标现病史最相似K条病历的穴位配方,来自动给出患者针灸治疗的推荐方案。胡绿慧等提出使用Weka平台进行编程,分析穴位的支持度与置信度,找出适用于针灸临床方案决策研究的最好方法,用以指导临床医生的方案决策。
2分析与展望
2.1数据挖掘结果能够与传统的中医学理论相契
合并提供新知《席弘赋》云:“凡欲行针须审穴。”可见临证选穴及配伍的重要性。查阅近几年针灸数据挖掘的结果,不难发现,针灸处方的配伍仍大量选用“原络配穴”“俞募配穴”“八脉交会配穴”“合募配穴”“远近配穴”等传统配穴方法,遵循着“循经取穴”的规则,体现了“经脉所过,主治所及”“腧穴所在,主治所及”的规律。数据挖掘在验证传统的中医学理论的同时,还能在海量的文献中发掘出新知,如赵凌等挖掘偏头痛文献时即发现古代针灸治疗该病多采用同名经的配穴方法,发生疾病时即可在相联系的手足同名经的相应部位针刺;赵华等挖掘田从豁教授治疗痹症经验的结果提示上肢疼痛与寒凝、血瘀相关,风寒痹阻与下肢发凉相关。这些新的治疗方法、不易发现的疾病、证候、症状之间的联系,通过数据挖掘为临床提供了新的思路与治疗模式。
2.2数据挖掘在针灸领域存在的不足及展望
二、在部队食品采购系统中的应用以及其价值评价
在部队食品采购系统实际应用工程中,其实可以运用MicrosoftSQLServerAnalysisServices来对数据进行分析,并且在数据挖掘过程中对多维数据进行描述与查找起到一定作用。因为多维数据比较复杂,增长的也比较快,因此,进行手动查找是很困难的,数据挖掘技术提供的计算模式可以很好的对数据进行分析与查找。在建设部队食品采购仓库数据的时候,数据内容主要包括了人员的健康、兵员的饮食以及训练等,进行数据挖掘主要包括以下内容:第一,把每个主题信息数据进行收集、汇总、分析等,对人员情况、健康、饮食、训练等进行合理分析;第二,多维分析数据信息。根据部队的实际情况,利用数据挖掘技术对部队人员健康、饮食、训练等数据信息进行多维分析,其中包含上钻、切片、下钻等;第三,挖掘健康与饮食之间的内在关系。根据数据库中许多面向主题的历史数据,采用数据挖掘技术进行分析与演算得到部队人员的训练和健康情况与部队饮食之间内在关系,以便于为部队食品采购提供合理的、有效的保障,从而提高部队整体人员的健康水平、身体素质以及训练质量,对提高我国部队战斗力有着深远的意义。
由于信息技术的迅速发展,现代的档案管理模式与过去相比,也有了很大的变化,也让如今的档案管理模式有了新的挑战。让人们对信息即时、大量地获取是目前档案管理工作和档案管理系统急切需要解决的问题。
一、数据挖掘概述
(一)数据挖掘技术。数据挖掘是指从大量的、不规则、乱序的数据中,进行分析归纳,得到隐藏的,未知的,但同时又含有较大价值的信息和知识。它主要对确定目标的有关信息,使用自动化和统计学等方法对信息进行预测、偏差分析和关联分析等,从而得到合理的结论。在档案管理中使用数据挖掘技术,能够充分地发挥档案管理的作用,从而达到良好的档案管理工作效果。(二)数据挖掘技术分析。数据挖掘技术分析的方法是多种多样的,其主要方法有以下几种:1.关联分析。指从已经知道的信息数据中,找到多次展现的信息数据,由信息的说明特征,从而得到具有相同属性的事物特征。2.分类分析。利用信息数据的特征,归纳总结相关信息数据的数据库,建立所需要的数据模型,从而来识别一些未知的信息数据。3.聚类分析。通过在确定的数据中,找寻信息的价值联系,得到相应的管理方案。4.序列分析。通过分析信息的前后因果关系,从而判断信息之间可能出现的联系。
二、数据挖掘的重要性
在进行现代档案信息处理时,传统的档案管理方法已经不能满足其管理的要求,数据挖掘技术在这方面确有着显著的优势。首先,档案是较为重要的信息记录,甚至有些档案的重要性大到无价,因此对于此类的珍贵档案,相关的档案管理人员也是希望档案本身及其价值一直保持下去。不过越是珍贵的档案,其使用率自然也就越高,所以其安全性就很难得到保障,在档案管理中运用数据挖掘技术,可以让档案的信息数据得到分析统计,归纳总结,不必次次实物查阅,这样就极大地提升了档案相关内容的安全性,降低档案的磨损率。并且可以对私密档案进行加密,进行授权查阅,进一步提高档案信息的安全性。其次,对档案进行鉴定与甄别,这也是档案工作中较困难的过程,过去做好这方面的工作主要依靠管理档案管理员自己的能力和水平,主观上的因素影响很大,但是数据挖掘技术可以及时对档案进行编码和收集,对档案进行数字化的管理和规划,解放人力资源,提升档案利用的服务水平。第三,数据挖掘技术可以减少档案的收集和保管成本,根据档案的特点和规律建立的数据模型能为之后的工作人员建立一种标准,提升了档案的鉴定效率。
三、档案管理的数据挖掘运用
(一)档案信息的收集。在实施档案管理工作时,首先需要对档案信息数据的收集。可以运用相关档案数据库的数据资料,进行科学的分析,制定科学的说明方案,对确定的数据集合类型和一些相关概念的模型进行科学说明,利用这些数据说明,建立准确的数据模型,并以此数据模型作为标准,为档案信息的快速分类以及整合奠定基础。例如,在体育局的相关网站上提供问卷,利用问卷来得到的所需要的信息数据,导入数据库中,让数据库模型中保有使用者的相关个人信息,通过对使用者的信息数据进行说明,从而判断使用者可能的类型,提升服务的准确性。因此,数据挖掘技术为档案信息的迅速有效收集,为档案分类以及后续工作的顺利展开,提供了有利条件,为个性化服务的实现提供了保证。(二)档案信息的分类。数据挖掘技术具有的属性分析能力,可以将数据库中的信息进行分门别类,将信息的对象通过不同的特征,规划为不同的分类。将数据挖掘技术运用到档案管理中时,可以简单快速地找到想要的档案数据,能根据数据中使用者的相关数据,找寻使用者在数据库中的信息,使用数据模型的分析能力,分析出使用者的相关特征。利如,在使用者上网使用网址时,数据挖掘技术可以充分利用使用者的搜索数据以及网站的访问记录,自动保存用户的搜索信息、搜索内容、下载次数、时间等,得到用户的偏好和特征,对用户可能存在的需求进行预测和分类,更加迅速和准确的,为用户提供个性化的服务。(三)档案信息的整合。数据挖掘技术可以对新旧档案的信息进行整合处理,可以较为简单地将“死档案”整合形成为“活档案”,提供良好的档案信息和有效的档案管理。例如,对于企事业单位而言,培训新员工的成本往往比聘请老员工的成本要高出很多。对老员工的档案信息情况进行全体整合,使档案资源充分发挥作用,将档案数据进行总结和规划,根据数据之间的联系确定老员工流失的原因,然后建立清晰、明白的数据库,这样可以防止人才流失,也能大大提高档案管理的效率。
四、结语
综上所述,在这个信息技术迅速跳跃发展的时代,将数据挖掘技术运用到档案管理工作中是时展的需求与必然结果。利用数据挖掘技术,可以使档案管理工作的效率大大提升,不仅减少了搜索档案信息的时间,节省人力物力,避免资源的浪费,还能帮助用户在海量的信息数据中,快速找到所需的档案数据信息。数据挖掘技术的运用,使静态的档案信息变成了可以“主动”为企事业单位的发展,提供有效的个性化服务的档案管家,推动了社会的快速发展。
作者:于然 单位:扬州市体育局办公室
【参考文献】
1.1数据信息的准备准备部分又可以分成数据的选取、数据信息的预处理.对数据进行选取的主要目的就是对操作对象进行确定,即是对目标数据进行确定,所谓的目标数据是在经过对用户的需要进行细致分析之后,对最有可能得到有利用价值的信息的那些从数据库中抽取出来的数据.获取到这些数据以后需要进行预处理,主要包含数据的去噪、计算缺值数据的推导、数据类型的转换,数据类型转换举个例子来说比如把连续型数据转化成离散数据,以方便进行符号的归纳.
1.2挖掘过程数据信息的挖掘阶段是在上一步的基础之上,即在目标数据已经确定,并且已经完成了初始化的基础之上,需要确定数据挖掘的目的与挖掘的类型.在对挖掘任务的目标确定之后,要根据数据挖掘的知识类型选取合适的数据挖掘方法,最终完成数据挖掘具体操作即采用特定的数据挖掘方法从数据仓库中抽取所需的挖掘目标.
1.3挖掘结果的解释和评价数据挖掘的结果的解释和评价是在完成数据挖掘阶段之后对发现的知识,进行评估,对于冗余或者无关的知识要进行删除;对于获得的知识不符合用户的要求的要进行重新的挖掘.与此同时,因为数据挖掘需要面临用户,所以,在得到目标知识以后还需要对所挖掘的知识附加相关解释,来用一种便于用户理解的方式供用户使用.综上所述,整个数据信息的挖掘在实际情况下是一个不断地循环与反复的过程,所以要对所挖掘出来的知识不断求精和深化,最终要获得用户所需要的结果.
2电子商务中数据挖掘的特点
由于电子商务自身的某些独特的特点,同其他的应用于普通商业领域中的数据挖掘相比,应用于电子商务的数据挖掘具有如下几个特点:(1)应用于电子商务的数据挖掘的最终目的主要表现在企业与客户之间的关系管理方面,电子商务利用因特网的技术能够使企业和客户之间的关系处理变得更加方便.所以,其主要的功能是怎样使企业采用这些频繁的交流信息,快速的掌握客户的趋向、改善与客户交流情况或者获取交流方向等;(2)电子商务本身就是一个信息化程度比较高的系统,其自身累积的数据信息会存放在电子商务数据库内,用户可以比较便捷地得到这些信息,所以对于电子商务的数据挖掘的数据信息的准备阶段的相关工作就变得相对容易;(3)电子商务领域的数据挖掘的主要目标一般是使电子商务系统得到有效的改进.例如为客户提供个性化页面、把用户比较感兴趣的信息展现在网站首页或得到哪一些商品比较受到客户的欢迎等.
3电子商务中的数据挖掘运用
首先要讲的是关联规则在电子商务中的运用,利用比较通俗的语言来讲,从一个事件的发生与否方面进行解释,所谓的关联规则法在大量的事件发生或者不发生的条件下,对这些事件中的任意两个或者多个事件提取出来,通过一定的统计分析算法,最终确定两个或者多个事件的发生与否是否存在着某种关系,而这种可能存在的管理,我们称之为关联规则.列举一个有趣的故事,就是在一个超市里面,店家把小孩的尿布同啤酒放到了一起,来供购买者进行购买,结果是二者的销量都提升了一倍,其实这就是因为二者之间有着某种潜在联系,店家通过数据挖掘的方法发现的这个规则,并对这一关联规则进行了实际的运用,从中得到了益处.同样在电子商务中通过数据挖掘得到关联规则,有着类似的意义.其次在电子商务中数据挖掘聚类分析方法的应用.在大量数据仓库中,数据与数据之间,往往会有某些性质的类型相似,同样也会有某些性质或者特点相异,我们把这些性质或者特点称为观察指标,聚类分析就是对于某一个特点指标而言,把指标相差不多的数据划分为同一个类型,若相差较大则要划分为不同的类型、这种操作的主要意义就是将具有某种特定的相似特性的客户或者数据分成一个类.在电子商务活动中,这一方法的应用主要集中在市场细分的工作之中.分类分析系统的建立以生物的遗传算法为基础,属于其中的自学习的一种,它一般会包含三个子系统,第一个是以串规则为基础的并行生成子系统、第二个是规则评价子系统.第三个是遗传算法子系统.分类分析可以说是电子商务中运用到数据挖掘最多的一种挖掘方式.主要原因就是在于其能够形成一种预测模型能够对一些营销方式或者其他的一些商业措施做出正确的预测.
4数据挖掘在电子商务中的应用
更高效的利用企业现有资源以及开发新资源是当代企业发展的关键.电子商务通过采用数据挖掘的技术,能够更加及时和正确的获得企业当前所有资源的具体使用情况,而且通过数据挖掘的技术可以分析以往的各种企业数据,比如说企业财务数据、企业库存数据或者企业交易数据,能够较为及时的发现企业资源过度消耗的主要问题所在,或者能够得到各种商务活动的投入与产出的比例,来为企业领导进行经营决策提供有力的根据[6].另外在企业的经营过程中,人们不断推崇“以客户为中心”的经营理念,在这一趋势下,如何正确快速的分析和了解客户的需求已成为企业提高自身市场竞争力的一大课题.通过把数据挖掘应用到电子商务之中,能够使企业最准确的分析客户资源并最有效的利用企业客户资源,通过对已有客户行为进行相关性分析,可以形成潜在客户资源的预测模型.除此之外在企业经营过程中,利用数据挖掘可以解决另外一个严重影响了商业正常秩序的重要问题.即当前时区商务活动中的地下的信用状况问题,这一问题的严重程度已经引起了人们的广泛关注.在电子商务经营过程中,因为网上诈骗公司或者企业财务的现象屡见不鲜,信用危机已经成为影响其快速正常发展的一个重要因素.而通过在电子商务中采用数据挖掘技术实现对企业经营活动的跟踪,在此基础上实现企业的资产评估、利润收益分析以及发展潜力预测分析等,为电子商务在经营过程中提供了完善的安全保障体系,同时利用数据挖掘实现企业网上全程监控.另外通过实现基于数据挖掘的信用评估模型,可以在很大程度上进行防范或者化解信用风险,从而提高企业的信用度以及应对风险能力.
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
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遗传算法用于车辆配送线路优化卷烟商业企业的销售收益主要来自于订单,销售成本主要产生在物流配送的环节。所以,在假设销售量不变的情况下,如何优化线路配置,降低成本,最大化公司利润,在当前烟草行业面临巨大的挑战和压力下,显得尤为重要。因此,采用科学的、合理的方法来确定配送线路将是车辆优化调度工作的重中之重,是物流系统优化、物流科学化的关键。烟草商业企业已有的线路优化系统中储存有客户商店位置、道路情况等信息,可以在此基础上,利用遗传算法对配送线路问题进行优化。将一系列实际中车辆配送的约束条件,转换成二进制编码(染色体)并随机产生初始种群,通过模拟达尔文的遗传选择和自然淘汰的生物进化过程,并借助于自然遗传学的遗传算子进行组合交叉和变异,逐代演化产生出越来越好的近似解,末代种群中的最优个体经过解码,可以作为最终问题的近似最优解,用以实现对车辆的优化调度,即合理地进行配货优化、货物配装优化,特别是配送路线优化。从而达到提高里程利用率,降低行驶费用,减少车辆空驶里程,增加货运量,节约燃料,降低大修费等,为企业带来更大的经济效益。另外,车辆优化调度在减少废气排放量,降低城市空气污染方面也起到积极作用。