基于Oracle Data Mining API的数据挖掘实现方法的研究与应
用
姓名:王帆申请学位级别:硕士专业:软件工程指导教师:李青山;严一萌
20070101
摘要随着计算机技术和通信网络技术的迅猛发展,信息化程度快速增长,人们利用信息技术生产和搜集数据的能力大幅度提高。“如何才能不被信息的汪洋大海所淹没,从中及时发现有用的知识,提高信息的利用率",已经成为人们迫切需要解决的问题。数据仓库和数据挖掘作为决策支持的新技术,就是在这样的背景下应运而生的。随后在电信、金融和保险等各个领域中蓬勃发展,彼此之间相互促进,相互影响,并越来越显示出其强大的生命力。本文主要论述了在大型数据库Oracle数据仓库的基础上,构建电信客户资料的数据模型,设计和实现一个基于OracleDataMiningAPI的大型数据库数据挖掘分析系统。将电信客户的数据应用于此系统,利用Oracle资料中隐含的微妙模式和关系,从而验证了Oracle并在此基础上提出了OracleDataDataMining分析挖掘数据库中的海量数据,并自动提取更多有价值的信息,以此来侦测和发现电信客户DataMining数据挖掘的可行性。Mining数据挖掘的基本框架,这样可以为各种特定主题的电信应用问题,提供一个有效的数据挖掘解决方案,更能在决策分析上给予电信部门更多的帮助和支持。关键词:大型数据库数据仓库数据挖掘OracleDataMiningAPIAbstractWithpeopledevelopmentofcomputerandtelecommunicationnetworktechnologies,theabilityofusinginformationtechnologytosurviveintheinformationoceanenhancedcanconstructandcollectdata.”Howbecominganandfindusefulknowledge”isaleurgentproblem.DataWarehouseandDataMininggeneratedunderthisbackground.Anditisdevelopedinthefieldoftelecom,finance,security,etcandshoweditspowerfullife-forcemoreandmore.ThispaperismainlydiscussedofconstructingdatamodeloftelecomcustomerreferenceanddesigningandrealizingbaseduseonalargedatabasedatamininganalysissystemOracleDataMiningAPI.Toapplytelecomcustomerdatatothissystem,weOracleDataMiningtoanalyzelargequantitiesofdatainminingmodelandcollectvaluableinformationautomatically,inordertoprobeanddetectsubtlepatternandrelationintelecomcustomerdatareference,whichtestifyfeasibilityofOracleDatatoprovideaMining.AnditbringsupfundamentalframeworkinOracleDataMiningdataminingsolutionforalluniquetelecomusageproblems,whichcangivemorehelpandsupportindecisionanalysisfortelecomdepartment.Keywords:LargeDatabaseDataWarehouseDataMiningOracleDataMiningAPI创新性声明本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容外,论文中不包含他人已经发表或撰写的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所作过的任何贡献均已在论文中作了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名:互帆日期:劬7.岁.兰关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用复印、影印、缩印或其它手段保存论文。本人签名:导师签名:王帆日期:型丕墨竺日期:圭兰之2巨第一章绪论1第一章绪论1.1引论随着社会科技的飞速发展,人们所面对的大量信息和数据也随之爆炸式地增长,与之相适应的大型数据库的技术研究也摆在了科研工作者面前。大型数据库与一般意义上的普通数据库相比,由于自身容量很大,在数据录入和数据查询时实时性较差,很难满足客户对数据查询处理和数据分析的要求。从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识,这就需要找到一种途径和方法得以实现。通过大唐电信大型数据库的预研工作,希望能够在翻阅和查找大量资料的基础上,采用合适的数据仓库和数据挖掘技术,找到一种更为有效的应用解决方案,实现和模拟这一项目,验证所研究的解决方案的可行性,以便于在后续数据库应用开发中都可以在此框架下进行,更是为今后这个大型数据库项目的立项实施提供参照和借鉴。1.2论文研究的背景电信企业一直使用计算机处理各种业务,包括设备维护(网络系统)、业务管理(九七系统、财务系统)和财务管理等,具有丰富的历史数据,因此建立数据仓库有良好的基础IlJ。数据仓库的目的是要建立一种体系化的数据存贮环境,将分析决策所需的大量数据从传统的操作环境中分离出来,使分散的、不一致的操作数据转换成集成的、统一的信息,企业内不同单位的成员都可以在此单一的环境之下,通过运用其中的数据与信息,采用数据挖掘技术,发现全新的视野和新的问题、新的分析与想法,进而发展出制度化的决策系统,并获取更多经营效益。本论文是以大唐电信的大型数据库预研项引2J为背景,由于目前特通平台的数据库容量已经超过30T,在数据录入和数据查询时实时性较差,已经不能满足相关部门对查询时间的要求。特通平台中的话单分析系统还需要对某些特定的号码进行分析,发掘出这些号码和其它号码之间的联系关系以及他们之间的通话规律,以辅助相关安全部门进行相关领域的安全工作。以上所涉及的大型数据库的处理和查询优化技术、数据仓库与数据挖掘等方面的技术和方法都是今后研究的重点。其研究成果主要应用于特通平台下大量话单的分析和处理。因为特通平台的保密性原则,预研项目的测试数据需要自行解决,我们就选择与之相关的数据进行分析,并在电信客户资料的基础上研究数据挖掘技术的实现方法。2基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用1.3国内外研究的现状随着电信企业经营环境的变化,市场竞争越来越激烈。如何有效地利用工具提高经营决策水平,成为今天每个电信企业必须面对的问题。数据仓库和数据挖掘技术就是提高企业业务分析能力和决策水平的有效工具和方法。业务据调查,在许多引入竞争机制的国家或地区,如美国、英国和日本,他们的电信公司都建立数据仓库系统作为经营决策的工具,提高客户满意度和经营利润。国外专业电信顾问公司研究调查发现,数据仓库和数据挖掘两项独特能力是竞争优势的来源,是当今电信公司成功的重要原因之一【引。目前,在大型数据库应用比较广泛,大都采用在数据仓库的基础上,对海量数据进行处理查询和挖掘分析工作。研究的焦点已经不是仅仅局限于从低层次的末端查询操作,而是提高到了为各级经营决策者提供决策支持。数据挖掘的研究趋势主要集中在以下五个方面:>专门用于知识发现的数据挖掘语言,也许会像SQL语言一样走向形式化和标准化;>寻求数据挖掘过程中的可视化方法,使得知识发现的过程能够被用户理解,也便于在知识发现过程中的人机交互;开发用于知识发现的挖掘工具和方法,常用的有分类、聚类、模式识别、可视化、决策树、遗传算法、不确定性处理等;研究在网络环境下的数据挖掘技术,特别是在因特网上建立数据挖掘服务器,并且与数据库服务器配合,实现网络化数据挖掘;加强对各种非结构化数据的挖掘,如对文本数据、图形数据、视频图像数据、声音数据乃至综合多媒体数据的挖掘。>>>需求的牵引力与市场的推动力都是永恒的,数据挖掘将首先满足信息时代用户的急需,大量的基于DMKD的决策支持软件产品将会问世。只有从数据中有效地提取有用信息,再从信息中及时地发现知识,才能为人类的思维决策和战略发展服务。也只有到那时,数据才能够真正成为与物质、能源相媲美的资源,信息时代才会真正到来。1.4论文研究的主要内容本论文主要采取理论与实践相结合的方式,借鉴国内外的经验和资料,从这两个方面入手,对大型数据库的数据挖掘技术进行较为系统的分析和研究,并在学习数据仓库和数据挖掘的相关理论知识后,利用OracleMining来分析挖掘数据库中的海量数据,以侦测其中的微妙模式和关系,并提取更多有价值的商务Data第一章绪论3智能信息,有助于为电信部门提供更好的决策支持。主要研究的内容如下:1.重点掌握数据仓库技术的基本理论知识,对数据仓库的组成特点和体系结合电信领域的应用问题,深入研究数据挖掘技术的常用模型和算法,全面了解大型数据库Oracle9i相关技术资料,着重分析了Oracle在数据结构有了清晰的认识,并总结了数据仓库一般的设计方法。2.为此后的设计开发提供坚实的理论基础。3.仓库和数据挖掘方面的技术特点和实现方法,并提出了一个有效的应用问题解决方案。4.Data以电信客户资料主题为模型,构建数据仓库,并设计实现一个基于OracleDataMiningAPI数据挖掘分析系统,验证了OracleMining数据挖掘功能的可行性。第二章大型数据库关键技术的研究5第二章大型数据库关键技术的研究2.1数据仓库技术2.1.1数据仓库的概述数据仓库技术是以关系数据库、并行处理技术和分布式技术的飞速发展为基础的,它是解决信息技术在发展过程中虽然拥有大量数据却缺乏有用信息的综合方案。数据仓库概念的创始人W.H.Inmon将其定义为:“数据仓库是在企业支持管理决策过程中面向主题的、集成的、稳定的、随时间变化的数据集合14J"。与其他数据库应用不同的是,数据仓库更像一种过程,即对分布在企业内部各处的业务数据的整合、加工和分析的过程。数据仓库的提出和发展,一个潜在的因素是大型数据库中海量数据的出现,使得原有的数据存储和分析方法在处理能力等方面有些力不从心。因此人们才开始研究将“仓库’’概念用于数据的存储过程中。传统的“仓库"就是将物品进行分门别类,形成了很多的层次空间。当要取一件物品时,仓库管理员会根据仓库产品的分类方法,很快地找到所需要的物品。同样,在数据仓库中,就是将所有的数据根据主题等内容,进行分类划分,然后进行存取操作并完成分析功能,这也是数据仓库之所以称为“仓库”的直接原因。2.1.2数据仓库的特点1.面向主题主题是一个抽象的概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象,是针对某一决策问题而设置的。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整的、统一的、一致的描述,能完整、统一地刻画各个分析对象所涉及的企业的各项数据,以及数据之间的联系。目前,数据仓库的实现主要是基于关系数据库,每个主题由一组关系表或逻辑视图实现。这些表和视图的内容与原来各个运行系统数据源的数据本质上是一致的,但为了方便支持分析数据处理,对数据结构进行了重组,其中还可能会增加一些数据冗余。2.集成的数据数据仓库中存贮的数据是从原来分散的各个子系统中提取出来的,但并不是6基于OracleDataMiningAPl的数据挖掘实现方法的研究与应用原有数据的简单拷贝,而是经过统一和综合。其一,数据仓库的数据不能直接从原有数据库系统中得到。原有数据库系统记录的是每一项业务处理的流水帐,这些数据不适合于分析处理,在进入数据仓库之前必须经过综合和计算,抛弃分析处理不需要的数据项,增加一些可能涉及的外部数据。其二,数据仓库每一个主题所对应的源数据,在原分散数据库中有许多重复或不一致的地方,必须将这些数据转换成全局统一的定义,消除不一致和错误的地方,以保证数据的质量【5】o否则,对不准确,甚至不正确的数据分析得出的结果,将不能用于指导企业做出科学的决策。对源数据的集成是数据仓库建设中最关键,也是最复杂的一步。数据不可更新3.从数据的使用方式上看,数据仓库的数据不可更新,这是指当数据被存放到数据仓库中以后,最终用户只能通过分析工具进行查询和分析,而不能修改其中存贮的数据,也就是说,数据仓库的数据对最终用户而言是只读的。由于数据仓库的查询数据量往往很大,所以对数据查询、查询界面的友好和数据的表示提出了很高提出了更高的要求,因为对数据仓库进行查询分析的用户多是企业的高层领导,他们是所在领域的专家,但对计算机却不一定熟悉。从数据的内容上看,数据仓库存贮的是企业当前的和历史的数据,在一定的时间间隔以后,当前的数据需要按一定的方法转换成历史数据,年代久远的、查询率低的数据需要从数据仓库脱离到廉价慢速设备(如磁带)上,对分析处理不再有用的数据需要从数据仓库中删除。但这些工作是由系统管理员来做,或由系统自动完成。因此,也可以说数据仓库在一定时间间隔内是稳定的。4.数据随时间不断变化数据仓库数据的不可更新是针对应用而言,即用户进行分析处理时不对数据进行更新操作,但不是说,数据从进入数据仓库以后就永远不变。数据仓库中的数据随时间变化而定期地被更新,每隔一段固定的时间间隔后,运作数据库系统中产生的数据被抽取、转换以后集成到数据仓库中,而数据的过去版本仍被保留在数据仓库中,如同“定期摄影术",每隔一周、一月或适当的间隔就照一张像;随着时间的变化,数据以更高的综合层次被不断综合,以适应趋势分析的要求;当数据超过数据仓库的存储期限,或对分析不在有用时,这些数据将从数据仓库中删去【6l。关于数据仓库的结构信息、维护信息被保存在数据仓库的元数据中,数据仓库维护工作由系统根据元数据中的定义自动进行,或由系统管理员定期维护,用户不必关心数据仓库如何被更新的细节。第二章大型数据库关键技术的研究72.1.3数据仓库的体系结构由于数据库和数据仓库应用的出发点不同,数据仓库将于业务数据库系统,但是数据仓库又同业务数据库系统息息相关。因此,数据仓库并不是简单地对数据进行存储,而是对数据进行“再组织’’。数据仓库的体系结构如图2.1所示:,■■一一一一一一一一一一一一一一一一日……日………1一一一一萎藏一I图2.1数据仓库的体系结构2.1.4数据仓库的组成1.数据集市在有些数据仓库版本中,数据集市是微型的数据仓库,而在有些版本中,数据集市仅仅是数据仓库的一段。数据集市通常用于为企业的职能部门提供信息,8基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用还可以用于将数据仓库数据分段以反映按地理划分的业务,其中每个地区都是相对自治的171。在有些设计中,数据集市是完全的数据仓库,作为分布式数据仓库的成员补充总体结构。而在有些设计中,数据集市则通过定期更新,接受来自主数据仓库的数据,在这种情况下,数据集市的功能经常受限于客户端的显示服务。无论数据集市提供何种功能,它们都必须被设计为主数据仓库的组件,以使数据的组织、格式和架构在整个数据仓库内保持一致。表的设计、更新机制或维度的层次结构如果不一致,可能会使数据无法在整个数据仓库内重新使用,并可能导致由相同的数据生成不一致的报表的情况。不过没有必要为获得一致性而将一个数据视图强加在所有数据集市上,通常可以设计一致的架构和数据格式,使得可以有很多不同的数据视图同时保持互操作性。应该从作为数据仓库组件的角度设计数据集市,而无需考虑它们的功能或构造。这使得信息在整个企业内保持一致和可用。2.关系数据库关系数据库是为数据仓库提供强大功能的基础引擎。许多特性和功能已经开发出来并得到增强,使得关系数据库成为联机事务处理(OU曙)系统的主力,而且这些特性和功能可以直接应用于数据仓库。关系数据库用于数据仓库系统,其作用是在数据准备数据库中临时存储、清理和转换传入的数据,容纳和管理数据仓库数据库中的大量数据,并支持数据集市。数据仓库存储、管理和操作海量数据,这些数据通常由数亿行历史信息组成。关系数据库必须提供快速的数据传输和更新灵活高效的索引,以及先进高效的查询能力,以便组织和检索数据仓库的数据。在OLTP系统中,先进的锁定机制和高效的多表事务吞吐量可z日‘匕lt,比在数据仓库中更重要,但是这样的功能通常基于极其高效的关系引擎进行设计,而这在数据仓库操作中非常重要。数据源3.数据仓库用于为决策者提供信息。为此,数据仓库必须将来自企业中许多源的数据聚集合并为一致的数据集,以准确地反映企业的业务运作情况和历史记录。企业通常有多个联机事务处至j](OLTP)系统来捕获日常的业务运作情况。这些OLTP系统很少与数据仓库同时设计。它们甚至可能是由不同企业设计的,尤其当企业是通过并购得到壮大的情况下。数据库架构和数据元素标识键在数据库之间通常是不同的,从这些OLTP系统中析取的数据必须转换为常用表示法【刖。己使用多年的传统系统常常包含不规范的数据和不常见的数据标识设计,而且在查询上不够灵活。对业务分析至关重要的数据甚至可能驻留在个别台式机上的个人数据库和电第二章大型数据库关键技术的研究9子表格中,尤其当企业是在没有信息技术组的情况下发展壮大的时候,必须将这样的数据捕获到数据仓库中。数据仓库中使用的数据源必须被标识,并且进行技术开发以便从中析取数据。4.数据准备区用于数据仓库的数据必须从数据源中析取,进行清理及格式化以保持一致性,并转换为数据仓库架构。数据准备区有时称为数据中间存储区,它是关系数据库,在这里从数据源中析取数据,将数据转换为常用格式,检查一致性和引用完整性,并准备装入数据仓库数据库。在某些数据仓库实施方案中,数据准备区和数据仓库数据库可以组合在一起,只要清理和转换操作不影响为数据仓库数据的最终用户提供服务的性能或操作即可。由于数据源不同以及数据准备操作强加在联机事务处理系统上的处理负荷,几乎无法选择在源数据库中执行准备操作。用于数据准备操作的关系数据库无论在何处执行,都必须具有强大的数据操作和转换功能。最初装载数据仓库后,需要不断地利用数据准备区为更新数据仓库准备新数据。在大多数的数据仓库系统中,这些不断进行的操作是定期执行的,常被调度以使性能对可操作的数据源系统的影响减到最小。使用数据仓库和于数据源的数据准备区可提高管理数据仓库的效率。尝试转换数据源系统中的数据会对联机事务处理的性能造成不良影响,而许多传统系统没有高效的或容易执行的转换功能。很少能够协调从不同数据源中析取的不一致的数据,直到将数据收集到公用数据库中,这时可以更轻松地识别和纠正数据完整性错误。数据准备区应将原始数据同数据仓库数据隔离开,以保护数据仓库的完整性,并允许数据仓库执行其准备显示信息和支持客户端访问的主要功能。在将数据仓库数据库用于数据准备时应小心,避免将错误引入数据仓库数据并尽量减少数据准备处理对数据仓库性能的影响【91。许多数据仓库数据库操作要求高级的查询和能够处理海量数据,数据清理会对这些操作造成不良影响。数据准备区是关系数据库,它为数据准备操作的常规工作区提供服务。它包含源数据键于用于数据仓库的代理键相关的表、转换数据的表,以及许多临时表,还包含从源数据系统中析取数据的进程和过程。显示服务5.数据仓库的目的是表现业务信息,提供企业的决策者使用。如果没有工具帮助它分析和评估,包含数亿条数据的数据仓库对决策者将毫无用处。这些分析工具在简单的报表和高级的数据挖掘算法之间可能有所不同。应用程序接口沁I)还必须能够支持开发使用数据仓库信息的自定义应用程序。(1)预定义报表10基于OracleDataMiningAPl的数据挖掘实现方法的研究与应用简单的预定义汇总报表可以定期或根据需要,为管理人员提供某个即时点的业务状态快照。更高级的报表可以显示预定义的业务变化的趋势。这样的报表很有用,并且一直都是从联机事务系统中生成的。若要捕获最新状态,必须不断地从数据源系统中生成快照的详细信息和汇总报表。定期报表与数据仓库的更新相协调,并且可以转换到数据仓库以减少可操作系统的负荷。使用历史数据评估趋势的报表应在数据仓库中完成,数据仓库中包含具有适当格式且随时可用的历史数据,并且可以处理大量的汇总数据。(2)联机分析处理预定义报表很适合其特殊目的,但不适合探测分析。分析者希望在数据中发现趋势和异常,并探测数据的不同区域以找到趋势和异常的根源。联机分析处理(OLAF)是--个分析工具,旨在帮助对大量的数据仓库数据进行这种分析。为探测数据仓库中的数据,管理人员询问有关数据的问题,然后根据答案询问相关的或不同的问题。管理人员可以先询问所探测的季度中的按周汇总的销售数据,然后深化到周中的每一天,查明不寻常的销售量是否为以前的事件。发现事件发生的时间后,管理人员按产品浏览销售额并查明特定产品的大量销售额是否发生在那一天。然后管理人员根据这些答案按地区查询销售额,并深化以查明具体某个商店是否在特定的日期完成了特定产品的大订单。(3)挖掘模型联机分析处理(OLAP)将数据组织为预定义的结构以便于探测,而数据挖掘与OLAP相反,其目的是执行探测分析并识别信息中有趣且有价值的东西,如将数据分组以供分析者或管理人员检查。数据挖掘还可以创建决策树,用于根据现有数据元素的特性预测将来的数据。2.1.5数据仓库的设计方法数据仓库可以使用自顶向下方法、自底向上方法或二者结合的混合方法设计。自顶向下方法由总体设计和规划开始。当技术成熟并已掌握,对必须解决的商务问题清楚并已很好理解时,这种方法是有用的。自底向上方法以实验和原型开始。在商务建模和技术开发的早期阶段,这种方法是有用的。这样可以以相当低的代价前进,在做出重要承诺之前评估技术的利益。在混合方法下,一个组织既能利用自项向下方法的有计划的战略性的特点,又能保持像自底向上方法一样快速实现和立即应用。从软件工程的观点,数据仓库的设计和构造包含以下步骤:规划、需求研究、问题分析、仓库设计、数据集成和测试,最后部署数据仓库【101。大型软件系统可以用两种方法开发:瀑布式方法和螺旋式方法。瀑布式方法在进行下一步之前,每一步都进行结构化和系统化的分析,就像瀑布一样,从一级落到下一级。螺旋第二章大型数据库关键技术的研究式方法涉及功能渐增的系统的快速产生,相继版本之间的间隔很短。对于数据仓库,特别是对于数据集市的开发,这是一个好的选择,因为其周转时间短,能够快速修改,并且新的设计和技术可以快速接受。一般地,数据仓库的设计过程包含如下步骤:1.选取待建模的商务处理;如果一个商务过程是整个组织的,并涉及多个复杂的对象,应当选用数据仓库模型。然而如果处理是部门的,并关注某一类商务处理,则应选择数据集市。2.选取商务处理的粒度;对于处理,该粒度是基本的,在事实表中是数据的原子级。3.选取用于每个事实表记录的维;4.选取将安放在事实表中的度量。由于数据仓库的构造是一个困难而长期的任务,它的实现范围应当清楚地定义。一个初始的数据仓库的实现目标应当是特定的、可实现和可测量的。这涉及时间和预算的分配,一个组织的哪些子集要建模,选择的数据源数量,提供服务的部门数量和类型。一旦设计和构造好数据仓库,数据仓库的最初使用包括初始化装入、首次展示规划、培训和定位。平台的升级和管理也要考虑。数据仓库管理包括数据刷新、数据源同步、规划故障恢复、管理存取控制和安全、管理数据增长、管理数据库性能以及数据仓库的增强和扩充。范围管理包括控制查询、维、报告的数量和范围,数据仓库的大小,或进度、预算和资源。2.2数据挖掘技术2.2.1数据挖掘的概述数据挖掘(DataMining)最简单的定义是,它是一个用于发现数据中新的、隐藏的或者未预期的模式的行为集合。更具体地描述为,数据挖掘是一个利用各种分析工具在大量数据中发现模型和数据间关系的过程,这些模型和关系可以用来做出预测111J。数据挖掘就是要在“数据矿山"中找到蕴藏的“知识金块”,帮助企业减少不必要投资的同时提高资金的回报。数据挖掘给企业带来的潜在的投资回报几乎是无止境的。世界范围内具有创新性的公司都开始采用数据挖掘技术来判断哪些是他们的最有价值客户,以便重新制定他们的产品推广策略,用最小的花费得到最好的销售。比如,电信公司可以利用数据挖掘技术发现流失概率很高的客户、可能出现的欺诈行为、潜在的大客户等等。12基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用2.2.2数据挖掘的体系结构数拱《挖掘系统是数据仓库系统中非常重要的部分。但是数据挖掘系统可以于数据仓库而存在。通常,数掘挖掘产品都提供访问数据仓库、数据库、平面文件以及其他外部数据源的接口II2。。利用这些接口,数据挖掘工具可以通过多种渠退获孔}所需的数据。在提取数据的时候,数据挖掘I[具需要进行一些预处理以保证j!;人挖掘库中的数据的iF确性。在件多情况下,数据挖掘工具将从数据仓库中提取数据,如果数据在进入数据仓瞻时已经完成了数据一致性的工作,则数据进入挖掘库时,可以不做清除洗数据融r:作。{{;!!掘库是数据挖掘工具的杨心部分。在挖掘库中存放了数据挖掘项目需要的数捌、铎法库和知识库。在算法库中存放了已经实现的挖掘算法,在知识库中存放毫纸丸定义的和经过挖掘后发现的知识。通前数据挖掘工具还应当提供必要的编程API,使用户可以对算法进行改进,将算澎、嵌入到最终用户的界面系统中。数据挖掘的体系结构113J如图2.2所示:图2.2数据挖掘的体系结构2.2.3数据挖掘的基本步骤在实施数据挖掘之前,先制定采取什么样的步骤,每一步都做什么,达到什么样的目标是必要的。有了好的计划才能保证数据挖掘有条不紊地实施并取得成第二章大型数据库关键技术的研究13功。首先我们需要定义商业问题,而后根据选择的组建立数据挖掘库。数据挖掘库中的信息可以从数据仓库中提取,如果还需要别的信息,还可以从外部数据源中直接获取。建立数据挖掘库后,需要对数据进行分析,拟定初步的数据模型,这包括选择变量、选择记录集合,对变量进行转化或者创建新的变量。在模型需要重新修改,直到模型和实际系统比较接近再对模型进行解释,并作为辅助决策信息传递给管理人员。数据挖掘的基本步骤114J如图2.3所示:图2.3数据挖掘的基本步骤2.2.4数据挖掘的常用分析方法数据挖掘的核心模块技术包括数理统计、人工智能、机器学习等,不同的实际问题所采用的数据挖掘方法有所不同,具体使用哪些方法主要取决于问题的类型以及数据的类型和规模。数据挖掘的分析方法一般分为预测型和描述型。14基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用1.预测型预测型方法通常包含以下几种:(1)分类设有一个数据库和一组具有不同特征的类别,该数据库中的每一个记录都被赋予一个类别的标记,这样的数据库称为示例数据库或训练集。分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述或建立分析模型或挖掘出分类规则,然后用这个分类规则对其他数据库中的记录进行分类。目前已有多种分类分析模型得到应用,其中几种典型模型是决策树模型、基本规则模型和神经网络模型,而应用最多的一般是决策树模型。分类要解决的问题是为一个事件或对象归类。在使用上,既可以用此模型分析已有的数据,也可以用它来预测未来的数据。分类以及决策树算法在移动通信领域中主要应用于大客户特征的识别、客户群体的细分、客户流失的预测与控制等方面。(2)回归分析回归模式的函数定义与分类模式相似,它们的差别在于分类模式的预测值是离散的,回归模式的预测值是连续的。回归是通过具有已知值的变量来预测其他变量的值。在最简单的情况下,回归采用的是像线性回归这样的标准统计技术。但大多数现实世界中的问题是不能用简单的线性回归预测的。如商品的销售量、股票价格、产品合格率等,这些事件很难找到简单有效的方法来预测,因为要描述这些事件的变化所需要的变量数以百计,且这些变量本身往往都是非线性的。为此,人们又发明了许多新的手段来试图解决这个问题,如逻辑回归、决策树、神经网络等。一般来说,同一个模型既能用于回归,也能用于分类。如CART决策树算法既可以用于建立分类树,也可建立回归树。回归分析在移动通信领域中主要应用于业务量预测、用户数预测等方面。(3)时间序列分析时间序列是用变量过去的值来预测未来的值。与回归一样,它也是用已知的值来预测未来的值,只不过这些值的区别是变量所处时间的不同。时间序列采用的方法一般是在连续的时间流中截取一个时间窗口,窗口内的数据作为一个数据单元,然后让这个时间窗口在时间流上滑动,以获得建立模型所需要的训练量。它支持时间序列模式,能够根据数据随时间变化的趋势预测将来的值,也能够处理时间的特殊性质【15l。时间序列分析在移动通信领域中主要应用于业务量预测、客户的呼叫模式分析以及网络管理与优化等方面。2.描述型描述型方法通常包含以下几种:(1)关联分析第二章大型数据库关键技术的研究15关联分析,即利用关联规则进行数据挖掘,寻找数据库中值的相关性,能够支持发现同一事件中不同项目之间的关联规则。在数据挖掘研究领域,对于关联分析的研究开展得比较深入,人们提出了多种关联规则的挖掘算法,如APRIORI、STEM、AIS、DHP等算法。关联分析的目的是挖掘隐藏在数据间的相互关系,寻找在同一个事件中出现的不同项的相关性。数据挖掘得到的关联规则或序列模式并不是真正的规则。它只是对数据库中数据之间相关性的一种描述,还没有其他数据来验证得到的规则是否正确,也不能保证利用过去的数据得到的规律在未来新的情况下依然有效。有时甚至很难决定能利用发现的关联规则做些什么。总之,在采取任何行动之前,一定要经过分析和实验,即使它是利用数据挖掘得到的知识。关联分析在移动通信领域中主要应用于客户的呼叫模式分析、话费欺诈的早期识别等方面。(2)序列关联分析序列关联分析和关联分析相似,其目的也是为了挖掘数据之间的联系,但序列关联分析的侧重点在于分析数据间的前后序列关系。它们之间的差别是序列关联分析把数据之间的关联性与时间联系起来。序列关联分析描述的问题是:在给定交易序列数据库中,每个序列是按照交易时间排列的一组交易集,挖掘序列函数作用在这个交易序列数据库上,返回该数据库中出现的高频序列。在进行序列关联分析时,同样也需要由用户输入最小置信度C和最小支持度S。序列关联分析在移动通信领域中主要应用于话费欺诈的早期识别等方面。(3)聚类分析聚类分析就是通过分析数据库中的记录数据,根据一定的分类规则,合理地划分记录集合,确定每个记录所在类别。通过进行聚类分析,能够有效地把数据划分到不同的组中,组之间的差别尽可能大,组内的差别尽可能小。与分类模式不同,聚类分析输入的是一组未分类记录,进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪几个数据项来定义组。聚类分析和分类分析是一个互逆的过程。在最初的分析中,分析人员根据以往的经验将要分析的数据进行标定,划分类别,然后用分类分析方法分析该数据集合,挖掘出每个类别的分类规则;接着用这些分类规则重新对这个集合进行划分,以获得更好的分类结果。这样,分析人员可以循环使用这两种分析方法,直至得到满意的结果。聚类分析所采用的分类规则是由聚类分析工具决定的。聚类分析的方法很多,其中包括系统聚类法、分解法、加入法、动态聚类法、模糊聚类法、运筹方法等。采用不同的聚类方法,对于相同的记录集合可能由不同的划分结果。聚类分析在移动通信领域中主要应用于大客户特征的识别、客户群体的细分、话费欺诈的早期识别等方面。16基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用2.3电信领域的应用研究长期以来,在电信业务的经营过程中,我国电信企业一直遵循“用心服务,用户至上’’的宗旨。然而由于没有竞争,电信企业“以客户为中心”的经营原则并没有真正发挥作用,电信企业为客户提供均一化的业务,并不考虑单群或单个客户的特别需要,因为市场上没有其它的电信运营商提供更接近这些用户群的业务。电信市场放开和竞争加剧的趋势,对电信企业的竞争能力提出更高要求。电信企业一般从三个方面区别于竞争对手并获得竞争优势:价格、业务和客户服务。价格战不能长期使用,业务质量的差异性也随着技术的发展将逐步消失,因此,完善客户服务成为电信企业获取最终竞争优势的重要手段f161。目前,我国电信增值业务市场已经全部放开,长话业务市场也正逐步放开,竞争的帷幕I习I]N拉开。中国电信已经深深感到了竞争的压力,由于对主导电信企业的非对称管制,价格并不能成为中国电信竞争工具,并且由于技术的发展,业务质量也不能成为市场新进入者们的竞争障碍。在电信行业内,赢得一个新客户比保留一个老客户所付出的代价要高得多,因此,提高服务质量,赢得客户的忠诚对企业生存发展意义重大f1‘71。另一方面,市场放开,客户的选择多了,以前的“自然忠诚”有了显著的变化,客户对市场认识越深,越希望作为一个的个体被认识和理解,越希望企业更好地理解和满足他们的需求,为它们提供个性化的服务。因此,以客户为导向,建立客户营销体系,减少客户的流失,提高客户的忠诚度,成为中国电信在竞争中处于有利地位的重要手段。不过,电信的客户群体非常庞大,而且客户对服务的要求也越来越高,作好服务工作不再是漂亮的营业员会微笑就可以完成的事了,必须有专门的系统对电信客户的资料信息进行管理和分析,挖掘出一些隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识。具体内容包括:利用客户资料和一切可能有助于进行客户分析管理的资料进行客户概况分析,客户忠诚度分析,客户利润分析,客户性能分析,客户未来分析,客户产品分析和客户促销分析。通过对这些数据的分析,提供既能留住老客户又能吸引新客户的决策信息【18l。数据仓库可以将各个渠道得来的数据,按照主题整理、转换成全面、完善的电信客户信息库。数据仓库内存储有详细的客户轮廓的信息和客户交易行为的历史数据,通过数据挖掘和数据分析,来发现隐藏在数据后面的真实情况,才能了解客户的需求,从而提高电信企业的收益率和竞争力。数据仓库和数据挖掘技术在电信企业中还有很多其他方面的应用,比如:1.话单分析用户的通话话单包括了用户一次消费行为的所有信息。通过对大量历史话单第二章大型数据库关键技术的研究17的分析可以了解用户的消费习惯、消费能力等许多有价值的信息。然而,由于长话话单数量巨大,要在线保存需要占用大量的数据空间,一般电信企业只保留半年的在线话单,这给话单分析带来了麻烦。例如要比较去年五一节假期间与今年五一节假期间的长话变化情况就不太好办,而要比较最近五年的变化情况几乎就不可能。而且,保存的话单数据是为计费需要而设计的,不适应话单分析的要求,比如要统计超长话单和超短话单的地区分布情况和用户分布情况就不好办。直接在计费数据库中进行检索非常缓慢效果又不好,还可能影响正常的业务运行。其实,一般进行分析、统计关心的是某一类用户的消费行为,而不会细到具体某个号码某次的通话记录。因此,可以事先设定一个粒度,根据粒度对同类话单数据进行汇总并加上一些我们想增添的信息,如主叫性质,整理后加载到数据仓库中。有了这样面向分析而设计的话单数据就可以对历年来大量的长话、网话话单数据和用户的档案资料等相关数据进行分析,通过对用户的分类,从消费能力、消费习惯、消费周期等诸方面对用户的话费行为进行分析和预测1191。还可以通过对通话起止时间及通话时长分析得到各类用户的通话时段分布情况及日消费高峰、月消费高峰;长话的消费时间、消费次数;及什么地方的用户消费能力较高,什么地方的用户消费能力偏低;以及话费流失的分析。优惠策略分析2.电信企业经常推出各种优惠措施推广新业务和吸引扩大业务量。优惠促销固然可以开拓市场,但如果优惠策略不恰当,结果也可能适得其反。如果利用数据仓库技术建立优惠模型,实现优惠策略的仿真,根据优惠策略进行模拟计费和模拟出帐,其仿真结果将提示所制定的优惠策略是否合适,并可按情况进行调整、优化,使优惠策略的出台更有科学依据。在优惠实行后,也可以通过数据仓库对优惠效果进行分析、评估,检查优惠效果是否达到。3.可定制报表生成电信企业经营分析需要大量的报表。这些报表的数据都直接来源于电信企业的数据库。因此,业务人员只知道需要哪些数据,却不知道如何得到他们,虽然一般在开发软件时开发商一般都会根据企业需求开发出一些固定格式的报表程序来满足企业需要,但电信新业务层出不穷,企业经营瞬息万变,报表种类与报表格式常常要发生变化I删。这时候,业务人员往往求助于维护人员。但维护人员不一定理解业务人员的想法,也不一定理解数据库的每个细节,因此他给出的统计结果可能会有误差。而且,这样的查询往往是手工进行,表格也手工制作,费时费力,难以管理。利用数据仓库为自定义生成报表提供了可能。数据仓库为经营者提供数18基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用据源,业务人员可以根据报表样式通过报表生成系统对数据源进行调整、配置,从而自己可以定制符合自己需求的报表。第三章基于Oracle数据挖掘分析系统的设计与开发19第三章基于Oracle数据挖掘分析系统的设计与开发3.1系统运行开发环境1.操作系统:2000MicrosoftWindows2.Server或XP等操作系统平台开发软件:(1)Java2SDK1.4.1(2)Borland3.JBuilder9.0数据库软件:9i大型数据库系统,包含OracleDataOracleMining(ODM)API。OracleDataDataMining必须加载以下6个Java程序包(.j砷才能编译和执行Oracle》¥ORACLEHOME/jdbc/lib/classesl2.jar》¥ORACLEHOME/1ib/xmlparserv2.jarMining功能模块,特别注意要在CLASSPATH环境变量中设置它们的路径,如下所示:>¥ORACLE_HOME/rdbms/jlib/jmscommon.jar》¥ORACLE_HOME/rdbms/jlib/aqapi.jar>¥ORACLEHOME/rdbms/j’lib/xsul2.jar》¥ORACLEHOME/drn/lib/odmapijar3.2系统开发流程该数据挖掘分析系统的开发流程图,如图3.1所示:图3.1系统开发流程图20基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用3.3系统总体架构设计本数据挖掘分析系统主要是在大型数据库Oracle9i的基础上设计开发的,总体分为三个大部分:Oracle9i数据仓库、OracleDataMining(ODM)应用服务器和数据挖掘分析系统客户端。分析系统的体系结构如图3.2所示:客,、端ODM的心川暇数锚仓唯图3.2系统体系结构图自下而上构建了一个较为完善的数据挖掘分析系统。第一部分是电信公司经营分析系统数据仓库,它包含了经过ETL(Extract,transform训练数据、测试数据和应用数据);第二部分是Oracle9iandload)后比较干净的客户基本资料、帐务数据和服务使用数据,该层为智能分析提供数据基础(包括DataMining(ODM)应用服务器,该层以数据挖掘技术为核心,将建立的评分模型存放在模型库中,ODM应用服务器向客户端提供模型算法的二次开发API函数接口;第三部分是数据挖掘分析系统的客户端软件,它通过对基于Java的OracleDataMiningAPI的调用创建用户图形接口,实现了对电信客户资料的数据挖掘功能,分析和预测电信客户可第三章基于Orade数据挖掘分析系统的设计与开发21能的行为。3.4系统数据仓库设计与构建3.4.1Oracle9i数据仓库Orade9i是由Oracle公司开发的、面向Interact计算的、支持关系对象模型的分布式数据库产品。它是一个高度集成的互联网应用基础平台,为企业数据存储提供了高性能的数据库管理系统【211。在数据和业务关键领域,它是首选的大型数据库产品。它具备了很多突出的特定:1.支持大数据库、多用户的高性能的事务处理。Oracle支持最大数据库,其大小可达几百G字节,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。系统维护具有高效的性能,Oracle每天可连续24小时工作,正常的系统操作(后备或个别计算机系统故障)不会中断数据库的使用。可控制数据库数据的可用性,可在数据库级或在子数据库级上控制。2.Orade遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。它是一个开放系统,保护了用户的投资。美国标准化和技术研究所(NlST)对OracleServer进行检验,百分之百地与ANSI/ISOSQL89标准的二级相兼容。3.实施安全性控制和完整性控制。Oracle为各监控数据存取提供系统可靠的安全性。Oracle实施数据完整性,为可接受的数据指定标推。4.支持分布式数据库和分布处理。Oracle为了充分利用计算机系统和网络,允许将处理分为数据库服务器和客户应用程序,所有共享的数据管理由数据库管理系统的计算机处理,而运行数据库应用的工作站集中于解释和显示数据。通过网络连接的计算机环境,Oracle将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。分布式系统像集中式数据库一样具有透明性和数据一致性。5.具有可移植性、可兼容性和可连接性。由于Oracle软件可在许多不同的操作系统上运行,以至于在Oracle上所开发的应用可移植到任何操作系统,只需很少修改或不需修改。Oracle软件与工业标准相兼容(包括许多工业标准的操作系统),所开发的应用系统可在任何操作系统上运行。可连接性是指Oracle允许不同类型的计算机和操作系统通过网络可共享信息。Oracle9i提供了对数据仓库的全面支持,提供了一系列的集成工具,使用这些工具能够帮助数据仓库开发和管理人员创建、管理和维护企业数据仓库,同时利用数据仓库中的数据进行数据挖掘,支持决策分析122。。Orade9i提供的工具包括:22基于OracleDataMiningAPl的数据挖掘实现方法的研究与应用1.Oracle9i数据库,它是一个对象关系型数据仓库,用于存储大量的数据仓库数据。2.SQL*Loader工具,用于将数据装载到数据仓库中,这些数据包括Oracle数据库数据、其他数据库系统中的数据和外部数据,当将数据装载到Oracle数据仓库中的时候,可以使用SQL*Loader转换数据。3.OracleWarehouseBuilder,用于创建数据仓库。4.Oracle透明网关,用于访问SQLServer中的数据,将数据装载到Oracle数据仓库中。5.OracleDiscover,用于分析数据仓库中的数据,支持决策分析。同时,为了支持数据仓库,提供更好的性能,Oracle还采用了多种技术,包括:1.支持XML技术,使用XML工具可以转换和提取数据。2.支持分区和并行技术,对数据仓库中的数据进行分区处理,对查询并行化,从而能够获得更好的查询性能。3.支持实体化视图,实体化视图是Oracle专有的技术,同时使用实体化视图能够获得较高的查询性能。4.Oracle提供了用于分析和聚集的SQL语法,这是Oracle为了便于对数据仓库进行操作,对基本SQL语法进行的一些扩展。5.支持OLAP技术,Oracle提供了联机分析工具OracleExpressServer和OracleExpressClient。3.4.2数据仓库的逻辑模型构建数据仓库是面向主题的、集成的、包含历史的、不可更新的、面向决策支持的、面向全企业的、最明细的数据存储、数据快照式的数据获取等,这些都是指导数据仓库建设的最基本原则。而在电信领域中,数据仓库所面向的主题主要是各种各样的电信业务,其包括以下几个方面:1.大客户资料分析分析电信大客户的基本信息以及帐务信息,从而了解大客户的情况,从中挖掘新的销售机会。2.客户流失分析分析客户流失情况,刻画流失客户特征,以此为基础构造客户流失分析预测模型,对可能的客户流失做出预测,使营销部门能够做出相应的挽留措施。3.网络状况分析分析网络的情况,刻画网络元素的分布以及利用率,为今后的网络优化提供数据支持。4.客户信用度与忠诚度分析第三章基于Oracle数据挖掘分析系统的设计与开发23通过信用度分析模型,评价客户的信用度,从而对不同的欠费用户采用不同的措施。在本节中,以电信客户资料分析这一主题,描述了电信领域面向主题的数据仓库的构建过程。在构建逻辑模型时,需要根据分析的需求来定义电信客户资料所应该包含的各种信息。>>>>时间信息:入网时间、流失时间等客户个人资料:身份证号码、电话号码、E.mail等客户帐号信息:开户银行、银行帐号等客户类型信息:是否为集团用户、单位类型等根据这些电信业务的客户信息进一步细化,将得到具体的数据字段。然后按照维度建模的规则将整个电信客户的数据模型设计成星型结构,如图3.3所示:嚣,1资#4教j~lj甥|维髭’秀体户lD屡次竣泌凌勋:fJ鼢趼场Jl份标磅须域辱连扔、呼性弱像用瞧缀锑划,}缴袤蠛裘线列馅fll霉{舒l:漩惦鹰双分F戳髂孵瞧编I}信用膻籀逐ll午龄o绕谴}j期,l毡话弓璐资料妖态入瓣Il辫■L所蝎印拆号r溺赞缸:次信j}jj芟}爨纺丘;次?蠡.髭}拜表缎翻}ilf餐缓锎1J1◆?行ql,炎刚嫩袈客J、类,{!行豫炎碉身份炎娥身价汗什确蟹出生年份救ff张煌纣缠力式锻行韵号银if计7、暇蛩衮缝缝嫩家程睹税流失}j辫I维表级澍盼娃躺哆ff业獭述淤赞级别搬述。●1I露,、燮燃纷表缈友毯淡髯,、炎瑷标码,舻∥类掣描述’健{J1fi.10掰Z宅l鲋表绞铡谨“锄蟹{;l乏{j嘲绷图3.3电信客户资料分析主题模型在得到电信客户资料的逻辑模型之后,就可以着手进行对应的物理模型的设计了。要注意的是物理模型的设计重点与逻辑模型不同。在物理模型设计阶段,需要详细地定义电信客户资料所涉及的每一个字段类型,以及各表之间的关系。这一步通常使用数据仓库建模工具【冽来辅助完成,这些工具均有模型自动生成功能,可以很方便地按照我们所设计的要求,帮助我们快速建立电信客户资料分析主题模型。24基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用3.4.3数据仓库的物理模型设计物理模型设计主要包括:>确定电信客户数据的存储结构;>确定索引策略;>确定电信客户数据的存放位置;>确定存储分配。确定数据仓库实现的物理模型,要求设计人员必须深入了解以下内容:>所选用的Oracle9i数据库管理系统,特别是它的存储结构和存取方式:>电信客户的数据环境、数据资料的使用频率和使用方式、数据规模以及响应时间要求;外部存储设备的分块原则、块大小的规定等特性以及设备的I/0特性等。确定电信客户数据的存储结构>1.不同的存储结构有不同的实现方式、不同的适用范围和优缺点。针对电信客户资料主题,在选择存储结构时充分考虑了存取时间、存储空间利用率和维护代价这三个方面的主要因素。2.确定索引策略数据仓库中电信客户资料的数据量虽然很大,但是其中的较大部分数据是不常更新的。因此,可以设计多种索引结构提高电信客户数据存取的效率,如广义索引。确定索引策略时,需要对数据的存取路径进行仔细地设计和选择。3.确定电信客户数据的存放位置在数据仓库系统中,同一个主题域的数据并不要求存放在相同的介质上。在物理设计时,要按电信客户数据的重要程度、使用频率以及对响应时间的要求进行分类,并将不同类的数据分配存储在不同的存储设备中【241。重要程度高、经常存取并对响应时间要求高的数据就存放在高速存储设备上,如硬盘;存取频率小或对存取响应时间要求低的数据就可以放在低速存储设备上,如磁盘或磁带。确定电信客户数据存放的位置时还应该考虑以下因素:>是否进行合并表:>>4.是否对一些经常性的应用建立数据序列;对常用的、不常修改的表或属性是否冗余存储。确定存储分配存储分配主要包括块的大小、缓冲区大小和个数等,这些都应该在物理模型设计时确定。确定时要根据Oracle9i数据库管理系统提供的参数和数据仓库所需要存放的数据量来决定。第三章基于Oracle数据挖掘分析系统的设计与开发253.5系统客户端功能设计数据挖掘分析系统客户端主要包含了以下几个基本模块:用户管理模块、数据库管理模块、数据库操作模块和数据挖掘模块。系统客户端的功能结构如图3.4所示:图3.4系统客户端功能结构图1.用户管理模块:主要负责对操作用户登陆注册信息的管理,包括添加用户和修改密码等基本操作。2.数据库管理模块:包括数据备份和数据恢复等基本操作,主要负责将一些重要的数据库数据进行备份保存,如果遇到特殊情况,数据意外丢失或者损害,就可以很方便地恢复从前的备份数据,保证了分析系统数据的安全性和可靠性。3.数据库操作模块:主要负责对数据库中的数据信息进行管理,包括添加数据、修改数据、查询26基于OracleDataMiningAPl的数据挖掘实现方法的研究与应用数据和删除数据等基本操作。4.数据挖掘模块:这是本系统的核心模块,可以加载多种算法(如:AdaptiveBayesNetwork算法、NaiveBayes算法和0一Cluster算法等等)来对数据仓库中大量历史数据进行数据挖掘和分析预测。3.6数据预处理为了将电信客户资料的原始数据应用到本数据挖掘分析系统中,我们需要对它们进行数据预处理,这样才能满足我们这个系统的分析要求,保证所挖掘预测的有价值的信息尽可能准确和可靠。因此,数据预处理需要经历两个基本步骤:>审核与整理原始数据>建立数据挖掘库3.6.1审核与整理原始数据由于数据来源于电信企业业务系统的不同数据库,大部分都存在不同系统数据格式混乱、字段名不一致、缺乏操作性等问题。比如:电信客户基本信息的数据来自于电信综合业务支持系统、计费帐务系统、大客户系统和客户关系管理等系统中。因此必须对数据进行清理和预处理,为数据挖掘算法提供干净、准确、更有针对性的数据,从而减少挖掘内核的数据处理量提高了数据挖掘的效率和准确性。3.6.2建立数据挖掘库在进行数据挖掘前,把预处理过的数据都放到一个以电信客户资料分析为主题的数据仓库中,这个数据仓库的设计已经在论文的前面章节论述过了,我们将它作为本系统的数据挖掘库。在建立它的同时就开始进行数据预处理工作,以期最后建成的数据挖掘库是不同于原有数据库的一个经过特殊化处理的可以直接用挖掘工具进行挖掘的库。建立数据挖掘库时采用了如下步骤:1.数据收集确定要挖掘的数据源,进行数据的收集工作。在本论文中,数据源应该是针对经过审核整理的存放电信客户基本信息的大型数据库,但是由于涉及到电信信息资料的保密性和特殊性,我们只能自行模拟生成研究所需要的电信客户的历史数据。第三章基于Oracle数据挖掘分析系统的设计与开发2.合并与整合27大部分情况下,要用的数据是分布在不同的数据库中的数据。合并与整合是把来自不同数据源的数据合并到同一个数据挖掘库中,并且要使那些本来存在冲突和不一致的数据一致化。不同的数据库间在数据定义和使用上通常都存在巨大的差异,在这个步骤中使用数据集成的原则进行处理。3.选择数据合并与整合后,要选择用于数据挖掘的数据,也就是说必然是在源数据的子集内。4.数据清理由于各种各样的数据质量问题,数据中可能包含了不正确的值。当从多个不同的源整合数据时一定要注意不同源之间数据的一致性。空缺值是一个非常有害的问题,可以通过增加一个新的变量来标识包含空缺值的记录。空缺的值除了录入员操作失误没有输入以外,一般都代表“无",或者是无职务,或者是无职业,或者无职称等,对于操作失误导致的空缺值,通过各字段间关系的推断,或者是询问数据来源单位核实可以填充完整。有些空缺值,可以直接用“O"来代替。对于不一致的数据,可以通过人工纠正的方法来处理。5.数据离散化对于给定的数据属性,概念分层定义了该属性的一个离散化。通过收集并用较高层次的概念,替换较低层次的概念,概念分层可以用来归约数据。结合电信客户资料有关的基本信息,分析和确定了客户资料表中应该包括这些基本字段:客户ID-号(Person_ID)、客户关系(Relationship)、职业(Occupation)、性另lJ(Sex)、年龄(Age)、受教育程度(Education)、婚姻状况(Marital_Status)、每周通话时间(Hou啦_Per_Week)、通话费(Capital_Gain)和欠费情况(Capital_Loss)等等。由于客户资料中的属性大多具有有限个不同值,可以生成分类属性的概念层次,有一些特殊情况,则可以按照通常的习惯,取一定的范围分层。比如性另fJ(Sex):女(1)、男(2),受教育程度(Education):小学(1)、初中(2)、高dP(3)、学士(4)、硕士(5)和博士(6)等等。第四章基于OracleDataMiningAPI数据挖掘模块的实现29第四章基于OracleDataMiningAPI数据挖掘模块的实现4.1Oracle9i数据挖掘4.1.1Oracle9i数据挖掘的概述Mining(ODM)是Oracle9i数据库企业版的一个选件,它使公司Oracle9iData能够从最大的数据库中高效地提取信息,并创建集成的商务智能应用程序【251。数据分析人员能够发现那些隐藏在数据中的模式和内涵。应用程序开发人员能够在整个机构范围内快速自动提取和分发新的商务智能——预测、模式和发现。ODM针对以下数据挖掘问题为Oracle9i数据库提供支持:分类、预测、回归、聚类、关联、属性重要性、特性提取以及序列相似性搜索与分析(BLAST)。所有的建模、评分和元数据管理操作都是通过基于Java的Oracle的,并且完全在关系数据库内部进行。Oracle9iDataDataMiningAPl来访问Mining帮助公司建立商务智能应用,这些程序可以查找公司数据中有意义的模式和关联,这些模式可以帮助用户更好地理解和预测客户行为。利用Oracle9i数据挖掘,公司可以制订相应的策略来:>向现有客户交叉销售>获取新客户>识别最可盈利的客户>更精确地描述客户此外,利用Oracle9i数据挖掘技术,公司可以提取他们所需要的数据库中的隐含信息,从而对公司的客户及公司的商务活动达到更深的了解。尤其在科学、、制造、医疗以及电信等其它应用领域中也可以检测到隐含的数据模式,例如:>查找病人、药物及医疗效果之间的关联>识别可能的网络入侵>预测和控制电信客户的流失内嵌于Oracle9i数据库的数据挖掘,简化了从海量数据中提取商务智能信息的过程。它避免了把海量数据卸载到外部专用分析服务器来做数据挖掘和评分(DataMining&Scoring)。通过Oracle9iDataMining,所有的数据挖掘功能都内嵌9iData到了Oracle9i数据库中;这样,数据、数据准备、模型建立以及模型评分等活动都保留在数据库内部进行。而Oracle9i的可伸缩性也可使Oracle在此基础上再通过其他查询、分析、制表工具和应用,OracleMining分析大量数据以侦测其中的微妙模式和关系,并提取更多有价值的商务智能信息。9iDataMining新的30基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用洞察力和预测功能可供访问,这就可以使企业建立起由数据挖掘结果驱动的应用。由于Oracle9i数据库具有无可匹敌的性能和伸缩性,因而Oracle9iDataMining为建立高级商务智能应用提供了非常理想的基础架构。4.1.2Oracle9i数据挖掘的应用Mining使公司能够在其经营范围之内,系统化地提取和集成新DataOracle9iData的商务智能信息。应用开发人员可以使用Oracle9iMining的基于Java的API(ApplicationProgrammingInterface应用编程接口)来增加数据挖掘的洞察和预测功能,从而增强商务应用功能,如企业资源计glJ(ERP)、客户关系管理(CRM)、Web入口以及无线应用等。例如,电信公司可以使用Oracle9iDataMining来建立转网应用(ChumApplications),以此在客户转而投向公司的竞争者之前,来识别出这些可能转网的客户。oracle9iDataMining的预测功能在互惠互利的一对一关系中,可以用来预测客户行为,并前摄地管理客户。零售商和数据库营销商可以使用Oracle9iDataMining来建立营销活动应用,9iData其目标是那些对报价最可能做出响应的潜在客户。OracleMining能够把数据挖掘结果整合到应用中,这样的例子包括预测客户转I网(Chum)的行为、对特定报价做出响应、成为可赢利的客户、提出一项索赔或者花费大量金钱等可能性【261。将Oracle9iDataMining与电子商务和Web网络整合在一起,可以加强Web的搜9iData索能力,提供与内容有关的或者关联的有用的其它文档和项目。一旦对数据进行了挖掘和建立了预测模型,OracleMining就可以利用该模型给其它数据评分以便做出预测。给数据评分是在数据库中发生的,分数随后可供其它应用使用。存储于数据库中的数据挖掘模型可以对交互应用(如呼叫中心)的需求提供洞察和预测,从而提出“推荐做法"。例如,呼叫中心应用可以使用某个客户的历史数据以及来自一次呼叫进程中的响应,对该客户的喜好做出评估,并制作出个性化的交叉销售推荐做法。4.1.3Oracle9i数据挖掘的预测和分类Mining提供了NaiveBayes数据挖掘算法来进行预测和分类。该Oracle9iData算法适用于各种数据挖掘问题,同时也提供了高度准确性。通过查找数据中存在的模式,公司可以用相似的特征,即用过去作为未来的预测算子,对客户的未来行为做出预测。典型的预测应用可以估计某个结果的可能性,如“0、1”或“Yes、No’’或“A、B、C或D"。例如:问题:这个客户对我的特别报价会做出响应吗?答案:是的,客户响应的可能性是92%。此结论就是根据表4.1所提供的。第四章基于OracleDataMiningAPI数据挖掘模块的实现31表4.1预测结果显示客户m986654323344678811234286445623881956432423784081响应YESYESYESYESYESYES概率O.920.92O.830.830.750.54Oracle9iDataMining的预测模型返回了预测的结果及其概率,这样公司就能9iData够前摄地管理他们的商务。预测模型的结果可以组合,从而提供有价值的商务智能。例如:OracleMining能够建立一个客户的合作期间值(LTV)I昀模型,同时还可以建立一个预测客户转网(Chum)的可能性的模型,再把预测结果的概率值相乘(P(LTV)*P(Churn)),即可提供关于如何花费营销预算的有价值的洞察。4.1.4Oracle9i数据挖掘的关联规则Mining提供了关联规贝JJ(AssociationRules)数据挖掘算法来检测Oracle9iData隐含在数据库中的关联的或者同时发生的事件。对于与客户相关的产品,关联分析经常用来查找其受欢迎的相关产品,例如与“香蕉”相关的“牛奶’’和“麦片"。关联还可以用来识别同时发生的项目和事件,如:>什么生产部件和设备装置与故障事件存在关联?>什么样的病人和药物属性与哪种治疗效果相关联?>这位客户最可能购买或最喜爱哪些物品或产品?关联可用来预测放入购物篮中的下一个物品,购物篮有助于满足客户需求和增加平均订购值。Oracle4.1.59i数据挖掘的APIProgramming应用开发人员通过基于Java的API(Application程接口)来访问Oracle9iDataInterface应用编Mining的功能。所有数据挖掘功能的程序控制使数据准备、模型建立以及模型评分【271操作都实现了自动化处理。在Sun公司的JavaCommunityProcess作为Java规范要求(JSR)出现之后,Java数据挖掘(JDM)也随之成为数据挖掘的新标准。Oracle、Sun、IBM以及其它许多32基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用公司都意识到需要一个基于Java的标准来规范和使用数据挖掘技术,这些公司都参与了JDM。JDM利用了几个已经逐渐形成的标准,其中包括对象管理组(ObjectManagementGroup)的公用仓库元数据(CWM,CommonWarehouseMetadata)、数据挖掘组(DataMiningGroup)的预测性挖掘标记语言(PMML,PredictiveMiningMarkupLanguage)以及国际标准组织(International据挖掘的SQI/MM。StandardsOrganization)的用于数4.2数据挖掘模块的设计本论文设计开发的数据挖掘分析系统是基于Java的Oracle多种数据挖掘算法128J:>AdaptiveBayesDataMining(ODM)APl来实现对Oracle数据库的数据挖掘功能,并能提供如下所示的Network算法(分类)>决策树算法(分类)>NaiveBayes算法(分类)>k.means算法(集群)>Cluster算法(集群)>非负矩阵因式分解算法(特性选择)>Apriori算法(关联)>支持向量机算法(分类或回归)>最短描述长度算法(屙眭重要性)电信客户资料的各类数据挖掘任务的完成主要分为以下步骤:1.数据准备即准备好数据挖掘所需要的数据,包括确定源数据存储的位置、对数据进行适当的预处理等工作。在本分析系统中,用于数据挖掘的所有源数据都存储在电信客户资料的数据仓库中,此数据仓库已经在前面章节设计和实施完成了,在将数据存储到数据仓库中之前,已经对数据进行了预处理,因此在使用时直接定位所需的数据即可。这一步的工作OracleDataMining(ODM)提供了LocationAccessData,PhysicalDataSpecification类,用于定位需要使用的数据仓库中的数据表。2.确定数据挖掘模式及核心算法即确定数据挖掘任务要发现什么样的模式,比如是关联分析还是分类预测,选用哪种算法来实现。这一步是完成数据挖掘任务的核心,能否成功地得到需要的数据挖掘结果,在很大程度上取决于是否选用了正确的挖掘模式和数据挖掘算法。OracleDataMining(ODM)提供了MiningFunctionSetting类用于确定数据挖掘模式和所使用的算法。第四章基于OracleDataMiningAPI数据挖掘模块的实现3.33将数据应用于已经确定的数据挖掘模型并执行模型获得结果在电信客户资料分析中,这一步将数据仓库中的电信客户基本信息的数据应用于刚刚建立的模型,然后执行模型,最后得到挖掘的结果,并以易于理解的形式(如表格、文字或图形等等)表示出来,提供给电信决策部门进行决策分析。OracleDataMining(ODM)的MiningApplyOutput类、SuperviseModel.Apply方法用Data于完成这一步骤。利用OracleMining(ODM)完成数据挖掘任务,对于执行不同任务,它们之间的差别在于确定不同的源数据,选用不同的数据挖掘模式和算法及用不同的结果表现形式,它们所使用的过程框架是一致的,也就是说各种类型的数据挖掘功能的实现都是基于这一框架完成的。所以,后面本论文就会针对某一个数据挖掘算法对电信客户资料进行数据挖掘和分析预测,其它适用算法的实现形式都与此类似。Network(ABN)算法,它提供了一个快速、可扩充且无参数的方法,从相关的目标属性的数据中提取预测Bayes本分析系统的数据挖掘模块使用的是Adaptive信息,并且它以一种用户易于理解的规则形式来表达结果[291。在选用AdaptiveNetwork(ABN)算法挖掘和预测隐含数据和信息之前,则必须考虑与满足以下条件才能应用此算法:Bayes>数据有大量的属性;>需要模型透明性,就是需要解释模型的规则;>希望得到更多的用于控制构建模型所需时间的选项。4.3数据挖掘模块的工作流程对于应用问题的模型开发人员,数据挖掘模块需要提供构建模型、测试模型和应用模型三个完整的子模块,协助他们来共同完成整个特定应用问题的模型开发和构建工作。而对于决策部门的研究人员,只需要提供应用数据子模块,就可以直接从Oracle9i数据库的应用服务器中,读取构建好的成熟模型来进行预测分析,挖掘出有价值的决策信息,无需之前的建模、测试和评估过程。数据挖掘模块的工作流图,如图4.1所示:34基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用图4.1工作流图4.4各子模块的总体设计与具体实现4.4.1数据配置子模块的实现本子模块主要负责数据准备阶段的数据加载和参数配置等初始化工作。调用Runtime.getRuntime0.exec(path)方法,path为配置文件路径,打开四个配置文件,分别是>Global.property:指定数据挖掘服务器(DataMiningServer)的连接数据:>AdaptiveBayesNetworkBuild.property:指定构建模型所需输入数据;>AdaptiveBayesNetworkLiflAndTest.property:指定计算提升和测试模型所需输入数据;>AdaptiveBayesNetworkApply.property:指定模型评分所需输入数据。由此自行定义和修改其中的配置信息和算法参数。设置好后保存,随后的构建、预测和评分等数据挖掘过程都要读取这些配置文件,将它们作为输入数据。不同的算法要求不同的预处理的输入数据,有的算法要求标准化的,有的则要求离散化的,在Java接口【301中的算法能自动准备数据。ODMJavaAPI提供了各种数据的预处理方法。第四章基于OracleDataMiningAPl数据挖掘模块的实现354.4.2构建模型子模块的实现OracleDataMining在构建模型时都是按照一定的基本步骤进行的,构建模型的流程图如图4.2所示:初始化敦据l登陆数据挖掘服务器I潘理数据暂撇据I创建挖堀设置II执行模型构建任务l显示构建规则结粟I退出数据挖吲歌务器图4.2构建模型的流程图1.连接数据挖掘服务器(DataMiningServer)数据挖掘服务器是服务器端、在Oracle数据库内的组成部分,实际上是它真正执行数据挖掘操作。它提供了一个元数据仓库来存放挖掘输入对象和结果对象,并提供命名空间存取这些对到311。首先,产生一个DataMiningServer对象的实例。这个实例作为一个代理连接数据仓库服务器,并保持连接。DataMiningServerdms=newDataMiningServer(jdbc:oracle:thin:@localhost:1521:test,odm,odm);36基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用>登陆JJ艮务器r(Login):Connection>dmsConncction=dms.109inO;退出服务器(L090ut):描述构造数据dms.1090ut(dmsConnection);2.在ODM可以使用数据构造一个模型之前,必须了解数据是在哪里存储的,如何存储的。通过一个PhysicalDataSpecification对象的实例,可以说明数据是事务性数据还是非事务性数据,并且描述各种数据列所起的作用。(1)定位要构造的访问数据在使用PhysicalDataSpecification实例之前,必须提供关于构造数据的位置信息。这又可以通过使用LocationAccessData对象完成,即定位记录电信客户数据的表在Oracle数据仓库中的位置。LocationAccessDatalad=newLoeationAccessData(m_BuildDataTableName,m_InputDataSchemaName);(2)为构造数据建立物理数据规范如果数据是非事务性格式,需要建立一个包含于LocationAccessData中的PhysicalDataSpecification,形式如下:PhysicalDataSpecificationm_PhysicalDataSpecification=llewNonTransactionalDataSpecification(1ad);如果数据是事务型数据,必须说明各种数据列所起的作用,形式如下:m_PhysicalDataSpecification=newTransactionalDataSpecification(m_SequenceldName,mAttributeName,m_ValueName,lad);3.产生MiningFunctionSettings对象MiningFunclionSettings(MFS)对象告诉DMS所建立的模型的类型、模型的功能和所使用的算法。(1)确定分类的默认算法建立一个使用默认分类算法的分类模型,使用MiningAlgorithmSettings为空值的ClassificationFunctionSettings对象,产生一个ClassificationFunctionSettings的最简单的方法是使用Create方法,形式如下:ClassificationFunctionSettingsm_ClassificationFunctionSettings=ClassificationFunctionSettings.create(dmsConnection,第四章基于OracleDataMiningAPI数据挖掘模块的实现37null,m_PhysicalDataSpecification,“class”,AttributeType.categorical,DataPrepa船tionStatus.getlnstance(“unprepared”));(2)确定用AdaptiveBayesNetwork(ABN)算法完成电信客户分类如果想使用除默认算法以外的其它算法,算法的信息必须包含在MiningAlgorithrnSettings实例中。而电信客户资料分析所要建立的分类模型采用AdaptiveBayesNetwork(ABN)算法,首先必须产生一个NaiveBayesSettings的实例来确定使用,有两种设置可供选择:singletonthreshold和pairwisethreshold。然后再建立一个ClassificationFunctionSettings的实例。AdaptiveBayesNetworkSettingsalgorithmSetting=newAdaptiveBayesNetworkSettings(m_treeDepth,m_numOfNetworkFeature,m_numOfConsecutivePrunedNF,m_maxBuildTime);ClassificationFunctionSettingsm_ClassificationFunctionSettings=ClassificationFunctionSettings.create(dmsConnection,algorithmSetting,mehysicalDataSpecification,m_targetAttrName,AttributeType.categorical,m_defaultDataPrep);(3)使挖掘功能的设置生效由于MiningFunctionSettings是一个复杂的对象,无论创建的是否正确,在使用之前使其生效是很有用的。如果MiningFunctionSettings对象是有效的,就可以在DMS中使用它。代码如下:m_ClassificationFunctionSettings.validate0;m_ClassificationFunctionSettings.store(dmsCormection,m—.MiningSettingsName);4.建立模型通过以上的步骤,建立模型所需的基本信息都存储在PhysicalDataSpecification和MiningFunctionSettings实例中,最后一般就是确定是同步还是异步建立模型。(1)同步建立模型可使用MiningModel.build静态方法。代码如下:MiningModel.build(dmsConnection,lad,38基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用m_PhysicalDataSpecification,m_MiningSettingsName,m_ModelName);(2)异步建立模型,必须产生一个MiningTask的实例。通过使用store方法,一个MiningTask实例可以保持在DMS中并可以随时使用。但它只能执行一次。一旦任务开始执行,可以通过调用getCurrentStatus方法查询任务执行的当前状态信息。这个调用返回一个MiningTaskStatus对象,包含了关于状态的更详细的信息。也可以使用gctStatusHistory方法获得任务的完整的历史状态。MiningBuildTasktask=newMiningBuildTask(//物理数据规范//挖掘功能设置名//待构建的模型名m—PhysicalDataSpecification,m_MiningSettingsName,mModelName);∥模型构建任务的对象存储在DMS的数据库中task.store(dmsCormection,m_TaskName);∥执行模型构建任务task.execute(dmsConnection);在MiningModel.build或task.execute成功完成后,模型就会被按名称存储在数据挖掘服务器(DMS)中。当以后测试、评估和应用此模型时,就需要从DMS中读取它。4.4.3测试模型子模块的实现在创建了一个模型后,我们并不能立即将它投入使用,必须对其进行评估和检验。在电信客户资料分析中,选择合适的算法、建立有效的挖掘模型是非常关键的。而且对于大型数据库来说,这种选择是很困难的。因为不可能试验每一种算法,也不可能对每一个建立的模型进行验证。同时,在对模型进行评估的过程中,会存在很多种评价标准,用不同的评价标志对算法进行评价,结果可能会差距很大,而且不同数据库特性也会直接影响算法的运行性能。因此算法选择及模型评估必须在了解电信客户资料的数据集、模型及算法的相关内容以后,并结合电信部门决策人员的实际需求再进行。此子模块是由类AdaptiveBayesNetworkLiftAndTest来完成的,它又包含了以下三个主要方法:>为测试数据创建PhysicalDataSpecification对象:createPhysicalDataSpecification(dmsConnection);>测试模_型(Test)-testModel(dmsConnection);第四章基于OracleDataMiningAPI数据挖掘模块的实现39>计算提升(ComputeLift):computeLifi(dmsConnection);测试模型的流程图如图4.3所示:(融Start)l初j鹾眈敦据Initialization0登§击数据}宅掘服务嚣Log缸DataⅫn吨Server‘浯理数据c1I瓢呷0段入数据DataScrapCreation||执行模型测试任务Modeln骘tTask显示黼果Disp崎TestResult0计算模型提升任务ModelComputeI1.afl触I显示提升结果DisplayLiftResult工退出麟}甥服务器LogoutDataMiningServer‘L1.厂黼聊/、图4.3测试模型的流程图连接数据挖掘服务器(DataMiningServer)DataMiningServerdins=newDataMiningServer(jdbc:oracle:thin:@llocalhost:1521:test,odm,odm);>登陆服务器(Login):ConnectiondmsConnection=dins.109inO;>退出服务器(Logout):dms.1090ut(dmsConnection);40基于OracleDataMiningAPl的数据挖掘实现方法的研究与应用Creation)为测试数据创建2.载入数据(DataSetup调用createPhysicalDataSpecification(dmsConnection),PhysicalDataSpecification对象,代码实现如下:LocationAccessDatalad=newLocationAccessData(m_DataTableName,m_kIputDataSchemaName);>产生非事务型输入数据的物理数据规范通过以下代码实现:PhysicalDataSpecificationm_PhysicalDataSpecification-4new>NonTransactionalDataSpecification(1ad);产生事务型输入数据的物理数据规范通过以下代码实现:PhysicalDataSpecificationm_PhysicalDataSpecification=newTransactionalDataSpecification(m_SequenceldName,m_AttributeName,m_ValueName,lad);3.执行模型测试任务(ModelTestTask)调用testModel(dmsConnection),创建ClassificationTestTask对象,代码实现如F:LocationAccessDatatestlnputData2m—PhysicalDataSpecification.getLocationAccessData0;ClassificationTestTasktask=new∥定位数据ClassificationTestTask(//物理数据规范m_PhysicalDataSpecification,m—ModelName,//已构建的模型名//测试结果名m_TestResultName);//模型测试任务的对象存储在DMS的数据库中task.store(dmsConnection,m_TestTaskName);//执行模型测试任务task.execute(dmsConnection);4.计算模型提升任务(ModelComputeLiftTask)调用computeLift(dmsConnection),创建MiningLiftTask对象,主要代码的实现如下:LocationAccessDatainLad=m—PhysicalDataSpecification.getLocationAccessData0;//定位数据MiningLiftTasktask=IleWmMiningLifiTask(//物理数据规范PhysicalDataSpecification.第四章基于OraclemDataMiningAPI数据挖掘模块的实现41NumberOfQuantiles,//之前用过的分位数//正目标值//已构建的模型名//计算提升结果名positiveCategory,mmModelName,ComputeLiflResultName);//挖掘提升任务的对象存储在DMS的数据库中task.store(dmsConnection,m_LiftTaskName);∥执行挖掘提升任务task.execute(dmsConnection);4.4.4应用模型子模块的实现当基于电信客户资料的数据挖掘模型构建好后,就可以将模型应用于新数据来进行预测,并挖掘出有价值的信息。此应用模型阶段也包括几个基本步骤,其流程图如图4.4所示:图4.4应用模型的流程图42基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用MiningServer)1.连接数据挖掘服务器(Data这一步与构建模型和测试模型时类似,都要首先与DMS建立连接。DataMiningServerdins=newDataMiningServer(jdbc:oracle:thin:@localhost:1521:test,odm,odm);>登陆服务:i器(Login):ConnectiondmsConnection=dms.109inO;>退出服务器(Logout):dms.1090ut(dmsCormection);2.描述输入数据ODM将一个模型应用于数据之前,必须知道数据的物理布局。可以通过PhysicalDataSpecification实例完成,在这个实例中,说明了数据是否为事务型数据并描述了各种数据行所起的作用。在产生PhysicalDataSpecification实例前,必须定位输入数据,并提供它的相关位置信息。可以通过LocationAccessData完成。LocationAccessDatalad=newLocationAceessData(m_ApplylnputDataTable,m_InputDataSchemaName);>产生非事务型输入数据的物理数据规范通过以下代码实现:PhysicalDataSpecificationm—InputPhysicalDataSpecification=>NonTransactionalDataSpecification(1ad);产生事务型输入数据的物理数据规范new通过以下代码实现:PhysicalDataSpecificationm_InputPhysicalDataSpecification=newTransactionalDataSpecification(m_ApplylnputDataSequenceld,m_ApplylnputDataAttributeName,m_ApplylnputDataValueName,lad);3.描述输出数据定位输出数据的位置,代码如下所示:LocationAccessDataladOutput----fleWLocationAccessData(m_ApplyOutputResultTableName,m_outputSchemaName);4.确定输出数据的格式包括以下几个重要步骤:(1)产生一个空的挖掘应用输出对象第四章基于OracleDataMiningAPI数据挖掘模块的实现MiningApplyOutputm-MiningApplyOutput=newMiningApplyOutput0;43(2)确定应用输出中的生成列产生列有两种选项,由下面两种ApplyContentltem的子类来描述:>ApplyMultipleScoringltern:用于产生最顶的或最低的n个预测列表,按它们的相关目标值概率来排序;>ApplyTagetProbabilityltern:用于产生特定目标值的列表。(3)确定包含在输出列中的输入列ApplySourceAttributeltemtemp=newApplySourceAttributeltem(sourceAttribute,destinationAttributc);(4)使挖掘应用输出对象生效m_MiningApplyOutput.validateO;5.执行模型应用任务-(ModelapplyTask)现在所有应用模型所要的信息都存放在了PhysicalDataSpecification、LocationAccessData和MiningApplyOutput实例中,最后的一步就是确定如何获取数据(同步还是异步),选择哪种模型获取数据。(1)同步应用模型,使用SupervisedModel.apply静态方法:apply(dmsConnection,lad,publicstaticvoidm_PhysicalDataSpecification,m_ModelName,m_MiningApplyOutput,ladOutput,mApplyoutputResultResultName)(2)异步应用模型的方法如下:MiningApplyTasktask=newMiningApplyTask(m_InputPhysicalDataSpecification,mModelName,//输入数据的物理数据规范//应用模型的名称//挖掘应用输出//输出表位置m_MiningApplyOutput,ladOutput,m_ApplyoutputResultResultName);//应用结果的表名//应用模型任务的对象存储在DMS的数据库中task.store(dmsConnection,m_TaskName);//执行应用模型任务task.execute(dmsConnection);44基于OracleDataMiningAPI的数据挖掘实现方法的研究与应用4.4.5分析显示子模块的实现本模块的主要任务是将应用模型所得到的数据结果,以表的形式保存到Oracle9i数据库中,我们需要读取ApplyOutputResultTable中数据,将它们显示在用户界面上,供分析人员查看与使用。包括下面几个步骤:1.注册OracleJDBC驱动程序【32l;DriverManager.re#sterDriver(neworacle.jdbc.OracleDriver0);2.使用DriverManager类的getConnection0方法连接数据库;myConnection=DriverManager.getConnection(Connection’'jdbe:oracle:thin:@localhost:1521:test","odm”,”odin”);3.创建JDBCStatement对象,使用Statement类中的不同方法来运行SOL语句;Statement4.stmt=myConnection.createStatement0;使用ResultSet对象从数据库中读取各行各列的数据。Stringsql=”select・fromApplyOutputResultTable”;ResultSetIS=stmt.executeQuery(sql);4.5数据挖掘模块的功能测试根据前面章节数据仓库所提供的电信客户资料主题分析模型,我们可以创建三个表,分别用来构建模型、测试模型和应用模型。4.5.11.各子模块的功能测试构建模型构建模型的运行情况,如图4.5和图4.6所示:苎婴主堇!:竺竺堡!坐坚堂竺!茎塑堡塑堡望塑壅堡竺圈4.5建模信息圈4,6建模结果竺兰J.竺r!!生!!!坚!!!坚垒型兰塑塑竺塑兰墨互堡堕塑壅皇曼,!从图45和罔4.6中可以清晰地显示构建模型的全部过程,虮裂遇到哪步骤出锚,也能自动提不和告警。通过Oracle9iDataMining所提供的AdaptiveBayesNetwork数据挖掘算法.在电信客,,资料的数据中自动提取有用的信息(Relationship、Occupation、Sex、Age、Race、Education、MaritaIStatus、HoursPerWeek、Capital—Gain和Capital—Loss),并查找出存在的模式和规则(如图46所示),我们就用这个相似的特征作为预测算子,来对电信客户的未束ur能的行为做出预测。2测试模型测试模型的运行情况,如图47所示圈47删试结果从图47中町以清晰地显示测试模型的全部过程。准确率是用柬衡量某个分类槿’唑列整个数料集分类的准确程度。我们类|!{葵型的优劣。般用它作为衡量指标,柬评价某个分此次测试的结果:水确:善(Accum。y)=0.7565947。垫些望坚!.旦!!!!!里塑坚竺竺g竺!茎塑垡型堡竺塑塞翌竺由此可见,利用AdaptiveBayesNetwork数据挖掘算法所建立的电信客户资料模型的准确率还是比较令人满意的。3应用模型应用模型的运行情况,如图4.8所示幽4.8应Ⅲ信息从圈4.8中可以清晰地恩示应用模型的伞部过程。我们从电信客户资料中选取~组新数据,柬应用到前面所构建的模型里,得到的预测结果如幽49所示:型!!!!!!!!!!!!!!!£些!!墼堡堡塑壅里!垦盟竺墨!!!u删0"“■”R∞q州02’咐349∞}730E0%72{日0902540437—47’日92E.D111曩墨曙田盈■■圈墨圜雹叠四■_1{5857220320538口”650e3日104●t9124Ⅻ562Ⅱ∞01224;e‘224‘e99凸D“314966290,541”66710Ⅱ-∞02嗽£01“e4adoe●3612{B∞{¨:132111…{078150959%O17%301002127110213510¨3e7…02e4}日624《%11●拼口5‘43842“9∞6288e…B4;5655763E∞22t07自87=24686585995:0,‘211"103'*73218…35∞92113…080BweⅢ。|1’0H3,∞53E627""27dal'tgrl3,2{7…1mer77202je983日…∞79e:011958246467∞1E000’41∞‘13543987’日456017{94015e75756074en020721’?3333‘99%,咖71{307492e7‘1572口781《O'10…1,32…一3B:01{54目5555¨7…9e瑚‘7‘42970御031a*3ⅫeHl6514∞47E_。11一"1d0"454∞936200205O删B:3"!e∞785,0自J8。=82∞{3,144…373∞'63659705…11108∞69}39j2口一∞{5540∞22日¨7913371E00图4.9预测结果从图4.9巾可以看出,所有电信客户中可能会成为有价值客户的可能性和概车,己经清晰地反映在}述表中了。每个客户被预测的结果都会有两种可能性(如MyPrediction列中的“1、0”或“Yes、No”),井相应地分别_}l}一定的数值(如MyProbability列中的数据)来衡量他们未来的趋势或可能的行为。这样就能为电信部门的决策人员提供非常有效的参考依据。4.52功能模块的测试总结Oracle9iDataMining利用它所提供的数据挖掘算法.从大量数据中自动寻找和提取存在的模式,在论文中所涉及的是电信客户资料模型。从一些己知的有价值客户中找出他们的分类规则,再利用这个模型,去预测一下其它电信客户还有哪些也具备有价值客户的基本属性和条件,然后拾决策部门提出重点发展这部分人群。此外这一系统的数据挖掘模块,还可以查找挖掘电信客户资料数据中有意义的模式和关联,这些模式能帮助用户更好地理解和预测客户行为。比如:≯获取新客户≯识E0最可疑的客户≯预测电信客户的流失情况≯预测客户转网的行为}预测客户足否对某”№务感兴趣,如电信食餐、彩铃业务等。第五章结束语49第五章总结本论文主要是从理论和应用两个方面对大型数据库的数据挖掘技术进行分析和研究:在理论上重点掌握数据仓库和数据挖掘的相关技术知识和实现方法,对数据挖掘的模型和算法有较深入地研究;在应用上,由于论文来源于大唐电信的大型数据库预研项目,我们需要针对电信客户资料进行较为详尽的分析,以大型数据库Oracle9i构建数据仓库,利用Oracle电信部门提供决策支持。文中论述了基于Oracle充分验证了OracleOracleDataMiningDataMining来分析挖掘数据库中的海量数据,以侦测其中的微妙模式和关系,并提取更多有价值的商务智能信息,为API的大型数据库数据挖掘的基本框架,并在此基础上以电信客户资料主题为模型,设计实现了一个数据挖掘分析系统,9iDataMining的可行性,以便为今后大唐电信的大型数据库项目的立项实施提供参照和借鉴。9iDataMining提供了很多数据挖掘算法来进行分类和预测,适用于各种数据挖掘问题,这样应用开发人员就可以不必再把注意力集中到数据挖掘的算法实现上,全部交给它来完成,我们只需要直接访问OracleDataMiningAPI就能构建和评估模型,它为建立高级商务智能应用提供了较为理想的基础架构,从而大大缩短了应用开发周期,更方便了广大数据挖掘的研究人员。显而易见,OracleDataMining的数据挖掘技术,在今后的电信、金融和保险等很多领域都会具有更为广阔的应用前景。致谢51致谢经过研究生阶段的学习,使我无论在知识掌握还是在能力提高方面都有了长足的进步。而这一切都与我的导师李青山老师的培养分不开,所以首先我要在这里向您表示衷心的感谢。在整个论文的完成阶段,自始至终都倾注了大量的心血,从论文的选题、修改、直至论文定稿一直给予了精心的指导,还提出了大量宝贵的意见。严谨认真、诲人不倦的治学态度给我留下了深刻印象,促使我在今后的人生道路上不断进取、勇往直前。在此还要感谢西电大唐电信研发中心的工程师,为我提供了实践和学习的环境。在实习阶段的工作和学习中,也给予我很多支持和帮助,为顺利完成论文打下了良好的基础。感谢我的家人给了我学习的动力,以及对我生活的悉心照顾和关爱。感谢我的同学和朋友钱丽平、淮侃、呼延琢、张益华、石增硕、孙琪和李军等,都给了我许多无私的帮助。感谢审阅本论文的专家教授在百忙之中,抽出时间给我提出宝贵的意见。参考文献53参考文献【1】【2】【3】【4】【5】【6】【7】【8】段云峰,吴唯宁,李剑威等.数据仓库及其在电信领域中的应用.电子工大唐电信.大型数据库预研需求规格说明书,2005朱爱群.客户关系管理与数据挖掘.中国财政经济出版社,2001W.H.Inmon.数据仓库.机械工业出版社,2003夏火松.数据仓库与数据挖掘技术.科学出版社,2004JoyceBischoff,Ted业出版社,2003Alexander.数据仓库技术.电子工业出版社,1998安淑芝.数据仓库与数据挖掘.清华大学出版社,2005张春阳,周继恩等.基于数据仓库的决策支持系统的实现.计算机工程.SidAdelman,LarissaTerpeluk2002,4【9】Moss.数据仓库项目管理.清华大学出版社,2003【10】陈文伟.决策支持系统及其开发.清华大学出版社,1998【11】JiaweiHan,MichelineKamber.DataMiningConceptsandTechniques.高等教育出版社,2002【12】邵峰晶,于忠清.数据挖掘原理与算法.中国水利水电出版社,2003【13】MehmedKantardzic.数据挖掘——概念、模型、方法和算法.清华大学出Rud.数据挖掘实践.机械工业出版社,2003版社,2003【14】OliviaParr【15】李雄飞,李军.数据挖掘与知识发现.高等教育出版社,2003【16】赵宏波,孟雅玲.数据挖掘在电信客户关系管理中的应用.电信技术.2001,12【17】许昌加,高阳.数据挖掘在电信客户细分中的应用研充成组技术与生产现代化.2004,1【18】EfremG.Mallach.决策支持与数据仓库系统.电子工业出版社,2001【19】AlexBerson,StephenSmith,KurtThearling.构建面向CRM的数据挖掘应用.人民邮电出版社,2001【20】秦永俊.数据挖掘在CRM中的应用设计.电脑开发与应用.2004,1f211飞思科技产品研发中心.Oracle9i基础与提高.电子工业出版社,2003【22】飞思科技产品研发中心.Oracle9i数据库高级管理.电子工业出版社,2002【231飞思科技产品研发中心.Oracle9i数据仓库构建技术.电子工业出版社,2003【24】OracleCorporation.DataWarehousingGuide,2002竺董于OracleDataMiningAPI的数据挖掘实现方法的研究与应用【25】OracleCorporation.DataMiningAdministrator-SGuide,2002【26】陈京民.数据仓库与数据挖掘技术.电子工业出版社,2002【27】AgustEgilsson.使用Oracle数据挖掘API.2006,8【28】OracleCorporation.DataMiningConcept,2002【29】罗宁,穆志纯.基于贝叶斯网的分类器及其在CRM中的应用.计算机应用.2004,24【30】JosephL.Webcv.JAVA2编程详解.电子工业出版社,1999【31】陈志刚,刘安丰,陈章.大型数据库技术——旬racle9i高级程序设计教程.华南理工大学出版社,2003【32】JasonPrice,马朝晖.Oracle9iJDBC程序设计.机械工业出版社,2002基于Oracle Data Mining API的数据挖掘实现方法的研究与应用
作者:
学位授予单位:
王帆
西安电子科技大学
本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1431751.aspx
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务