毕业设计(论文)-基于BS的数据挖掘系统设计与实现.doc_第1页
毕业设计(论文)-基于BS的数据挖掘系统设计与实现.doc_第2页
毕业设计(论文)-基于BS的数据挖掘系统设计与实现.doc_第3页
毕业设计(论文)-基于BS的数据挖掘系统设计与实现.doc_第4页
毕业设计(论文)-基于BS的数据挖掘系统设计与实现.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学本科生毕业设计论文(设计)题目 基于B/S的数据挖掘系统设计与实现 学生姓名 指导老师 学院 信息科学与工程学院 专业班级 电子信息工程0903班 完成时间 2013-5-23 目录中文摘要英文摘要第一章 概论1.1 课题研究的意义1.1.1 研究背景1.1.2 研究意义1.1.3 术语解释1.2 国内外研究情况1.2.1 B/S模式的研究情况1.2.2 数据挖掘的研究情况第二章 课题方案研究2.1 课题要求及规划2.2 常用开发方式介绍2.3 Visual Studio 2008和Microsoft SQL Server 2008 R2方案2.3.1 B/S模式2.3.2 Microsoft SQL Server 2008 R22.3.3 Visual Studio 结合 SQL Server 2008 R2开发模式第三章 系统设计及算法3.1 系统总体结构3.2 系统子功能模块3.2.1 欢迎和算法介绍模块3.2.2 数据源和算法选择模块3.2.3 挖掘结果演示模块3.3 DMX语言和挖掘模型3.3.1 模型建立3.3.2 模型训练3.3.3 模型使用3.4 数据挖掘算法3.4.1 Microsoft中的数据挖掘算法3.4.2 决策树和线性回归算法第四章 调试测试结果3.1 同数据源不同算法3.2 不同数据源相同算法3.3 结果分析第五章 总结及展望5.1 总结5.2 展望参考文献附录摘要数据挖掘(Data Mining)是在大型数据存储库中,自动地发现有用信息的过程。它用来探查大型数据库,发现先前未知的有用模式,并且还能预测未来观测结果。数据挖掘的目的在于如何善用数据,从运营历史的记录奖励,挖掘出深藏其中的宝贵经验。近年来,随着数据挖掘技术的进步发展,它在商业智能领域发挥了极大的作用。它成为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。如何使数据挖掘技术更好地应用于生活生产、交易决策活动中,具有较高的研究价值。在本文中,从理论和实践上分析了B/S架构下利用ASP.NET技术开发数据挖掘系统的可行性。展示了该系统对数据源进行挖掘后得到的预测结果,并着重分析了对相同数据源应用不同的挖掘算法及不同的数据源应用相同的挖掘算法得出的不同结果,从而分析算法应用的优劣情况。并详细介绍了系统的架构方法和调试结果,分析了所利用的ASP.NET、ADO等WEB网络技术和数据挖掘中如何采用DMX语言对挖掘模型的训练,数据挖掘算法比较等。最后,本文通过上述研究成果,总结了该课题的研究过程并探索了该课题的深入方向。 关键词:数据挖掘 商业智能 B/S模式 SSASAbstract Data Mining (Data Mining) is a large data repository, automatically discover useful information. It used to probe a large database, a useful model to discover previously unknown, and can predict future observations. The purpose of data mining is how to make the best use of data from the historical record of the operator reward, digging deep which valuable experience. Recent years, with the progress and development of data mining technology in the field of business intelligence played a significant role. It became the tool into the existing data in the enterprise knowledge to help companies make informed business decisions. How to make data mining techniques used in the production of life, the trading decisions activities, has high research value.In this article, from the theoretical and practical analysis of the feasibility of the use of the the ASP.NET technology development data mining system B / S structure. Shows the prediction results after the excavation of the system data source, and analyzed the results of different results for different mining algorithms to the same data source applications and different data sources, applications the same mining algorithms to analyze the advantages of the algorithm is applied inferior. And gave details of the system architecture and debug the results of analysis of how to use ASP.NET, ADO WEB network technology and data mining DMX language training of mining models, data mining algorithms compare. Finally, through the research, summed up the subject of the research process and explore the subject in depth direction.Keywords: data mining, business intelligence B / S mode SSAS第一章 概述1.1 课题研究的意义1.1.1 数据挖掘研究背景1989年8月在美国底特律召开的第11届国际人工智能联合会议的专题讨论会上首次出现KDD(Knowledge Discovery in Databases)这个术语。KDD,及知识发现,是从数据集中识别出有效的、新颖的、潜在有用的,以及最终可理解的模式的一个过程。知识发现将信息变为知识,从数据矿山中找到蕴藏的知识金块,将为知识创新和知识经济的发展作出贡献。为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘(Data Mining)等技术。数据挖掘是在KDD基础上细化出来的一个概念。最初,数据挖掘只是指在KDD过程中,利用算法处理数据的一个过程,是KDD中进行只是学习的阶段,是其中的核心技术。所谓数据挖掘即是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。它经由数据转换、核心算法以及结果表达得以实现。它涉及到对数据库中的大量数据进行抽取、转换、分析以及模型化处理,从中提取辅助决策的关键性数据。数据挖掘可以帮助决策者寻找规律,发现被忽略的要素,预测趋势,进行决策,也是对数据内在和本质的高度抽象与概括。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但是潜在有用的信息和知识的一种过程。所以它要求数据源必须是真实的、海量的、含噪声的;发现的只是是用户感兴趣的只是;并且发现的结果是可接受、可理解、可运用的。在技术中,发现的知识并不要求是放之四海而皆准的通用模型,而仅仅要求它是能够适用于特定的数据源的结果。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。1.1.2 课题研究的意义从KDD这个概念提出至今,数据挖掘技术在各个领域都有着极大的前景。在医学上,对于庞大的医疗信息记录,数据挖掘技术可以从中挖掘出有用信息和规律,并将这些规律用于医生的诊断过程、对潜在的高患病率的人群进行排查和预防、以及帮助政府制定医疗政策、社区群体进行医疗防护等方面。在司法政治领域,数据挖掘技术也可以通过分析固定人群的信息数据,从而预测出人们的行为模式,从而更好的帮助人们做出升学、置业等重要决策,也可以帮助制定更能够惠于民的政治策略。数据挖掘更常用的领域是在现今的商业活动中,决策者往往需要通过既成数据和以往的经验来做出决策判断。决策过程可通过商业智能来帮助决策者。商业智能通常被理解为将企业中现有的数据,如企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据等,转化为知识,帮助企业做出明智的业务经营决策的一种解决方案。伴随着信息化进程的深入,海量的信息大量积聚,如何能从这些信息中获取有用的知识,并指导人们的日常工作生活,成为了一个至关重要的问题。可以说,把握了海量数据分析处理的方法,就把握了在未来信息化社会里最为重要的一种科技技术力量。特别要指出的是,数据挖掘技术从一开始就是面向应用的。它不仅是面向特定数据库的简单检索查询调用,而且要对这些数据进行微观、中观乃至宏观的统计、分析、综合和推理 ,以指导实际问题的求解,企图发现事件间的相互关联,甚至利用已有的数据对未来的活动进行预测。但往往由于这些专业知识领域获取困难,使得决策者无法从中得到正确的结论。因此商业智能解决方案变得简洁,易于操作已经成为了一个必然的趋势。 1.1.3 术语解释(1)B/S架构:全称为Browser/Server,即浏览器/服务器结构。将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。(2)数据挖掘:数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性(属于Association rule learning)的信息的过程。用来探查大型数据库,发现先前未知的有用模式,并且还能预测未来观测结果。(3)商业智能:商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。(4)SPSS(Statistical Product and Service Solutions):即统计产品与服务解决方案。是采用数据挖掘技术的统计产品与服务解决方案。(5)SSAS(SQL Server Analysis Services):即微软SQL服务器分析服务。是Microsoft SQL Sever中提供的集成商业智能分析方案,包含创建复杂数据挖掘解决方案所需的如下功能和工具。可以组合使用这些功能和工具,以发现数据中存在的趋势和模式,然后使用这些趋势和模式对业务难题作出明智决策。(6)SSIS(SQL Server Integration Services):即微软SQL服务器集成服务。是用于生成企业级数据集成和数据转换解决方案的平台。1.2 国内外研究情况1.2.1 B/S模式研究情况B/S是Brower/Server的缩写,它是在C/S模式的基础上发展起来的一种网络架构技术,近年来随着Internet技术的兴起,这种方便快捷的技术已经日趋完善,为许多人所采用。在B/S结构中,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库和所需要的处理工具。用户即可通过Web Server浏览器同数据库进行数据交互。相比传统的C/S模式,B/S模式具有维护和升级方式简单、成本低的优点。它可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,无需维护客户端。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成由表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)构成的3层架构(3-tier architecture),从而实现软件高内聚,低耦合的设计准则。该结构下各层的作用和联系见图一: 图一 B/S模式结构图数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。B/S结构,利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。1.3.2数据挖掘研究情况数据库中发现知识一词从首次出现于1989年在美国底特律召开的第十一届国际联合人工智能学术会议上,到1995年在加拿大蒙特利尔召开的首届KDD&Data Mining国际学术会议,再到以后每年都要召开一次的KDD&Data Mining国际学术会议,经过十多年的努力,数据挖掘技术的研究已经取得了丰硕的成果,不少软件公司已研制出数据挖掘软件产品,并在北美、欧洲等国家得到应用。经过了24年的发展,数据挖掘技术已被广泛应用于各个领域。其中一些典型应用如加州理工学院喷气推进实验室与天文科学家合作开发的SKICAT系统,能够帮助天文学家发现遥远的类星体,是人工智能技术在天文学和空间科学上的第一批成功应用之一,生物学研究中用数据挖掘技术对DNA进行分析;利用数据挖掘技术识别顾客的购买行为模式,对客户进行了分析;对银行或保险公司经常发生的诈骗行为进行预测;IBM公司开发的AS(Advanced Scout)系统针对NBA的比赛数据,帮助教练优化战术组合等。与国外相比,国内对数据挖掘的研究稍晚,没有形成整体力量。1993年国家自然科学基金首次支持数据挖掘领域的研究项目,目前,国内的许多科研单位和高等院校竞相开展数据挖掘和知识发现的基础理论及其应用研究,这些单位包括清华大学、中科院计算技术研究所、空军第三研究所、海军装备论证中心等。 在国内应用数据挖掘的企业还是以通信企业(移动、联通、电信)为首,应用的深度和广度都处于领先地位。随着电子商务的普及,各大商务网站已经大规模使用数据挖掘技术,并且迅速从中取得商业价值。例如,国内很多网上商城已经开始使用数据挖掘技术进行客户聚类或者商品关联推广。展望未来,Gartner的报告已经指出,数据挖掘会成为未来10年内重要的技术之一。网络化时代使得信息膨胀成为必然,如何准确、高效地从丰富而膨胀的数据中筛选出对经营决策有用的信息已经成为企业和机构迫切需要解决的问题。未来的数据挖掘技术将侧重在海量数据挖掘、云计算、并行数据挖掘技术、面向数据挖掘的隐私保护技术和数据挖掘集成等方面。(1)海量数据挖掘:是指应用一定的算法,从海量的数据中发现有用的信息和知识。(2)云计算:目前云计算的相关应用主要有云物联、云安全、云存储。云存储是在云计算(cloud computing)概念上延伸和发展出来的新概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。(3)并行数据挖掘:并行数据挖掘技术能够高效率的进行数据挖掘。处理并行数据挖掘的策略主要涉及三种算法:并行关联规则挖掘算法、并行聚类算法和并行分类算法。(4)数据挖掘集成:数据挖掘体系框架由三部分组成:数据准备体系、建模与挖掘体系、结果解释与评价体系。其中最为核心的部分是建模与挖掘体系,它主要是根据挖掘主题和目标,通过挖掘算法和相关技术(如统计学、人工智能、数据库、相关软件技术等),对数据进行分析,挖掘出数据之间内在的联系和潜在的规律。大体上,数据挖掘应用集成可分为几类:数据挖掘算法的集成、数据挖掘与数据库的集成、数据挖掘与数据仓库的集成、数据挖掘与相关软件技术的集成、数据挖掘与人工智能技术的集成等。第二章 课题方案研究2.1 课题要求及规划课题需要设计一个有利于商业决策者分析、使用数据挖掘系统,它是基于B/S模式的,具有数据挖掘功能的商业智能网站。使用者能够以web浏览的方式对数据进行查看和分析,并且实现数据预测功能,并且界面友好、操作简单。(1) 系统功能性要求任务需要以.NET技术为支持,做出一个可供使用者以web浏览的方式对数据进行查看和分析,并且实现数据预测功能的B/S架构的系统。由于数据挖掘要求数据仓库(Data Warehouse)中的数据源具有纯净性,所以需要在数据仓库中得到较为纯净且有代表意义的数据源进行挖掘演示。系统要求用户能够针对不同的数据源,选用不同的数据挖掘算法,通过对服务器端的数据库进行数据挖掘分析,得出的预测结构通过HTLM返回用户浏览器端。并比较实际数据源和数据挖掘预测结果,进行算法优劣对比。(2) 系统性能要求。系统要求运行性能稳定可靠,具有良好的可扩展性和易维护性,一般应用功能页面调用能够在3秒内完成,复杂报表输出功能操作能够在5秒内完成。当出现操作失败时,程序应该给出详尽的提示信息,不能因此造成程序或系统死机。数据挖掘预测结果需要达到一定的正确率。否则就失去了数据挖掘的意义。错误的预测往往会带来更严重的问题。在课题的实现过程中,在数据源、数据挖掘算法的选择、DMX语言对于挖掘模型的创建和训练、B/S架构的方法等方面应该重点关注。首先,数据挖掘的前提是需要有大量的洁净数据集,即数据没有丢失,数据的类型统一且符合标准。如何得到纯净的数据集,是数据挖掘是否能得以成功的关键点。为方便国内外数据挖掘研究,一些大学或图书馆提供了许多免费的数据源,但这些数据源是未经整理且杂乱的且不能确保完整度的。其次,针对不同的数据源,需要选用不同的数据挖掘算法。如决策树模型适合处理非数值型才数据,聚类分析模型适合在杂乱的数据集中进行分类处理。当看到数据源时,如何选择合适的数据挖掘算法也是十分重要的。于是,如何选取挖掘模型也具有一定难度。并且,数据挖掘分析服务中,需要编写DMX语言进行数据挖掘模型的创建和操作。由于DMX语言是基于数据定义语言(DDL)、数据操作语言(DML)及函数和运算符等所组成的。应该重点掌握其语法特点和逻辑思路。最后,B/S架构需要利用ASP.NET技术进行搭建,如何利用C#脚本语言进行前台搭建,使得系统能方便使用者查询也需要重点考虑。2.2 常用开发方式介绍B/S架构的常用开发工具包括B/S一般是由ASP、PHP、JSP和SQL、Oracle、Access数据库技术。依据不同的脚本语言和分层架构方式不同,以及所需要的功能强度要求不一样,可以选择不同的开发语言和后台数据库。ASP以VB Script或C#作为脚本开发语言,是在微软平台上常用的动态网页技术。PHP借用C、Java和Perl语言的语法,是跨平台的动态网页技术。而JSP是近年来新出现的技术,结合JAVA Script语言,能够更好的在各平台上开发。而数据挖掘(Data Mining)软件包市场大概可以分为三类:(1)一般分析目的用的软件包。如Microsoft SQL Server、SAS Enrerprise Miner、IBM Intelligence Miner等(2)针对特定功能或产业而研发的软件。如KDI(针对零售行业)、Options&Choices(针对保险业)、HNC(针对银行信用卡欺诈或坏账检测)等(3)整合DSS/OLAP/Data Mining的大型分析系统。2.3 visual studio 2008和Microsoft SQL Server 2008 R2方案2.3.1 ASP.NET技术下的B/S模式架构本次设计利用ASP.NET技术完成B/S(浏览器/服务器模式)模式搭建。在用户终端上安装浏览器软件,在服务器上存放数据并且安装服务应用程序。用户通过浏览器访问服务器,查看相关信息。Active Server Pages(ASP)提供服务器端脚本编写环境,用户使用ASP可以创建和进行动态、交互的Web服务器应用程序,可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。ASP页是包括HTML标记、文本和脚本命令的文件。ASP页可以调用ActiveX组件来执行任务,例如连接到数据库或进行商务计算等。通过ASP可以为Web页添加交互内容或用HTML页构成整个Web应用程序,这些应用程序使用HTLM页作为客户端的界面。当浏览器从Web服务器上请求.asp文件时就开始运行ASP脚本,然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有的脚本命令,并将Web页传送给浏览器。发送请求IIS接收用户请求并转发给ASP解释模块用户在浏览器端解释模块接收到请求,处理并得到相关结果用动态页面IIS服务器接收动态页面,并发送给客户浏览器 图二 B/S架构工作原理示意图由于脚本在服务器上而不是在客户端上运行,传送到浏览器上的Web页在Web服务器上生成,所以不必担心浏览器能否处理脚本,Web服务器已经完成了所有脚本的处理,并将标准的HTML页传送到了浏览器。由于只有脚本的结构返回到浏览器,所以服务器端脚本不易复制,用户看不到创建链接时正在浏览的页的脚本命令。ASP脚本语言通常采用VB或C#两种,此次设计中采用C#作为ASP脚本语言。VS中提供如text文本框、button按钮等基本的控件,通过点击控件可进行编程。利用VS中的控件,可设计好此系统的界面,并将控件拖入界面的适当位置,双击控件进行网站的脚本动作编程,即可供使用者通过浏览器访问服务器,服务器处理数据后以一个简洁明晰的结果,反馈给使用者。除了微软公司提供的ASP.NET的WEB技术,微软公司近年来退出的ADOMD.NET插件,为数据挖掘系统的开发提供了另一种可行且便利的方法。ADOMD.NET是一个标准的.NET数据提供者,它主要用来与多维数据源进行通信。它使用支持 XML for Analysis version 1.1标准的数据提供者连接数据源,使用TCP/IP或 HTTP流传输和接受SOAP请求。使用ADOMD.NET可以获取和操作多维数据,KPI和挖掘模型。ADOMD.NET也可以通过两种方式浏览和操纵元数据:OLEDB Schema Rowsets 或ADOMD.NET对象模型。在ADOMD.NET插件中包含有几个常用控件,这将是在本系统中高频使用到的:AdomdConnection:连接多维数据源和多维数据源的元数据。例如:可以通过AdomdConnection连接SQL Server 2000 Analysis Services的本地立方(.cub)文件,并获取多维数据源的立方的属性以获取它的元数据。AdomdConnection对象继承IDbConnection接口。AdomdCommand:执行MDX查询,返回CellSet或AdomdDataReader 对象。当与多维数据源建立连接后,就需要通过AdomdCommand对象执行MDX语句,并以CellSet或者AdomdDataReader对象的形式返回结果。AdomdDataReader:快速有效的读取多维数据方法。AdomdDataReader继承IDbDataAdapter接口,通过执行AdomdCommand对象的Execute或者ExecuteCellSet方法获取结果。CellSet:多维数据结果集。通过执行AdomdCommand对象的Execute或者ExecuteCellSet方法返回的MDX查询语句的结果。一旦AdomdCommand返回一个CellSet对象,我们就可以查看包含在CellSet中的多维数据集。CellSet常用于多维数据集需要缓存或者更新的时候。2.3.2 Microsoft SQL Server中的商业智能在Microsoft SQL Server 2008中集成了常用的数据挖掘算法,通过调用这些算法,就可以在一定程度上避免在数据挖掘过程中的复杂算法设计。在BI组件中,可以提供数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策的解决方案。其主要可以实现自动预测趋势和行为、关联分析、聚类、概念描述、偏差检测等五种功能。Microsoft SQL SERVER 2008中包含Bussiness Intelligence Development Studio(BI应用程序开发工具集),该工具集提供了包括SSPS、SSAS和SSIS三大部分的专门针对商业智能的解决方案。有两种方法可以进行数据挖掘开发:一是使用BI工具集可进行数据挖掘开发,同时可以使用SQL Server Management Studio来操做和维护BI数据库对象。二是利用微软提供的ADOMD.NET插件,在微软的Microsoft Visual Studio2008开发环境中,完成SQL Server Analysis Service型数据库的连接操作,并利用它提供的运行DMX数据挖掘语言的相应的接口函数在VS2008开发环境中完成数据挖掘模型的训练。DMX语言是为了能够使普通的数据库开发人员能够轻松使用,而不仅仅是为了专家而设计的语言。用DMX语言进行数据挖掘的优势在于:数据挖掘功能可以全部用语句来实现,我们可以将这些语句嵌入其它的MIS或ERP系统中,实现有机整合。所以它具有非常好的普适性。在Microsoft中为了进行SSAS的数据挖掘开发,就需要使用到DMX语言对数据挖掘的模型进行创建、训练以及使用(预测)。使用DMX语言处理过后的挖掘模型即可得到预测结果值。这样,通过Microsoft SQL Server 2008 R2数据库环境,就可以完成全部的基本数据挖掘功能。它是易于上手且功能强大的数据挖掘工具。2.3.3 Visual Studio 结合 SQL Server 2008 R2开发模式在诸多数据挖掘开发方案中,本次设计选择的是Visual Studio 2008结合Microsoft SQL Server 2008 R2的开发方案。这是因为,一方面SQL Server能让用户利用Microsoft.NET与Visual Studio开发定制化应用程序,以及通过Microsoft BizTalk Server内的面向服务架构(SOA)与业务程序来访问数据。基于Visual Studio集成开发环境的ASP.NET技术,以及SQL Server都是由微软公司开发完善的,所以利用两者结合可以具有很好的兼容性和普适性。另一方面,信息工作者也能使用SQL Server直接访问他们每日使用的数据,如Micrsoft Office 2007 System。它所提供高信赖度、高生产力与商业智能的信息平台,能够符合用户的所有数据需求。其开发方式通常是下面这种流程(见图三)。在本设计中,以Microsoft SQL Server 2008 R2开发版本,主要利用其中的Analysis Services(即SSAS)模块进行数据挖掘功能的开发和管理。同时,利用微软提供的ADOMD.NET插件,可以在微软的Microsoft Visual Studio2008开发环境中,完成了SQL SERVER ANALYSIS SERVICE型数据库的连接操作,并利用它提供的运行DMX数据挖掘语言的相应的接口函数在VS2008开发环境中完成数据挖掘模型的训练。通过ADOMD连接分析型数据库使用DMX语言创建,训练,使用挖掘模型。VS2005中新建ASP.NET网站(选用C#语言),并添加对ADOMD.NET的引用VS2005中新建商业智能项目,添加数据源及数据源视图。SQL SERVER 2005中会自动生成与智能项目同名的分析型数据库。运行项目 图三 数据挖掘系统开发流程第三章 系统设计及算法3.1 系统总体结构本系统主要需要在Visual Studio开发平台上,以.NET技术为支持,做出一个可供使用者以web浏览的方式对数据进行查看和分析,并且实现数据预测功能的,有数据挖掘功能的系统。在设计中将主要的功能模块分成身份验证模块和数据挖掘演示模块两个部分。系统的功能结构图见图四:用户登录/权限管理挖掘结果演示模块选择模块算法介绍模块数据仓库BI数据挖掘模块 图四 系统功能结构图用户登录模块:此功能要求能够区分系统使用者和游客等不同身份的使用者。系统在登录功能里,根据用户名和密码,来赋予不同使用者对系统的使用权限。从而提高系统的安全性。数据挖掘模块:该模块是系统的核心模块。通过对数据仓库中的数据模型的创建和训练,成为可供挖掘的分析型数据集。在该功能模块里使用者可以通过选择不同的数据源和不同的数据挖掘算法对其进行挖掘算法的演示,挖掘得到的结果会按要求显示出来,并且能够通过比对实际值,来估计挖掘算法的优良程度。数据仓库和BI数据挖掘模块:这个模块是系统的底层的数据库部分,它位于服务器端。该部分是SQL SERVER ANALYSIS SERVICE型的数据库,该类型的数据库是专门用于SQL数据分析的数据仓库。在此模块中,还内部集成了Microsoft SQL Server中的一些常用的数据挖掘算法,通过DMX语言对数据仓库中的数据模型的创建和训练,同时为其选择合适的数据挖掘算法,就能使之成为可供挖掘的分析型数据集。3.2 系统子功能模块 本文在这个部分将以系统的功能结构,分模块介绍该系统的设计思路和方法。3.2.1 欢迎界面和算法介绍模块使用者从浏览器端打开此系统,首先会显示出系统的欢迎页面(见图四)。点击DMX数据挖掘即可进入挖掘系统。在挖掘系统中,首先会展示系统中的源数据,包括一个三国志4游戏人物的特征数据表和一个高中学生考学情况的数据表(见图五)。 图四 系统欢迎界面因为数据挖掘在DMX创建挖掘模型阶段,并不会将源数据中的每一列都一一映射到挖掘模型中,而是会挑选出关键列的事例和属性,生成挖掘模型。所以,在挖掘前,需要向使用者展示源数据情况,方便其了解源数据的各种具体参数,也利于使用者选择挖掘算法,进行下一步操作。这个模块里,并没有集成主要的系统逻辑代码。而是通过拖动VS开发平台的控件来实现这些功能的。 图五 源数据展示2.2 挖掘算法选择模块在这个模块(界面见图六)里,用户需要按自己的需求选择相应的数据源和对应算法。系统提供sanguo、shengxue两个数据源和决策树、线性回归两种算法。使用者就可以得到四种预测结果。通过比对这些结果可以评估算法的适合及优良程度。 图六 数据源和挖掘算法选择界面3.2.3 挖掘结果展示模块使用者提交了源数据及算法的选择后,会跳转到对应的挖掘结果展示模块(界面见图七)。模块中会显示出挖掘模型里用到的参考项、预测项以及预测项的实际数值项,并将这些结果都通过表格展示出来。系统的主要逻辑代码都集中在这个模块的设计中。在VS中设计了4个aspx文件,对四种挖掘组合进行编程。此处选取其中的一种情况,结合源代码解释一下开发方式。其他三种情况是类同的,就不一一介绍了。首先,需要编写数据库的连接代码。SqlConnection con = new SqlConnection();constr2 = server=ADMIN-PCSQLEXPRESS;uid=sa;pwd=123;database=flag; Max Pool Size=100; Min Pool Size=8;con.ConnectionString = constr2;con.Open();SqlCommand sm = new SqlCommand();sm.Connection = con;con.Close(); AdomdConnection conn = new AdomdConnection();connstr = Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=sany;Data Source=AI;conn.ConnectionString = connstr;conn.Open();string tdb = conn.Database;Label1.Text = 连接成功;连接数据库后,需要用DMX语言处理挖掘模型,具体方法在下一节详细介绍。数据挖掘预测完毕之后,要以表格形式显示相关的数据结果,显示结果的代码部分见下:DataTable dt = new DataTable();dt.TableName = resulttable;DataColumn dc = new DataColumn();DataRow dr = null;dt.Columns.Add(new DataColumn(Description);/定义一个列表,并将其内元素设为空,为其添加描述性行头。string name;foreach (Position p in cs.Axes0.Positions) dc = new DataColumn(); name = ; foreach (Member m in p.Members) name = name + m.Caption + ; dc.ColumnName = name; dt.Columns.Add(dc); /生成数据列对象的列名称 int pos = 0; foreach (Position py in cs.Axes1.Positions) dr = dt.NewRow(); name = ; foreach (Member m in py.Members) name = name + m.Caption + rn; dr0 = name; for (int x = 1; x = cs.Axes0.Positions.Count; x+) drx = cspos+.FormattedValue; dt.Rows.Add(dr); /向表格中逐列添加数据值 return dt; 挖掘结果显示完毕之后,用户可以通过首页按钮返回系统首页,然后重新选择其他的数据源和算法。3.3 数据挖掘模型建立和训练本次设计中,需要使用DMX(Data Mining Extension)语言,DMX的意义在于为数据挖掘定义统一的概念和统一的查询表达方式,它如同与数据库中SQL语言所起的作用。DMX语言由数据定义语言(Data Definition Language,DDL),数据操作语言(Data Manipulation Language,DML),以及函数和运算符等所组成。DMX语言的产生,是因为,在数据挖掘市场上有许多数据挖掘产品,每个产品都以自己特有的方式来描述和构建数据挖掘应用程序,大多数数据挖掘工具包都有它们自己的算法、自己的模型模式浏览和存储格式、自己的数据清理工具乃至自己的报表生成工具。这样的方式将数据挖掘系统与企业操作系统隔离开了,从而增加了实现数据挖掘解决方案的难度和成本。DMX语言在Microsoft SQL Server中,是用于创建数据挖掘模型的结构、训练这些模型,以及浏览、管理与预测模型的表达式语言。采用表达式语言很容易让数据库开发人员所理解,所以它具有比较好的可读性和可维护性。区别于高级的开发语言,DMX语言不涉及复杂的算法,它只是提供了可供讨论的数据挖掘问题的详细语言。DMX只有通过DMX语言训练过的挖掘模型,才能进行高层的、自定义化的数据挖掘阶段的开发。基于挖掘阶段,可分为三个部分。分别为模型建立、模型训练、模型的使用。3.3.1 模型建立使用DMX建立模型的意义主要在于告诉计算机,你将以什么样的算法提取出什么样的模式来处理数据,从而推演出新的范例。数据挖掘的过程是直接作用于事例和属性的。在挖掘之前,必须要通过定义挖掘结构和建立挖掘模型,把数据库中数据表里的数据转换成供挖掘的事例和属性。挖掘结构帮助定义挖掘模型时要依据的数据。它指定源数据视图、列的数量和类型,指定算法和模式以及分为定型集和预测集的可选分区,起一个描述符的作用。而挖掘模型是一个对象,它将数据行转换为事例,并使用特定的数据挖掘算法进行计算机学习。用DMX建立模型的过程,就是数据挖掘过程里挖掘结构定义的部分。在本次设计中,分别对两个数据源进行了数据挖掘模型的建立,建立过程的主要代码见下(红色部分为创建挖掘模型的DMX语言,黑色部分的是使用ADOMD.NET技术对多维数据集的连接和接收数据的C#语言):AdomdCommand cmd1 = new AdomdCommand();cmd1.Connection = conn;cmd1.CommandText = create mining model cmm(xuhao long key,wuli long continuous,zhihui long continuous,shengfen2 text discrete predict)/此处创建了一个名为cmm的数据挖掘模型、其中包含了xuhao、wuli、zhihui、shenfen2四列,它们的类型分别是long、long continues、longcontinues和text。其中需要特别注意的是前三列是定型集、shengfen2列是预测集。using microsoft_decision_trees;/此处定义了所选择的挖掘算法和处理模式cmd1.Execute();conn.Close();3.3.2 模型训练在模型的创建阶段,定义了数据挖掘的模式,并描述了具体的事例和属性。在模型训练阶段,则是实际的将AS型数据库中的数据源一一对应到模型中。在模型的训练阶段,也需要指定所训练的挖掘结构,然后再插入对应的源数据。在语法上,建立模型和训练模型十分相似。具体代码见下(红色部分为创建挖掘模型的DMX语言,黑色部分的是使用ADOMD.NET技术对多维数据集的连接和接收数据的C#语言):conn.Open(); AdomdCommand cmd2 = new AdomdCommand();cmd2.Connection = conn;cmd2.CommandText = insert into mining model cmm/挖掘模型的名称为cmm(xuhao,wuli,zhihui,shengfen2)select(sanguo,select xuhao,wuli,zhihui,shengfen from sanguo.dbo.sanguozhi);/从sanguo数据库的sanguozhi表中查找xuhao、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论