您好,欢迎访问三七文档
数据挖掘及相关算法1数据挖掘产生的背景和定义1.1数据挖掘产生的背景随着信息科技的进步以及电子化时代的到来,人们以更快捷、更容易、更廉价的方式获取和存储数据,使得数据及信息量以指数方式增长。据粗略估计,一个中等规模企业每天要产生100MB以上的商业数据。而电信、银行、大型零售业每天产生的数据量以TB来计算。人们搜集的数据越来越多,剧增的数据背后隐藏着许多重要的信息,人们希望对其进行更高层次的分析,以便更好的利用这些数据。先前的数据库系统可以高效的实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系与规则,无法根据现有的数据来预测未来的发展趋势。缺乏挖掘数据背后隐藏的知识的手段。导致了“数据爆炸但知识贫乏”的现象。于是人们开始提出“要学会选择、提取、抛弃信息”,并且开始考虑:如何才能不被信息淹没?如何从中及时发现有用的知识、提高信息利用率?如何从浩瀚如烟海的资料中选择性的搜集他们认为有用的信息?这给我们带来了另一些头头疼的问题:第一是信息过量,难以消化;第二是信息真假难以辨别;第三是信息安全难以保证;第四是信息形式不一致,难以统一处理面对这一挑战,面对数量很大而有意义的信息很难得到的状况面对大量繁杂而分散的数据资源,随着计算机数据仓库技术的不断成熟,从数据中发现知识(KnowledgeDiscoveryinDatabase)及其核心技术——数据挖掘(DataMining)便应运而生,并得以蓬勃发展,越来越显示出其强大的生命力。1.2数据挖掘的定义数据挖掘有广义和狭义之分。广义的数据挖掘,指从大量的数据中发现隐藏的、内在的和有用的知识或信息的过程。狭义的数据挖掘是指知识发现中的一个关键步骤,是一个抽取有用模式或建立模型的重要环节。知识发现时识别出存在于数据库中有效的、新颖的、具有潜在价值的乃至最终可以理解的模式的非平凡过程。数据挖掘则是从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。可见这两个术语的内涵大致相同。数据挖掘更广义的定义是:数据挖掘意味着在一些事实或观察数据的集合中寻找模式的决策支持过程。实际上,数据挖掘的对象不仅是数据库,也可以是文件系统、或其他任何组织在一起的数据集合。一种较为公认的定义是由G..Piatetsky-Shapir等人提出的。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的,但又是潜在有用的信息和知识的过程。这个定义所包含的含义为:数据源必须是大量的、真实的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;发现的知识支持特定的被发现的问题。2数据挖掘的功能和应用简单的说,数据挖掘是从大量的数据中提取或“挖掘”知识的过程。挖掘是一个很生动的术语,它抓住了从大量的未加工的材料中发现少量金块这一过程的特点。与功能而言,数据挖掘可以完成五种主要功能:(1)分类:按照分析对象的属性分门别类加以定义从而建立组别。例如将信用卡申请者的风险属性,区分为高度风险申请者、中度风险申请者及低度风险申请者。(2)推算估计:根据与所估计的目标变量相关的其它变量,利用已有数据来推算预测变量的未来值。例如按照信用卡申请者的教育程度、行为类别来推估其信用卡消费量。(3)预测:根据估计对象的过去观察值来预测未来值。与推估的区别在于,这种预测由变量过去的值来估计未来值。例如由顾客过去的刷卡消费量预测其未来的刷卡消费量。(4)关联分析:将所有对象按某种规则划分为相关联的类,从而将它们放在一起。例如超市中先关的日常用品(牙刷、牙膏、牙线)放在同一货架上。在客户服务系统中各种功能用以确认交叉销售的机会,从而设计出吸引顾客的产品群。(5)聚类分析:将成分各异的总体分割为如干具有相同性质的群。聚类分析相当于营销术语中的区分化,但它不是事先的区分,而是直接根据数据自然产生的区分。在应用方面,数据挖掘的以上五种功能与不同领域的实际需求相结合就产生了数据挖掘应用的丰富内容。到目前为止,数据挖掘已经在世界范围内的各行业得到了广泛的应用并结出了丰硕的成果,它的主要应用体现在以下几个方面(1)科学应用研究从科学研究方法学的角度看,随着先进的科学数据搜集工具的使用,如观测卫星、遥感器、DNA分子技术等,数据量非常大,传统的数据分析工具无能为力,因此必须有强大的自动数据分析工具才行。数据挖掘在天文学上有一个非常著名的应用系统:SKICAT,它是美国加州理工学院喷进推进试验室与文科学家合作开发的用于帮助天文学家发现遥远的类星体的一个工具,也是人工智能技术在天文学和空间科学上的第一批成功应用案例之一。利用SKICAT,天文学家已经发现了16个新的及其遥远的类星体,数据挖掘在生物学上的应用主要集中在分子生物学特别是基因工程的研究上。近几年,通过用计算生物分子系列分析方法,尤其是基因数据库搜索技术已在基因研究上做出了很多重大发现、。(2)市场营销数据挖掘在营销业上的应用可分为两类:数据库营销和购物篮分析。数据库营销中,数据挖掘将用户进行分类,这样当一个新用户到来时,通过顾客信息预测其购买的可能性,从而可以根据结果有针对性地对顾客进行推销。购物篮分析是分析市场销售数据以识别顾客的购买行为模式,例如:如果A商品被选购,那么B商品呗购买的可能性为95%,从而帮助确定商店货架的布局排放以促销某些商品,并且对进货的选择和搭配上也更有目的性。这方面的分析系统有OpportunityExplorer,它可用于超市商品销售异常情况的因果分析等。(3)金融投资典型的金融投资分析领域有投资评估和股票交易市场预测,分析方法一般采用模型预测法(如神经网络或统计回归技术)。数据挖掘可以通过对自己已有数据的处理,找到数据对象之间的关系,然后利用学习得到的模式进行合理的预测。这方面的系统有FidelityStockSelector和LBSCapitalManagement。前者的任务是使用神经网络模型选择投资,后者则使用了专家系统、神经网络和基因算法技术来辅助管理多达六亿多元的有价证券。(4)欺诈甄别银行或商业上经常发生诈骗行为,如恶性投资等,这些给银行或商业单位带来了巨大的损失。进行诈骗甄别主要是通过总结正常行为和诈骗行为之间的关系,得到诈骗行为的一些特性,这样当某些业务符合这些特征时,可以向决策人员提出警告。这方面应用非常成功的系统有FALCON系统和FAIS系统。FALCON是HNC公司开发的信用卡欺诈估测系统;它已被相当数量的零售银行用于探测可疑的信用卡交易;FAIS是一个用于识别与洗钱有关的金融交易系统,它使用的时一般的政府数据表单。(5)产品制造在产品的生产制造过程中常常伴有大量的数据,如产品的各种加工条件或控制参数,这些数据都反映了每个生产环节的状态不仅为生产的顺利进行提供了保证,而且通过对这些数据的分析,得到产品质量与这些参数之间的关系。这样通过数据挖掘对这些数据的分析,可以对改进产品质量提出一些针对性很强的建议,从而有可能提出新的更高效的控制模式,从而为制造厂家带来极大的回报。(6)通信网络管理在通信网络运行过程中。会产生一系列警告,这些警告有的可以置之不理,而有的如果不及时采取措施,后果将不堪设想。数据挖掘可以通过分析已有的警告信息的正确处理方法以及警告之间的前后关系的记录,得到警告之间的序列模式规则,这些有价值的信息可用于网络故障的定位检测和严重故障的预测等等任务中(7)Web挖掘上个世纪90年代网站热潮兴起,web数据大量出现。由于web数据的特点非常适合进行数据挖掘。因此,数据挖掘开始被广泛用到web挖掘中,而且还出现了一些专门从事web挖掘的公司。3数据挖掘和统计学的异同统计学和数据挖掘有着共同的目标:发现数据中的结构。也正因为它们的目标相似,一些人认为数据挖掘是统计学的分支。这是一个错误的看法,因为数据挖掘还应用了其他领域的思想、工具和方法,尤其是计算机学科,例如数据库技术和机器学习,而且它所关注的某些领域和统计学家所关注的有很大的不同。总的来说,数据挖掘和统计学的不同之处可在以下几个方面得到体现:(1)从研究的目的来看,很多情况下数据挖掘的本质是很偶然的发现非预期但很有价值的信息。比如关联分析的本质就是要找到人们尝试之外、意料之外的关联(如啤酒与纸尿布)。也就是说,数据挖掘过程本质上是实验性的。而统计分析则与此不同,它是一种确定性的分析,着眼于建立一个最合适的模型,虽然这个模型也许不能很好的解释观测到的数据(2)从研究方法上看,数据挖掘通常基于支持度、置信度框架,没有一系列严格的假定,故也无响应的统计检验;而统计分析是建立在一系列统计分布的理论基础之上的,对应严格的统计检验结论。(3)从数据整体来看,数据挖掘问题通常能够得到全部总体数据,响应的分析是基于全部总体数据进行的。而统计分析则不同,统计分析通常基于样本数据,利用样本统计量去推断总体特征值。(4)从数据形式来看,统计分析通常将数据看成一个按变量交叉分类的平面表,存储于计算机等待分析。如果数据量较小,可以读入到内存,但在许多数据挖掘问题中这是不可能的,待分析数据通常不能一次性读入内存。另外,大量的数据常常分布在不同的计算机上、甚至分布在全球互联网上,此类问题使得获得一个简单的样本不大可能。(5)从分析的可行性上来看,海量的数据可能导致统计分析中的统计检验失效。以单相关系数的统计检验为例,计算相关系数r的值的计算公式为22t(2)/(1)rnr。当n变得巨大时,很小的r值都极可能导致/2tt,得出r在统计上显著,两变量统计意义上相关的的结论。但事实上,这样微乎其微的相关性没有什么实际意义。因此,直接将一些统计分析应用于海量数据的分析和处理是不可行的。而大部分数据挖掘系统则将计算机在分析者和数据之间起必要的过滤作用,利用一系列快速而不失高效的算法,解决海量数据的问题(6)从实时分析看数据的不断更新需要实时分析,统计分析则不能做到这一点。例如,银行事务每天都会发生,没有人能等三个月才得到一个可能的欺诈分析。类似的问题发生在总体随时间变化的情形。4数据挖掘的流程数据挖掘工作作为一个完整的挖掘过程,可分为以下几个主要步骤:(1)陈述问题和阐明假设:多数基于数据的模型研究都是在一个特定的应用领域里完成的,因此在设计数据挖掘算法之前,需要事先确定一个有意义的问题陈述,模型建立者通常会为未知的相关性指定一些变量,如果可能还会指定相关性的一个大体形式作为初始假设对当前问题可能会有几个阐明的假设,这要求将应用领域的专门技术和数据挖掘模型相结合实际上,这往往意味数据挖掘人员与应用专家之间密切地协作,在开始数据处理过程之前明确实际工作对数据挖掘结果的要求,根据此要求,确定数据收集过程的具体方法和数据挖掘采用的具体算法。(2)数据准备和预处理:数据准备和预处理又可分为三个步骤:数据选取、数据预处理、数据变换。数据选取的目的是确定数据挖掘的处理对象,即目标数据,它是根据由问题陈述中得到的用户需求,从原始数据库中抽取一定的数据用于数据挖掘,这些数据可能是整个数据库中与问题相关的数据,也可能是这些数据中的某些部分。数据预处理一般包括消除噪声,推导缺值数据所缺的数值,消除重复记录,完成数据类型转换(如把连续值数据转换为离散型的数据,以便于符号归纳,或是把离散型的转换为连续值型的,以便于神经网络)等,当数据挖掘的对象是数据仓库中的数据时,一般来说,数据预处理工作已经在生成数据仓库时完成了。数据变换的主要目的是消减数据维数或降维,即从初始属性中找出对知识产生真正有用的属性以减少数据挖掘时要考虑的属性或变量个数,可以有效地减少数据挖掘的工作量,提高整个系统的效率。(3)算法选择与挖掘数据:数据挖掘的任务就是从数据中发现模式此阶段首先根据问题的定义明确挖掘的任务或目的,例如需要产生聚类分类关联规则还是时间序列等模式,确定了任务后,就需要决定使用什么样的算法选择算法需要考虑两个因素:一是根据不同的数据,采用适合处理这些数据的算法;二是根据用户需要,选择符合用户需求,能够产生预期结果的算法关于数据挖掘所采用的一些常用算法,将
本文标题:数据挖掘
链接地址:https://www.777doc.com/doc-7178206 .html