数据挖掘系统的设计与实现(毕业论文)

更新时间:2024-05-11 12:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2010 届毕业(设计)论文

题 目 数据挖掘系统的设计与实现 专业班级 网络工程01班 学 号 学生姓名 指导教师(职称) 学院名称 计算机科学与工程学院

完成日期: 2010 年 5月 26 日

数据挖掘系统的设计与实现

Data Mining System

学生姓名

指导教师

摘 要

在电信系统中,经常需要根据用户的登入登出进行计时收费,这样我们就需要根据登录日志来将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登录记录,登录记录中包含以下信息:用户登录名,登入时刻,登出时刻,登录时长,登录终端机器IP等。在匹配过程中,理论上一条登入记录跟一条登出记录匹配,但有可能在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。在整个电信系统中,这些记录无疑是非常巨大的,不是依靠人力手工能够完成的,这时,我们就需要有一个具体的系统来帮我们自动完成这些功能,这也就是本次课题的选择——数据挖掘系统(Data Mining System)。在该系统中,将匹配好的用户登录记录通过网络发送到采集系统服务器,服务器端接收匹配好的用户登录记录数据,然后将接受到的用户登录记录数据保存到数据库的用户登录记录明细表中,而最终可以实现将用户登录记录明细表中的数据整合成日报表,月报表和年报表。 关键词: 数据挖掘;客户端;服务器端

I

Abstract

In telecommunications system, often carried out time charges based on user’s login or logout, so we need to match the user's login and logout records by correspondence relationship according to the log and form a complete log records, log record contains the following information: user login name, login time, logout time, log length, log terminal machine IP and so on. In the process of matching, in theory, a login record matches with a logout record, but when we collect the data the user may not logout ,so there maybe no logout record match with the login record in the log file. We save the login records in a designated file, and read them at the next collection. In the whole telecommunications system, these records will undoubtedly be very tremendous, to rely on human hand can not be done, then we need a specific system to help us finish these functions automatic, it is the choice of this subject - - Data Mining System. In this system, send the matched user log record to the collection system server through internet, the server receives the matched user log record data, and then save the received user log record data to the database user log records list and ultimately enables the data in the user log records list integrated into daily report, monthly report and annual report. Keywords: data mining; client; server

II

目 录

摘 要.....................................................................I Abstract....................................................................II 第一章 文献综述.............................................................1

1.1数据挖掘发展简述......................................................1

1.1.1数据丰富与知识匮乏 ..............................................1 1.1.2从数据到知识 ....................................................2 1.1.3数据挖掘产生 ....................................................4 1.2数据挖掘基本知识......................................................5

1.2.1数据挖掘深入 ....................................................8 1.3数据挖掘功能..........................................................9

1.3.1概念描述:定性与对比 ...........................................10 1.3.2关联分析 .......................................................10 1.3.3分类与预测 .....................................................10 1.3.4聚类分析 .......................................................11 1.3.5异类分析 .......................................................11 1.3.6演化分析 .......................................................11 1.4数据挖掘结果的评估...................................................11 1.5数据挖掘系统.........................................................12

1.5.1数据挖掘系统分类 ...............................................13 1.5.2数据挖掘系统的应用 .............................................13 1.6数据挖掘研究重点.....................................................17 1.7数据挖掘课题的选择...................................................19 第二章 设计部分.............................................................21

2.1环境的选择与搭建.....................................................21 2.2系统需要实现的功能...................................................22 2.3系统用例.............................................................23

2.3.1用例图 .........................................................23 2.3.2用例描述 .......................................................24 2.4数据库表设计.........................................................32 2.5总体类图.............................................................33 2.6异常考虑.............................................................34 2.7 用例实现 ............................................................36 第三章 结果与讨论...........................................................38 第四章 结论与建议...........................................................41

4.1结论.................................................................41 4.2建议.................................................................41 参考文献....................................................................42 致 谢....................................................................43

III

武汉工程大学本科毕业设计

第一章 文献综述

数据挖掘作为一个新兴的多学科交叉应用领域,正在各行各业的决策支持活动扮演着越来越重要的角色。 1.1数据挖掘发展简述 1.1.1数据丰富与知识匮乏

计算机与信息技术经历了半个世纪的发展,给人类社会带来了巨大的变化与影响。在支配人类社会三大要素(能源、材料和信息)中,信息愈来愈显示出其重要性和支配力,它将人类社会由工业化时代推向信息化时代。随着人类活动范围的扩展,生活节奏的加快,以及技术的进步,人们能以更快速更容易更廉价的方式获取和存储数据,这就使得数据及其信息量以指数方式增长。早在20世纪八十年代,据粗略估算,全球信息量每隔20个月就增加一倍。而进入九十年代,全世界所拥有的数据库及其所存储的数据规模增长更快。一个中等规模企业每天要产生100 MB 以上来自各生产经营等多方面的商业数据。美国政府部门的一个典型大数据库每天要接收约5TB数据量,在15 秒到1分钟时间里,要维持的数据量达到300 TB,存档数据达15-100 PB。在科研方面,以美国宇航局的数据库为例,每天从卫星下载的数据量就达3-4 TB之多;而为了研究的需要,这些数据要保存七年之久。九十年代互联网(Internet)的出现与发展,以及随之而来的企业内部网(Internet)和企业外部网(Extranet)以及虚拟私有网(VPN:Virtual Private network)的产生和应用,使整个世界互联形成一个小小的地球村,人们可以跨越时空地在网上交换信息和协同工作。这样,展现在人们面前的已不是局限于本部门,本单位和本行业的庞大数据库,而是浩瀚无垠的信息海洋。据统计,1993年全球数据存贮容量约为二千TB,到2000年增加到三百万TB,面对这极度膨胀的数据信息量,人们受到“信息爆炸”、“混沌信息空间”(Information Chaotic Space)和“数据过剩”(Data glut)的巨大压力。

然而,人类的各项活动都是基于人类的智慧和知识,即对外部世界的观察和了解,做出正确的判断和决策以及采取正确的行动,而数据仅仅是人们用各种工具和手段观察外部世界所得到的原始材料,它本身没有任何意义。从数据到知识到智慧,需要经过分析加工处理精炼的过程。如图1. 1所示,数据是原材料,它只是描述发生了什么事情,并不能构成决策或行动的可靠基础。通过对数据进行分析找出其中关系,赋予数据以某种意义和关联,这就形成所谓信息。信息虽给出了数据中一些有一定意义的东西,但它往往和人们需

1

武汉工程大学本科毕业设计

要完成的任务没有直接的联系,也还不能作为判断、决策和行动的依据。对信息进行再加工,即进行更深入的归纳分析,方能获得更有用的信息,即知识。而所谓知识,可定义为“信息块中的一组逻辑联系,其关系是通过上下文或过程的贴近度发现的”。从信息中理解其模式,即形成知识。在大量知识积累基础上,总结出原理和法则,就形成所谓智慧(Wisdom)。事实上,一部人类文明发展史,就是在各种活动中,知识的创造、交流,再创造不断积累的螺旋式上升的历史。

图1. 1 人类活动所涉及数据与知识之间的关系描述

计算机与信息技术的发展,加速了人类知识创造与交流的这种进程,据德国《世界报》的资料分析,如果说19世纪时科学定律(包括新的化学分子式,新的物理关系和新的医学认识)的认识数量一百年增长一倍,到20世纪60年代中期以后,每五年就增加一倍。这其中知识起着关键的作用。当数据量极度增长时,如果没有有效的方法,由计算机及信息技术来帮助从中提取有用的信息和知识,人类显然就会感到像大海捞针一样束手无策。据估计,目前一个大型企业数据库中数据,约只有百分之七得到很好应用。因此目前人类陷入了一个尴尬的境地,即“丰富的数据”(data rich)而“贫乏的知识”(knowledge poor)。 1.1.2从数据到知识

早在上个世纪八十年代,人们在“物竞天择,适者生存”的大原则下,就认识到“谁最先从外部世界获得有用信息并加以利用,谁就可能成为赢家”。而今置身市场经济且面向全球性剧烈竞争的环境下,任何商家的优势不单纯地取决于如产品、服务、地区等方面因素,而在于创新。用知识作为创新的原动力,就能使商家长期持续地保持竞争优势。因此要能及时迅速地从日积月累庞大的数据库中,以及互联网上获取与经营决策相关的知识,自然而然就成为满足易变的客户需求以及因市场快速变化而引起激烈竞争局面的唯一武器。因此,如何对数据与信息快速有效地进行分析加工提炼以获取所需知识,就成为计算机及信息技术领域的重要研究课题。

事实上计算机及信息技术发展的历史,也是数据和信息加工手段不断更新和改善的历

2

武汉工程大学本科毕业设计

史。早年受技术条件限制,一般用人工方法进行统计分析和用批处理程序进行汇总和提出报告。在当时市场情况下,月度和季度报告已能满足决策所需信息要求。随着数据量的增长,多数据源所带来的各种数据格式不相容性,为了便于获得决策所需信息,就有必要将整个机构内的数据以统一形式集成存储在一起,这就是形成了数据仓库(data

warehousing)。数据仓库不同于管理日常工作数据的数据库,它是为了便于分析针对特定主题(subject-oriented)的集成化的、时变的(time-variant)即提供存贮5-10年或更长时间的数据,这些数据一旦存入就不再发生变化。

数据仓库的出现,为更深入对数据进行分析提供了条件,针对市场变化的加速3人们提出了能进行实时分析和产生相应报表的在线分析工具OLAP(On Line Analytical Processing)。OLAP能允许用户以交互方式浏览数据仓库内容,并对其中数据进行多维分析,且能及时地从变化和不太完整的数据中提取出与企业经营活动密切相关的信息。例如:OLAP 能对不同时期、不同地域的商业数据中变化趋势进行对比分析。

OLAP是数据分析手段的一大进步,以往的分析工具所得到的报告结果只能回答“什么”,而OLAP的分析结果能回答“为什么”。但OLAP分析过程是建立在用户对深藏在数据中的某种知识有预感和假设的前提下,由用户指导的信息分析与知识发现过程。但由于数据仓库(通常数据贮藏量以TB 计)内容来源于多个数据源,因此其中埋藏着丰富的不为用户所知的有用信息和知识,而要使企业能及时准确地做出科学的经营决策,以适应变化迅速的市场环境,就需要有基于计算机与信息技术的智能化自动工具,来帮助挖掘隐藏在数据中的各类知识。这类工具不应再基于用户假设,而应能自身生成多种假设;再用数据仓库(或大型数据库)中的数据进行检验或验证;然后返回用户最有价值的检验结果。此外这类工具还应能适应现实世界中数据的多种特性(即量大、含噪声、不完整、动态、稀疏性、异质、非线性等)。要达到上述要求,只借助于一般数学分析方法是无能达到的。多年来,数理统计技术方法以及人工智能和知识工程等领域的研究成果,诸如推理、机器学习、知识获取、模糊理论、神经网络、进化计算、模式识别、粗糙集理论等等诸多研究分支,给开发满足这类要求的数据深度分析工具提供了坚实而丰富的理论和技术基础。

上个世纪九十年代中期以来,许多软件开发商,基于数理统计、人工智能、机器学习、神经网络、进化计算和模式识别等多种技术和市场需求,开发了许多数据挖掘与知识发现软件工具,从而形成了近年来软件开发市场的热点。目前数据挖掘工具已开始向智能化整体数据分析解决方案发展,这是从数据到知识演化过程中的一个重要里程碑。如图1. 2所示。

3

武汉工程大学本科毕业设计

图1. 2数据到知识的演化过程示意描述

1.1.3数据挖掘产生

随着计算机硬件和软件的飞速发展,尤其是数据库技术与应用的日益普及,人们面临着快速扩张的数据海洋,如何有效利用这一丰富数据海洋的宝藏为人类服务,业已成为广大信息技术工作者的所重点关注的焦点之一。与日趋成熟的数据管理技术与软件工具相比,人们所依赖的数据分析工具功能,却无法有效地为决策者提供其决策支持所需要的相关知识,从而形成了一种独特的现象“丰富的数据,贫乏的知识”。为有效解决这一问题,自二十世纪80年代开始,数据挖掘技术逐步发展起来,数据挖掘技术的迅速发展,得益于目前全世界所拥有的巨大数据资源以及对将这些数据资源转换为信息和知识资源的巨大需求,对信息和知识的需求来自各行各业,从商业管理、生产控制、市场分析到工程设计、科学探索等。数据挖掘可以视为是数据管理与分析技术的自然进化产物,如错误!未找到引用源。所示。

自上个世纪六十年代开始,数据库及信息技术就逐步从基本的文件处理系统发展为更复杂功能更强大的数据库系统;七十年代的数据库系统的研究与发展,最终导致了关系数据库系统、数据建模工具、索引与数据组织技术的迅速发展,这时用户获得了更方便灵活的数据存取语言和界面;此外在线事务处理(OLTP:on-line transaction processing)手段的出现也极大地推动了关系数据库技术的应用普及,尤其是在大数据量存储、检索和管理的实际应用领域。

自上世纪八十年代中期开始,关系数据库技术被普遍采用,新一轮研究与开发新型与强大的数据库系统悄然兴起,并提出了许多先进的数据模型:扩展关系模型、面向对象模型、演绎模型等;以及应用数据库系统:空间数据库、时序数据库、多媒体数据库等;日前异构数据库系统和基于互联网的全球信息系统也已开始出现并在信息工业中开始扮演重要角色。

4

武汉工程大学本科毕业设计

图1. 3数据挖掘进化过程示意描述

被收集并存储在众多数据库中且正在快速增长的庞大数据,已远远超过人类的处理和分析理解能力(在不借助功能强大的工具情况下),这样存储在数据库中的数据就成为“数据坟墓”,即这些数据极少被访问,结果许多重要的决策不是基于这些基础数据而是依赖决策者的直觉而制定的,其中的原因很简单,这些决策的制定者没有合适的工具帮助其从数据中抽取出所需的信息知识。而数据挖掘工具可以帮助从大量数据中发现所存在的特定模式规律,从而可以为商业活动、科学探索和医学研究等诸多领域提供所必需的信息知识。数据与信息知识之间的巨大差距迫切需要系统地开发数据挖掘工具,来帮助实现将“数据坟墓”中的数据转化为知识财富。 1.2数据挖掘基本知识

数据挖掘(Data Mining,简称DM),简单地讲就是从大量数据中挖掘或抽取出知识,数据挖掘概念的定义描述有若干版本,以下给出一个被普遍采用的定义描述:

数据挖掘,又称为数据库中知识发现(Knowledge Discovery from Database,简称KDD),它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。数据挖掘的全过程定义描述如图1. 4 所示。

5

武汉工程大学本科毕业设计

图1. 4知识挖掘全过程示意描述

如图1. 4所示,整个知识挖掘(KDD)过程是由若干挖掘步骤组成,而数据挖掘仅是其中的一个主要步骤。整个知识挖掘的主要步骤有: ?数据清洗(data clearning),其作用就是清除数据噪声和与挖掘主题明显无关的数

据; ?数据集成(data integration),其作用就是将来自多数据源中的相关数据组合到一

起; ?数据转换(data transformation),其作用就是将数据转换为易于进行数据挖掘的数

据存储形式; ?数据挖掘(data mining),它是知识挖掘的一个基本步骤,其作用就是利用智能方法

挖掘数据模式或规律知识; ?模式评估(pattern evaluation),其作用就是根据一定评估标准(interesting

measures)从挖掘结果筛选出有意义的模式知识; ?知识表示(knowledge presentation),其作用就是利用可视化和知识表达技术,向

用户展示所挖掘出的相关知识。

尽管数据挖掘仅仅是整个知识挖掘过程中的一个重要步骤,但由于目前工业界、媒体、数据库研究领域中,“数据挖掘”一词已被广泛使用并被普遍接受,因此也可以广义地使用“数据挖掘”一词来表示整个知识挖掘过程,即数据挖掘就是一个从数据库、数据仓库

6

武汉工程大学本科毕业设计

或其它信息资源库的大量数据中发掘出有趣的知识。

图1. 5数据挖掘系统总体结构描述

基于图1. 4 所示的数据挖掘过程,一个典型的数据挖掘系统(如图1. 5所示)主要包含以下主要部件: ?数据库、数据仓库或其它信息库,它表示数据挖掘对象是由一个(或组)数据库、数

据仓库、数据表单或其它信息数据库组成。通常需要使用数据 清洗和数据集成操作,对这些数据对象进行初步的处理; ?数据库或数据仓库服务器,这类服务器负责根据用户的数据挖掘请求,读取相关的数

据; ?知识库,此处存放数据挖掘所需要的领域知识,这些知识将用于指导数据挖掘的搜索

过程,或者用于帮助对挖掘结果的评估。挖掘算法中所使用的用户定义的阈值就是最简单

7

武汉工程大学本科毕业设计

的领域知识; ?数据挖掘引擎,这是数据挖掘系统的最基本部件,它通常包含一组挖掘功能模块,以

便完成定性归纳、关联分析、分类归纳、进化计算和偏差分析等挖掘功能; ?模式评估模块,该模块可根据趣味标准(interestingness measures),协助数据挖

掘模块聚焦挖掘更有意义的模式知识。当然该模块能否与数据挖掘模块有机结合,与数据挖掘模块所使用的具体挖掘算法有关。显然若数据挖掘算法能够与知识评估方法有机结合将有助提高其数据挖掘的效率; ?可视化用户界面,该模块帮助用户与数据挖掘系统本身进行沟通交流。一方面用户通

过该模块将自己的挖掘要求或任务提交给挖掘系统,以及提供挖掘搜所需要的相关知识;另一方面系统通过该模块向用户展示或解释数据挖掘的结果或中间结果;此外该模块也可以帮助用户浏览数据对象内容与数据定义模式、评估所挖掘出的模式知识,以及以多种形式展示挖掘出的模式知识。

从数据仓库的角度来看,数据挖掘可以被认为是在线分析处理(OLAP)的高级阶段,但是基于多种数据理解先进技术的数据挖掘,其数据分析能力要远超过以数据汇总为主的数据仓库在线分析处理功能。

目前市场有许多所谓“数据挖掘系统”,实际上它们仅仅是一个基于统计的数据分析工具,或一个机器学习工具。数据挖掘有机结合了来自多学科技术,其中包括:数据库、数理统计、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理、空间数据分析等,这里我们强调数据挖掘所处理的是大规模数据,且其挖掘算法应是高效的和可扩展的。通过数据挖掘,可从数据库中挖掘出有意义的知识、规律,或更高层次的信息,并可以从多个角度对其进行浏览察看。所挖掘出的知识可以帮助进行决策支持、过程控制、信息管理、查询处理等等。因此数据挖掘被认为是数据库系统最重要的前沿研究领域之一,也是信息工业中最富有前景的数据库应用领域之一。 1.2.1数据挖掘深入

KDD就是利用机器学习的方法从数据库中提取有价值知识的过程,它是数据库技术和机器学习两个学科的交叉领域。数据库技术侧重于对数据存储处理的高效率方法的研究,而机器学习则侧重于设计新的方法从数据中提取知识。KDD利用数据库技术对数据进行前端处理,而利用机器学习方法则从处理后的数据中提取有用的知识。当然KDD与其他学科也有很强的联系,如统计学、数学和可视化技术等。

既然KDD 和机器学习都是从数据中提取知识,那么两者有什么区别呢?KDD是从现实

8

武汉工程大学本科毕业设计

世界中存在的一些具体数据中提取知识,这些数据在KDD出现之前早已存在;而机器学习所使用的数据是专门为机器学习而特别准备的数据,这些数据在现实世界中也许毫无意义。由于KDD使用的数据来自于实际的数据库,而且所要处理的数据量可能很大,因此KDD中的学习算法的效率和可扩充性就显得尤为重要;此外,KDD所处理的数据由于来自于现实世界,数据的完整性、一致性和正确性都很难保证,如何将这些数据加工成学习算法可以接收的数据?也是数据挖掘研究与开发时需要进行深入研究的问题;再者,KDD可以利用目前数据库技术所取得的研究成果来加快学习过程,提高学习的效率。最后一点就是,由于KDD 处理的数据来自于实际的数据库,而与这些数据库数据有关的还有其他一些背景知识,这些背景知识的合理运用也会提高学习算法的效率。

在日常的数据库操作中,人们经常使用的是从数据库中抽取数据以生成一定格式的报表,那么KDD与数据库报表工具有什么区别呢?数据库报表制作工具是将数据库中的某些数据抽取出来,经过一些数学运算,最终以特定的格式呈现给用户,而KDD则是对数据背后隐藏的特征和趋势进行分析,最终给出关于数据的总体特征和发展趋势。报表工具也许能够给出上学期考试未通过及成绩优秀的学生的有关情况。但它不能找出那些考试未通过及成绩优秀的学生在哪些方面有些什么不同的特征,而数据挖掘通过对相关数据的分析,以发现影响学生成绩的各种因素,就可以给出两者之间的差别。

目前出现了很多基于数据仓库的OLAP的产品,它可以对数据进行多维分析,进行数据的drill down、roll up操作。那么同样作为数据分析方法的数据挖掘与OLAP有何区别呢?OLAP是由用户驱动的,一般是由分析人员预先设定一些假设,然后使用OLAP工具去帮助验证这些假设,它提供了可使分析人员很方便地进行数据分析的手段;而数据挖掘则是通过对数据的分析来自动产生一些假设,人们可以在这些假设的基础上更有效地进行决策。

这里我们通过一个例子说明两者的区别,在进行银行信用风险调查时,如果使用OLAP,分析人员必须首先设定一些假设条件,如高负债低收入的人有信用风险,分析人员可以利用OLAP,通过对有关数据进行分析来验证或推翻这个假设,而对于使用数据挖掘来说,由其找出对银行信用风险有影响的因素,而且还可能发现按照常规思维认为不可能的一些影响因素,如年龄地区或者某些因素的某种组合。 1.3数据挖掘功能

利用数据挖掘技术可以帮助获得决策所需的多种知识。在许多情况下,用户并不知道数据存在哪些有价值的信息知识,因此对于一个数据挖掘系统而言,它应该能够同时搜索发现多种模式的知识,以满足用户的期望和实际需要。此外数据挖掘系统还应能够挖掘出

9

武汉工程大学本科毕业设计

多种层次(抽象水平)的模式知识。数据挖掘系统还应容许用户指导挖掘搜索有价值的模式知识。数据挖掘功能以及所能够挖掘的知识类型说明描述如下。 1.3.1概念描述:定性与对比

一个概念常常是对一个包含大量数据的数据集合总体情况的概述。如对一个商店所售电脑基本情况的概述总结就会获得所售电脑基本情况的一个整体概念。对含有大量数据的数据集合进行概述性的总结并获得简明、准确的描述,这种描述就称为概念描述。获得概念描述的方法主要有以下两种:

(1)利用更为广义的属性,对所分析数据进行概要总结;其中被分析的数据就称为目标数据集;

(2)对两类所分析的数据特点进行对比并对对比结果给出概要性总结;而其中两类被分析的数据集分别被称为目标数据集和对比数据集。

数据概要总结就是利用数据描述属性中更广义的(属性)内容对其进行归纳描述。其中被分析的数据,常常可以通过简单的数据库查询来获得。如:对我校的讲师情况进行概要总结(给出概念描述)。数据概要总结通常都用更广义的关系表或特征描述规则来加以输出表示。 1.3.2关联分析

关联分析就是从给定的数据集发现频繁出现的项集模式知识。关联分析广泛用于市场营销、事务分析等应用领域。 1.3.3分类与预测

分类就是找出一组能够描述数据集合典型特征的模型(或函数),以便能够分类识别未知数据的归属或类别,即将未知事例映射到某种离散类别之一。分类模型(或函数)可以通过分类挖掘算法从一组训练样本数据(其类别归属已知)中学习获得。

分类挖掘所获的分类模型可以采用多种形式加以描述输出。其中主要的表示方法有:分类规则、决策树、数学公式和神经网络。决策树是一个具有层次结构的树状结构,如图1.7所示就是一个决策树。决策树可以很容易地转换为分类规则。

分类通常用于预测未知数据实例的归属类别(有限离散值),如一个银行客户的信用等级是属于6级、_级还是)级。但在一些情况下,需要预测某数值属性的值(连续数值),这样的分类就被称为预测。尽管预测既包括连续数值的预测,也包括有限离散值的分类;但一般还是使用预测来表示对连续数值的预测;而使用分类来表示对有限离散值的预测。

10

武汉工程大学本科毕业设计

1.3.4聚类分析

聚类分析与分类预测方法明显不同之处在于,后者所学习获取分类预测模型所使用的数据是已知类别归属,属于有教师监督学习方法;而聚类分析(无论是在学习还是在归类预测时)所分析处理的数据均是无(事先确定)类别归属,类别归属标志在聚类分析处理的数据集中是不存在的。究其原因很简单,它们原来就不存在,因此聚类分析属于无教师监督学习方法。聚类分析中,首先需要根据“各聚集内部数据对象间的相似度最大化;而各聚集对象间相似度最小化”的基本聚类分析原则,以及度量数据对象之间相似度的计算公式,将聚类分析的数据对象划分为若干组。因此一个组中数据对象间的相似度要比不同组数据对象间的相似度要大。每一个聚类分析所获得的组就可以视为是一个同类别归属的数据对象集合,更进一步从这些同类别数据集,又可以通过分类学习获得相应的分类预测模型(规则)。此外通过反复不断地对所获得的聚类组进行聚类分析,还可获得初始数据集合的一个层次结构模型。 1.3.5异类分析

一个数据库中的数据一般不可能都符合分类预测或聚类分析所获得的模型。那些不符合大多数数据对象所构成的规律(模型)的数据对象就被称为异类。之前许多数据挖掘方法都在正式进行数据挖掘之前就将这些异类作为噪声或意外而将其排除在数据挖掘的分析处理范围之内。但在一些应用场合,如各种商业欺诈行为的自动检测,小概率发生的事件(数据)往往比经常发生的事件(数据)更有挖掘价值。对异类数据的分析处理通常就称为异类挖掘。

数据中的异类可以利用数理统计方法分析获得,即利用已知数据所获得的概率统计分布模型,或利用相似度计算所获得的相似数据对象分布,分析确认异类数据。而偏离检测就是从数据已有或期望值中找出某些关键测度显著的变化。 1.3.6演化分析

数据演化分析就是对随时间变化的数据对象的变化规律和趋势进行建模描述。这一建模手段包括:概念描述、对比概念描述、关联分析、分类分析、时间相关数据分析(这其中又包括:时序数据分析、序列或周期模式匹配,以及基于相似性的数据分析)。 1.4数据挖掘结果的评估

一个数据挖掘系统在完成一个(组)挖掘算法之后,常常会获得成千上万的模式或规则。关联规则挖掘就是一个典型的例子,关联规则挖掘算法的执行结果,即使是对一个规

11

武汉工程大学本科毕业设计

模较小的数据库(几万条交易事务记录),也会得到数千条关联规则。显然这数千条关联规则中,只会有一小部分是实际应用价值的。那么如何对数据挖掘步骤所获得的挖掘结果进行有效地评估,以便最终能够获得有(实际应用)价值的模式(或规则)知识?这就给数据挖掘提出了许多需要解决的问题:“使一个模式有价值的因素是什么?”、“一个数据挖掘算法能否产生所有有价值的模式(知识)?”、“一个数据挖掘算法能否只产生有价值的模式(知识)?”。

对于第一问题,评估一个模式(知识)是否有意义通常有依据以下四条标准:(1)易于用户理解;(2)对新数据或测试数据能够确定有效程度;(3)具有潜在价值;(4)新奇的。一个有价值的模式就是知识。

此外还有一些评价模式价值的客观标准,这些标准是基于所挖掘出模式的结构或统计特征。例如对于关联规则的一个客观评价标准就是支持率,它表示满足相应关联规则的事务记录占总记录数的比率;尽管客观评价方法能够帮助识别一些有意义的模式知识,但也仍然需要结合一些主观评价措施方可有效反映用户的需求和兴趣。例如商场主观对描述常在商场购买商品顾客的特征模型很感兴趣;而对商场雇员的表现特征模型却兴趣不大。再者许多根据客观评价标准是有价值的模式知识却只是普通的常识知识(实际无价值)。主观价值评估标准是建立在用户对数据的信念基础上,这些评估标准基于所发现模式是否是意外的或与用户信念相左,或能够提供决策支持而确定的。而意料之中模式是有价值的则是指它能够帮助确认用户想要认可的一个假设。

至于第二个问题,即“一个数据挖掘算法能否产生所有有价值的模式(知识)?”,则是指数据挖掘算法的完全性。期望数据挖掘算法能够产生所有可能模式是不现实的。实际上一个(模式)搜索方法可以利用有趣性评价标准来帮助缩小模式的搜索范围。因此通常只需要保证挖掘算法的完全性就可以了。关联规则的挖掘算法就是这样的一个例子。 最后回答第三个问题,即“一个数据挖掘算法能否只产生有价值的模式(知识)?”,这也是数据挖掘算法的一个最优化问题。一般当然希望数据挖掘算法仅挖掘有价值的模式(知识),但这是一个较为棘手的最优化高效搜索问题,至今尚没有好的解决方法。

评估所挖掘模式的趣味性标准对于有效挖掘出具有应用价值的模式知识是十分重要的。这些标准可以直接帮助指导挖掘算法获取有实际应用价值的模式知识,以及有效摒弃无意义的模式。更为重要的是这些模式评估标准将积极指导整个知识发现过程,通过及时消除无前途的搜索路径,提高挖掘的有效性。 1.5数据挖掘系统

12

武汉工程大学本科毕业设计

1.5.1数据挖掘系统分类

数据挖掘是一个多学科交叉领域,这些交叉学科包括:数据库系统、机器学习、统计学、可视化和信息科学。此外因数据挖掘任务不同,数据挖掘系统还可能采用其它学科的一些技术方法,如:神经网络、模糊逻辑、粗糙集、知识表示、推理逻辑编程或高性能计算等。根据所挖掘的数据和挖掘应用背景,数据挖掘系统还可能集成其它领域的一些技术方法,其中包括:空间数据分析、信息检索、模式识别、图象分析、信号处理、计算机图形学、互联网技术、经济学、心理学等。

正因为数据挖掘技术方法的多样性,也就导致了数据挖掘系统的多样性。因此为帮助正确认识数据挖掘系统并准确有效使用合适的数据挖掘系统解决实际问题,这里将对数据挖掘系统分类标准作一详细介绍: ?根据所挖掘的数据库进行分类,一个数据挖掘系统可以按照其所挖掘的数据库类型进

行分类。而数据库系统本身就有多个划分标准(如:按数据模型、数据类型,以及应用本身),这些数据库系统均与各自的数据挖掘技术相对应。因此数据挖掘系统可以按照数据库系统类型进行划分。例如:若根据数据模型进行分类,就会有关系类型、事务类型、面向对象类型、对象关系类型和数据仓库类型等数据挖掘系统。但若按照所处理数据类型进行划分,就会有空间数据类型、时序数据类型、文本类型和多媒体类型等数据挖掘系统,或互联网挖掘系统。其他的系统类型还包括:异构数据挖掘系统和历史数据挖掘系统。 ?根据所挖掘的知识进行分类,可以根据所挖掘的知识类型对数据挖掘系统进行分类。

因此就可以根据概念描述知识、对比概念描述知识、关联知识、分类知识、聚类知识、异类知识、趋势与演化分析知识等进行划分。一个较成熟的数据挖掘系统通常提供多种(或集成)数据挖掘的结果(知识)。

此外还可以根据所挖掘知识的抽象水平和细度对数据挖掘系统进行划分,因此就会有广义知识(更抽象知识)、基本层次知识、多层次知识(多个抽象水平)的数据挖掘系统。一个高级数据挖掘系统应该具有挖掘多层次知识的能力。 ?根据所使用的技术进行分类,依据所使用的数据挖掘技术也可以对数据挖掘系统进行

分类。这些挖掘技术既可以按照用户交互程度,从完全自主到交互式探索和基于查询驱动进行划分;也可以按照所使用的数据分析方法,如:基于数据库或基于数据仓库技术、机器学习、统计、可视化、模式识别、神经网络等进行分类。一个复杂的数据挖掘系统常常采用多种数据挖掘技术或整合多种数据挖掘技术以弥补不同数据挖掘技术所存在的不足。 1.5.2数据挖掘系统的应用

13

武汉工程大学本科毕业设计

实际上数据挖掘技术从一开始就是面向应用的。目前,在很多重要的领域,数据挖掘都可以发挥积极促进的作用。尤其是在如银行、电信、保险、交通、零售(如超级市场)等商业应用领域。数据挖掘能够帮助解决许多典型的商业问题,其中包括:数据库营销、客户群体划分、背景分析、交叉销售等市场分析行为,以及客户流失性分析、客户信用评分、欺诈发现等等。

数据挖掘技术在企业市场营销中得到了比较普遍的应用,它是以市场营销学的市场细分原理为基础,其基本假定是@消费者过去的行为是其今后消费倾向的最好说明。

通过收集、加工和处理涉及消费者消费行为的大量信息,确定特定消费群体或个体的兴趣、消费习惯、消费倾向和消费需求,进而推断出相应消费群体或个体下一步的消费行为,然后以此为基础,对所识别出来的消费群体进行特定内容的定向营销,这与传统的不区分消费者对象特征的大规模营销手段相比,大大节省了营销成本,提高了营销效果,从而为企业带来更多的利润。

商业消费信息来自市场中的各种渠道。例如:每当我们用信用卡消费时,商业企业就可以在信用卡结算过程中收集商业消费信息,记录下我们进行消费的时间、地点、感兴趣的商品或服务、愿意接收的价格水平和支付能力等数据;当我们在申办信用卡、办理汽车驾驶执照、填写商品保修单等其他需要填写表格的场合时,我们的个人信息就存入了相应的业务数据库;企业除了自行收集相关业务信息之外,甚至可以从其他公司或机构购买此类信息为自己所用。

这些来自各种渠道的数据信息被组合,应用超级计算机、并行处理、神经元网络、模型化算法和其他信息处理技术手段进行处理,从中得到商家用于向特定消费群体或个体进行定向营销的决策信息。这种数据信息是如何应用的呢?举一个简单的例子,当银行通过对业务数据进行挖掘后,发现一个银行帐户持有者突然要求申请双人联合帐户时,并且确认该消费者是第一次申请联合帐户,银行会推断该用户可能要结婚了,它就会向该用户定向推销用于购买房屋、支付子女学费等长期投资业务,银行甚至可能将该信息卖给专营婚庆商品和服务的公司。数据挖掘构筑竞争优势。

在市场经济比较发达的国家和地区,许多公司都开始在原有信息系统的基础上通过数据挖掘对业务信息进行深加工,以构筑自己的竞争优势,扩大自己的营业额。美国运通公司有一个用于记录信用卡业务的数据库,数据量达到54亿字符,并仍在随着业务进展不断更新。运通公司通过对这些数据进行挖掘,制定了“关联结算优惠”的促销策略,即如果一个顾客在一个商店用运通卡购买一套时装,那么在同一个商店再买一双鞋,就可以得到

14

武汉工程大学本科毕业设计

比较大的折扣,这样既可以增加商店的销售量,也可以增加运通卡在该商店的使用率。再如,居住在伦敦的持卡消费者如果最近刚刚乘英国航空公司的航班去过巴黎,那么他可能会得到一个周末前往纽约的机票打折优惠卡。

基于数据挖掘的营销,常常可以向消费者发出与其以前的消费行为相关的推销材料。卡夫食品公司建立了一个拥有3000万客户资料的数据库,数据库是通过收集对公司发出的优惠券等其他促销手段作出积极反应的客户和销售记录而建立起来的,卡夫公司通过数据挖掘了解特定客户的兴趣和口味,并以此为基础向他们发送特定产品的优惠券,并为他们推荐符合客户口味和健康状况的卡夫产品食谱。美国的读者文摘出版公司运行着一个积累了40年的业务数据库,其中容纳有遍布全球的一亿多个订户的资料,数据库每天24小时连续运行,保证数据不断得到实时的更新,正是基于对客户资料数据库进行数据挖掘的优势,使读者文摘出版公司能够从通俗杂志扩展到专业杂志、书刊和声像制品的出版和发行业务,极大地扩展了自己的业务。 数据挖掘系统的其它应用还有: ?在对客户进行分析方面:银行信用卡和保险行业,利用数据挖掘将市场分成有意义的

群组和部门,从而协助市场经理和业务执行人员更好地集中于有促进作用的活动和设计新的市场运动。 ?在客户关系管理方面:数据挖掘能找出产品使用模式或协助了解客户行为,从而可以

改进通道管理。又如正确时间销售就是基于顾客生活周期模型来实施的。 ?在零售业方面:数据挖掘用于顾客购货篮的分析可以协助货架布置,促销活动时间,

促销商品组合以及了解滞销和畅销商品状况等商业活动。通过对一种厂家商品在各连锁店的市场共享分析,客户统计以及历史状况的分析,可以确定销售和广告业务的有效性。 ?在产品质量保证方面:数据挖掘协助管理大数量变量之间的相互作用,并能自动发现

出某些不正常的数据分布,揭示制造和装配操作过程中变化情况和各种因素,从而协助质量工程师很快地注意到问题发生范围和采取改正措施。 ?在远程通讯方面:基于数据挖掘的分析协助组织策略变更以适应外部世界的变化,确

定市场变化模式以指导销售计划。在网络容量利用方面,数据挖掘能提供对客户聚集服务使用的结构和模式的了解,从而指导容量计划人员对网络设施作出最佳投资决策。 ?在各个企事业部门,数据挖掘在假伪检测及险灾评估、失误回避、资源分配、市场销

售预测广告投资等很多方面,起着很重要作用。例如在化学及制药行业,将数据挖掘用于巨量生物信息可以发现新的有用化学成分;在遥感领域针对每天从卫星上及其它方面来的

15

武汉工程大学本科毕业设计

巨额数据,对气象预报、臭氧层监测等能起很大作用。

上个世纪九十年代开始出现数据挖掘商用软件以来,据不完全统计,到_1998 年底1999年初,已达50多个厂商从事数据挖掘系统的软件开发工作,在美国数据挖掘产品市场在1994年约为5千万美元,1997年达到5亿美元。2001年将达到10亿美元。从产品的类型来看,通常有以下五类产品: ?能够提供广泛的数据挖掘能力,典型产品有:IBM公司的Intelligent Miner;SAS公司

的Enterprise Miner。 ?旨在为某个部门求解问题,典型的有:Unica公司的Response Modeler Segment;IBM

公司的Business Application等。 ???与提供服务联系在一起的,典型的有:NeoVista、Hyperparallel、HNC Marksman。 黑匣工具,典型的有:GroupModel、ModelMax、Predict。

解决客户问题,典型的有:MarketierParegram、ExchemgeApplication等。 数据挖掘(知识发现)的目的就是为企业决策提供的正确依据,从分析数据发现问题作出决策采取行动这一系列操作是一个单位的动作行为,利用计算机及信息技术完成这整体行动,是发挥机构活力和赢得竞争优势的唯一手段。因此人们将这种机构行为和手段称这为“事务智能”(Business Intelligent,简称BI),BI能极大地改进决策的质量和及时性,从而改进机构的生产率或发挥竞争优势。所以近年来,一些大公司将数据分析和数据挖掘工具及其有关技术组合起来形成所谓BIS(Business Intelligent Softwave)。其中SAS公司的的Enterprise Minter就是将数据源、数据预处理、数据存贮、数据分析与发掘、信息表示与应用等方面技术有机形成一个复杂数据挖掘系统有机整体。

IBM 公司更全面地考虑BI系统的结构和功能,与其它公司共同合作来开发BI各类软件和工具。并从多方面来加以考虑:首先必须有一良好的数据库和数据仓库,并能使企业管理与决策机制能够过渡到下一个时期,所以提出了一个统一的数据库系统DB2和一个可视化数据仓库VDW(Visual Data Warehouse),可以将各种应用和各部门的信息融为一体,加上Visual Warehouse OLAP工具可以生成实时报告在信息发现和数据发掘工具方面,提出能对结构型和非结构型数据进行发掘的一整套智能工具(Intelligent Miner Family)。BI手段只有在好的数据基础上才能见效,因此提出数据重组工具。由于向用户提供联合统一观点的企业数据是作出聪明决策的前提,又提出能支持异形数据库的DataJointer(数据接合)。BI 系统标志着从数据到知识到决策的进程中的更深入的一步,展示着真正的实用的智能信息系统的雏

16

武汉工程大学本科毕业设计

形。

1.6数据挖掘研究重点

有关数据挖掘研究的若干重点问题描述如下:

(1)挖掘方法与用户交互问题。这其中涉及所挖掘知识的类型,挖掘多细度的知识,领域知识的利用,定制挖掘和知识挖掘的可视化。 ?从数据库挖掘不同类型的知识。由于不同的应用需要不同类型的知识,因此数据挖掘

应该覆盖广泛的数据分析与知识发现任务需求。这其中包括:数据概念描述、对比概念描述、关联知识、分类知识、聚类分析、趋势和偏差分析,以及相似性分析。这些挖掘任务可以是对同一个数据库进行不同的操作。因此需要设计开发大量的数据挖掘技术。 ?基于多层抽象水平的交互挖掘。由于无法准确了解从一个数据库中究竟能够发现什么。

因此一个数据挖掘过程应该是交互的。鉴于数据库中包含大量的数据,首先需要利用合适的采样技术来帮助实现交互式数据挖掘的探索。交互数据挖掘能够让用户参与并指导对(要挖掘)模式的搜索,或帮助让用户精炼所返回的挖掘结果。与数据仓库OLAP交互模式类似,用户也可以与数据挖掘系统进行交互来帮助进行更有效地数据挖掘,以便能从多个不同角度发现多个抽象层次(细度)的模式知识。 ?数据挖掘查询语言与定制数据挖掘。关系(数据库)查询语言,

如:SQL语言,能够帮助用户提出各种有针对性的数据检索要求。同样开发高水平的数据挖掘查询语言以帮助用户描述特定的挖掘任务(包括描述其中的数据特征)、描述挖掘任务所涉及的领域知识、挖掘结果的模式知识类型,以及对挖掘结果有趣性等约束条件。这样一种语言还应该与数据库或数据仓库查询语言集成在一起,并为实现有效灵活的数据挖掘而进行集成优化。 ?数据挖掘结果表达与可视化。数据挖掘应该能够用高水平语言、可视化表示、或其它

表示方式来描述所挖掘出的知识,以使用户更加容易地理解和应用所挖掘出的知识。数据挖掘结果的可视化表示,对于交互式数据挖掘系统而言是非常重要的,同时也要求系统采用多种表示形式,如:树、表格、规则、图、示意图、矩阵、曲线来描述所数据挖掘结果。 ?处理有噪声或不完整的数据。数据库中的数据或许反映有噪声、不完整、以外的数据

对象。因此当挖掘数据规律时,这些对象或许会使挖掘过程迷失方向以致挖掘出一个不符合实际情况的模型。这时就需要数据清洗和数据分析方法以处理这些有噪声的数据;有时也需要异类挖掘方法以帮助实现意外情况的挖掘与处理。 ?

模式评估:有趣性问题。一个数据挖掘系统能够发现数以千计的模式,而用户常常只

17

武汉工程大学本科毕业设计

对其中的一小部分模式感兴趣;其它大多数都属于常识性或缺乏新意的知识。如何对所挖掘出模式的趣味性进行评估,特别是如何基于用户信念和期待对所挖掘模式进行主观评估,仍然是一个尚待进一步研究的问题。如何利用趣味性来指导挖掘过程以有效减少搜索空间,也是尚待进一步研究的问题。

(2)性能问题。这其中包括:效率、可扩展性和数据挖掘算法的并行化等问题。 ?数据挖掘算法的效率与可扩展性。为了能够有效地从数据库大量的数据中抽取模式知

识,数据挖掘算法就必须是高效的和可扩展的。算法的可扩展性表现在它的(数据挖掘)运行时间与所处理的数

据规模呈线性关系,假设挖掘系统可利用的其它资源不变的情况下(如:内存和硬盘空间等);这也就意味着当被挖掘数据的规模确定后,相应数据挖掘算法的运行时间是可以预测的,当然也是可以接受的。从数据库角度来要求知识发现算法,效率和可扩展性也是构造数据挖掘系统的一个关键问题。前面所介绍的数据挖掘方法与用户交互中的许多问题也涉及到效率与可扩展性的问题。 ?并行、分布和增量更新算法。许多数据库中数据的巨大规模、广泛分布的数据(存储)

地点,以及一些数据挖掘算法的计算复杂性等,都极大地推动了并行分布数据挖掘算法的研究与开发。这类算法将数据分为若干份进行并行处理,然后将处理获得的结果合并在一起。此外一些数据挖掘过程所涉及的高昂代价也促使了增量数据挖掘算法的发展,这类增量挖掘算法无需每次(挖掘时)均对整个数据库进行挖掘而只需对数据库中的增量数据进行挖掘即可。当然增量挖掘算法需要对之前所挖掘获得的模式知识进行增量式修改与完善。

(3)数据库类型多样化所涉及的问题。 ?关系和复杂类型数据的处理。数据库与数据仓库的类型有许多种,期望一个数据挖掘

系统能够对所有类型的数据都能够很好地完成挖掘任务是不现实的。鉴于关系数据库与数据仓库应用较广,研究设计高效有效地挖掘这类数据的数据挖掘系统是必要的。然而其它数据库包含复杂数据对象,如:超文本、多媒体数据、空间数据、时间数据,或交易数据,显然一个数据挖掘系统不可能满足挖掘不同数据类型并完成不同挖掘任务的要求。因此需要根据特定的挖掘数据,构造相应的数据挖掘系统。 ?异构数据库和全球信息系统的信息挖掘。本地和广域计算机网络系统(如:互联网)

将许多数据源连接在一起,从而构成了一个巨大的、分布的、异构的数据库。如何从来自不同数据源(具有不同数据语义),这其中包括:结构化数据、半结构数据和无结构数据,

18

武汉工程大学本科毕业设计

挖掘出所需要的模式知识是数据挖掘研究所面临巨大挑战。数据挖掘或许能够帮助从多个异构数据库中挖掘高层次的数据规律,而这些数据规律是无法通过简单查询系统就可获得的,由此甚至还可以帮助改善信息交换和异构数据库之间的互操作性。 这里对以下几个方面的内容作了概要的介绍与说明。这些方面内容包括: ?数据技术,它从基本的文件处理发展到具有查询与事务处理能力的数据库管理系统。

来自各行各业应用,其中包括:商业与管理、行政管理、科学与工程和环境控制等所收集数据的爆炸性增长,更进一步地刺激了对有效数据分析和数据理解工具的需求。 ?数据挖掘,它是一个从大量有噪声、不完整数据中挖掘出有意义模式知识的过程。所

挖掘的数据对象可以是数据库或数据仓库内容,也可以是其它数据源内容。数据挖掘是一个新兴的多学科交叉领域,这其中主要涉及:数据库系统、数据仓库、统计学、机器学习、数据可视化、信息检索和高性能计算等,其它学科还包括:人工神经网络、模式识别、空间数据分析、图像数据库、信号处理和归纳逻辑编程。数据挖掘是一个包含多个处理步骤的知识发现过程,这其中主要包括:数据清洗、数据集成、数据选择、数据转换、数据挖掘、模式评估和知识表达输出。 ?数据仓库,它是一个存放来自多个数据源并随时间积累的数据容器,其目的就是为管

理决策提供辅助支持。数据仓库提供了在线分析处理功能,以帮助实现用户指导下的数据探秘工作。 ?数据挖掘结果,数据挖掘所获得的知识类型包括:定性概念描述、定性对比概念描述、

关联规则、分类规则、聚类知识、趋势描述知识、偏差分析知识等。 ?挖掘结果评估,数据挖掘结果评估主要依据两类标准,即客观标准和主观标准。这两

类标准的出发点均是:所挖掘出的模式应是新奇的、有趣的、有价值的。这两类评估标准都可以与挖掘过程密切结合,以指导知识发现的搜索过程。 ?数据挖掘系统分类,数据挖掘系统可以按照三种标准进行划分,它们是数据库类型、

所挖掘的知识和所使用的技术。 ?数据挖掘尚待研究问题,对大规模数据库内容进行高效的数据挖掘,作为数据挖掘研

究的基本出发点,为我们提出许多尚待解决的问题,主要涉及数据挖掘方法、用户交互、性能与可扩展性,以及多样化数据的处理等。 1.7数据挖掘课题的选择

在电信系统中,经常需要根据用户的登入登出进行计时收费,这样我们就需要根据登录日志来将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登录记

19

武汉工程大学本科毕业设计

录,登录记录中包含以下信息:用户登录名,登入时刻,登出时刻,登录时长,登录终端机器IP等。在匹配过程中,理论上一条登入记录跟一条登出记录匹配,但有可能在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。在整个电信系统中,这些记录无疑是非常巨大的,不是依靠人力手工能够完成的,这时,我们就需要有一个具体的系统来帮我们自动完成这些功能,这也就是本次课题的选择——数据挖掘系统DMS(Data Mining System)。

20

武汉工程大学本科毕业设计

第二章 设计部分

2.1环境的选择与搭建

在确定数据挖掘系统应当具备的基本功能之后,需要进行环境的选择与搭建。在目前接触的几种相对热门的语言之中,比较java,C,C++。Java语言相对于其他两门语言具有明显的几样优势:

1.健壮性。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

2.安全性。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

3.平台中立性。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

4.良好的移植性。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

5.高效性。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

Java语言的这些其他语言不具备优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

数据挖掘系统更是需要有良好的安全性,而且能够在不同平台之间进行良好的沟通与数据整合,对庞大的数据能够进行迅速准确的处理,基于数据挖掘系统的特性,JAVA语言无疑是首要的选择。

21

武汉工程大学本科毕业设计

在确定所使用的语言之后,就需要考虑与之匹配的工具。对于目前主要的JAVA开发工具,eclipse无疑是首选。Eclipse不仅目前被广泛应用,使用该开发工具就意味着代码可以与大多数开发者同步,而且该工具更是开源的,在官方网站能够随时免费下载,所以就选择Eclipse作为开发工具。

数据挖掘系统主要是面对庞大的数据进行各式各样的操作,数据库就是进行设计过程中不得不慎重考虑选择的对象。MYSQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在这里就选择MYSQL作为数据挖掘系统的数据库。

确定平台和工具之后,就是要进行JAVA环境的搭建。由于Java是平台无关的,安装JDK时Java不会自动设置路径,也不会修改注册表,需要用户自己设置环境变量,但不需要修改注册表。

Windows中需要设置两个环境变量path和classpath。Path变量指出Java提供的可执行文件的路径,classpath变量指出Java包的路径。右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,在弹出的“系统属性”对话框中选择“高级”选项卡,单击“环境变量”按钮,系统弹出“环境变量”对话框,path是Windows已经定义的变量。找到“path”,单击“编辑”按钮,然后单击“确定”按钮。向path变量添加的是JDK编译器javac.exe和解释器java.exe的路径。如果Windows中没有path变量,则需要新建。通常,Windows中没有classpath环境变量,需要新建。单击“新建”按钮,变量名称为“classpath”,变量值为“,;C:\\Program Files\\Java\\jdk 1.5.0\\lib”,这是JDK包(类库)的路径。注意:这两个环境变量都必须加在“环境变量”列表框中,不能加在“用户变量”中。

设置环境变量需要注意的事项如下:

1.上面所示的路径是JDK的默认安装路径,环境变量的值需要根据实的安装路径而更改。Windows系统不区分字母大小写,因此变量名和路径字符串中字母大小写均可。

2.“path=%path%”表示path的原有路径,可以省略。如果省略,同时省略分号“;”,此时path原路径将不复存在,可能会影响其他程序运行。

3.classpath值中的“.”表示当前目录,通常写在最前面,作为系统查找类的第一个路径。

2.2系统需要实现的功能

在开始进行设计时,首先考虑数据库挖掘系统应当具备以下功能:

22

武汉工程大学本科毕业设计

数据采集客户端数据采集服务器数据读取模块数据匹配模块数据存储模块数据库/var/adm/wtmpx数据发送模块数据接收模块数据整合模块图2. 1系统功能

数据读取模块:负责从用户登录记录文件和未匹配登录记录文件中读取用户的登录记录数据,将其转化为LogRec对象,然后传递给数据匹配模块匹配。

数据匹配模块:负责将用户登录记录数据,按照登入/登出的关系匹配起来,形成匹配的用户登录记录数据(MatchedLogRec对象),并计算出每次登录的时间长度。

数据发送模块:将匹配好的用户登录记录通过网络发送到采集系统服务器。 数据接收模块:服务器端接收匹配好的用户登录记录数据。

数据保存模块:将接受到的用户登录记录数据保存到数据库的用户登录记录明细表中。

数据整合模块:将用户登录记录明细表中的数据整合成日报表,月报表和年报表。 2.3系统用例 2.3.1用例图

23

武汉工程大学本科毕业设计

读取上次未匹配的登入记录读取用户登录数据文件匹配登录记录数据读取数据匹配保存未匹配的登入记录DMS管理员数据采集数据发送数据整合数据保存数据接收整合出日表整合出月报表整合出年报表

图2. 2 DMS系统用例图

2.3.2用例描述

表2. 1数据采集

用例名称 功能简述 前置条件 基本流 数据采集 DMS管理员运行DMS程序,完成数据采集的功能 DMS程序已正确安装并部署 1. DMS管理员启动DMS服务端程序 2. DMS管理员启动DMS客户端程序 3. DMS客户端程序读取上次未匹配的登入记录 4. DMS客户端程序读取用户登录数据文件 5. DMS客户端程序得到用户登入/登出记录列表 6. DMS客户端程序将用户的登入和登出记录按照对应关系匹配成完整的登录记录 7. DMS客户端程序将不能成功匹配的登入记录写到文件中保存 8. DMS客户端程序将匹配好的登录记录发送到数据采集服务端 9. DMS服务端程序接收采集的数据 10. DMS服务端程序将数据写到服务端文件中保存下来 第1步,若启动服务端程序失败,则报告异常。 第2步,若启动客户端程序失败,则报告异常。 第3步,若上次未匹配的登入记录文件不存在,则跳过到第3步。 第4步,若读取用户登录数据文件失败,则报告异常。 第7步,若指定的写出目录不存在,则创建目录。 第7步,若创建目录或写文件失败,则报告异常。 第8步,若发送数据失败,则定时重传。 第10步,若写入文件失败,则报告异常。 无 无 24

分支与异常 后置条件 备注

武汉工程大学本科毕业设计

表2. 2数据读取

用例名称 功能简述 前置条件 基本流 数据读取 DMS程序读取系统数据文件和上次未匹配的登入记录,形成用户登录记录列表。 DMS客户端程序启动 1. 根据系统配置信息确定上次未匹配的登入记录文件的位置。 2. 读取上次未匹配的登入记录,形成用户登录记录列表。 3. 根据系统配置信息确定用户登录数据文件的位置。 4. 读取数据文件,将文件内容解析成用户登录记录。 5. 将上一步中解析得到的用户登录记录添加到列表中。 6. 返回用户登录记录列表。 第2步,若上次未匹配的登入记录文件不存在,则跳过到第3步。 第4步,若用户登录数据文件不存在,则报告异常。 无 无 分支与异常 后置条件 备注 读取上次未匹配的登入记录

表2. 3匹配上次未登入

用例名称 功能简述 前置条件 基本流 读取上次未匹配的登入记录 DMS程序读取上次未匹配的登入记录,形成用户登录记录列表。 DMS客户端程序启动 1. 根据系统配置信息确定上次未匹配的登入记录文件的位置。 2. 读取文件内容,将数据解析成用户登入记录。 3. 创建内存列表,保存读取到的登入记录数据。 4. 清空未匹配的登入记录文件。 第2步,若上次未匹配的登入记录文件不存在,则结束此用例。 第2步,若读取文件失败,则报告异常。 第4步,若清空文件失败,则报告异常。 无 无 分支与异常 后置条件 备注

读取用户登录数据文件

25

武汉工程大学本科毕业设计

表2. 4读取用户登录数据

用例名称 功能简述 前置条件 基本流 读取用户登录数据文件 DMS程序读取用户登录数据文件,形成用户登录记录列表。 DMS客户端程序启动 1. 根据系统配置信息确定数据文件位置。 2. 备份数据文件,并删除原始数据文件。 3. 根据系统配置信息确定上次未匹配的登入记录文件的位置。 4. 读取上次未匹配的登入记录,形成用户登录记录列表。 5. 读取数据文件,将文件内容解析成用户登录记录。 6. 将上一步中解析得到的用户登录记录添加到列表中。 7. 返回用户登录记录列表。 第2步,若找不到数据文件,则报告异常。 第2步,若备份数据失败,则报告异常。 第3步,若上次未匹配的登入记录文件不存在,则跳过到第4步。 第4步,若读取备份数据文件失败,则报告异常。 第6步,若指定的写出目录不存在,则创建目录。 第6步,若创建目录或写文件失败,则报告异常。 第7步,若指定的写出目录不存在,则创建目录。 第7步,若创建目录或写文件失败,则报告异常。 无 无 分支与异常 后置条件 备注 数据匹配

表2. 5数据匹配

用例名称 功能简述 前置条件 基本流 数据匹配 DMS程序读取用户登入/登出记录列表,按照登入/登出的对应关系匹配成完整的用户登录记录,并将本次未匹配的登入记录写到指定文件。 已经获得用户登入/登出记录列表 1. 访问用户登入/登出记录列表,按照登入/登出的对应关系匹配登录记录。 2. 将未匹配的登入记录写到文件中。 分支与异常 后置条件 备注 无 无 匹配登录记录

26

武汉工程大学本科毕业设计

表2. 6匹配登录记录

用例名称 功能简述 前置条件 基本流 匹配登录记录 将用户登入/登出记录按照对应关系匹配成用户登录记录,以便计算用户登录时长。 已经获得用户登入/登出记录列表 1. 定义两个列表分别用来保存登入记录和登出记录。 2. 循环访问用户登入/登出记录列表,将登入记录和登出记录分检出来,分别存入登入记录列表和登出记录列表。 3. 循环访问登出记录列表,每找到一条登出记录后循环访问登入记录列表,找到与之对应的登入记录,将两条对应的记录组合成用户登录记录,并将这两条记录从列表中删除。 4. 循环直至所有的登出记录都处理完成。 无 无 分支与异常 后置条件 备注 保存未匹配的登入记录

表2. 7保存未匹配的登入记录

用例名称 功能简述 前置条件 基本流 保存未匹配的登入记录 将匹配之后剩余的登入记录数据保存到文件中,以便下次匹配。 匹配登录记录完成 1. 将匹配完成后,登入记录列表中剩余的记录写到文件中保存。 分支与异常 后置条件 备注 第1步,若找不到指定文件,则创建。 第1步,若创建文件失败,则报告异常。 无 无 数据发送

27

武汉工程大学本科毕业设计

表2. 8数据发送

用例名称 功能简述 前置条件 基本流 数据发送 采集系统客户端将匹配好的数据通过网络发送给服务器。 用户登录记录已经匹配完成 1. 建立到服务器的网络连接。 2. 获得输出流和输入流。 3. 包装流对象。 4. 遍历匹配的用户登录记录集合,拿到一条匹配的用户登录数据记录。 5. 将匹配的用户登录数据记录按照指定格式转化为字符串。 6. 将字符串写到流中。 7. 等待服务器的接收回应。 8. 循环4-7步,直到所有匹配的登录记录处理完成。 9. 关闭流对象,关闭网络连接。 第1步,若网络连接失败,则报告异常。 第2步,若输入流和输出流失败,则报告异常。 第6步,若写数据失败,则报告异常。 第7步,若接收回应失败,重复传送本条记录。 无 无 分支与异常 后置条件 备注

28

武汉工程大学本科毕业设计

数据接收

表2. 9数据接收

用例名称 功能简述 前置条件 基本流 数据接收 采集系统服务器接收从客户端传送过来的数据。 服务器程序启动,客户端完成匹配,并已发送数据。 1. 开启服务程序。 2. 获得网络连接。 3. 开启新的线程为客户服务。 4. 获得输入流和输出流。 5. 包装流对象。 6. 循环从输入流中读取字符串,保存在本地列表中。 7. 成功读取一行字符串后向服务器发送成功传送标志。 8. 循环5-6步,直到所有字符串接收完成。 9. 关闭流对象,关闭网络连接,终止线程。 第1步,若开启服务失败,则报告异常。 第2步,若获得网络连接失败,则报告异常。 第4步,若获得流对象失败,则报告异常。 第6步,若读取数据失败,则报告异常。 第7步,若写出数据失败,则报告异常。 无 无 分支与异常 后置条件 备注 数据保存

表2. 10数据保存

用例名称 功能简述 前置条件 基本流 数据保存 采集系统服务器将接收到的数据保存到数据库。 服务器已经接收到数据。 1.建立到数据库的连接 2.循环访问接收到的数据列表 3.将列表中的记录插入到用户登录记录明细表中 4.访问完成后关闭连接 分支与异常 后置条件 备注 第1步,若建立数据库连接失败,则报告异常。 第3步,若插入记录失败,则报告异常。 无 无 29

武汉工程大学本科毕业设计

数据整合

表2. 11数据整合

用例名称 功能简述 前置条件 基本流 数据整合 采集系统服务器将用户登录记录明细表的数据整合出日表,月表和年表。 用户登录记录明细表存在 1. 执行SQL语句,将用户登录记录明细表中前一天的记录按照用户名和实验室ip为条件组合,统计出每一天,用户登录某一实验室机器的总时长数据,形成日报表。 2. 执行SQL语句,根据用户登录记录日报表数据整合出用户登录记录月报表。 3. 执行SQL语句,根据用户登录记录月报表数据整合出用户登录记录年报表。 无 无 分支与异常 后置条件 备注 整合出日报表

表2. 12整合出日报表

用例名称 功能简述 前置条件 基本流 整合出日报表 根据用户登录记录明细整合出用户登录记录日报表 已经得到前一天所有用户登录记录明细 1. 建立到数据库的连接。 2. 执行SQL语句,将用户登录记录明细表中前一天的记录按照用户名和实验室ip为条件组合,统计出每一天,用户登录某一实验室机器的总时长数据,形成日报表。 3. 关闭到数据库的连接 第1步,若建立连接失败,则报告异常。 第2步,若执行SQL失败,则报告异常。 第3步,若关闭数据库连接失败,则报告异常。 无 无 分支与异常 后置条件 备注

30

武汉工程大学本科毕业设计

整合出月报表

表2. 13整合出月报表

用例名称 功能简述 前置条件 基本流 整合出月报表 根据用户登录记录日报表整合出月报表 已经得到上一月所有用户登录记录日报表(1-31日) 1. 建立到数据库的连接。 2. 创建临时表,用来存储某月份所有用户的登录日表记录。 3. 循环访问每张日表,将该月份的用户登录记录查询出来,并存入临时表中。 4. 查询临时表,按用户登录名和实验室IP为条件分组,计算出每个用户登录每个实验室的月登录时长,将其存入月表中。 5. 关闭数据库连接。 第1步,若建立连接失败,则报告异常。 第2步,若创建表失败,则报告异常。 第3步,若访问表失败,则报告异常。 第4步,若访问表失败,则报告异常。 第5步,若关闭连接失败,则报告异常。 无 无 分支与异常 后置条件 备注 整合出年报表

表2. 14整合出年报表

用例名称 功能简述 前置条件 基本流 整合出年报表 根据用户登录记录月报表整合出年报表 已经得到前一年所有用户登录记录月报表(1-12月) 1. 建立到数据库的连接。 2. 创建临时表,用来存储某月份所有用户的登录日表记录。 3. 循环访问每张日表,将该月份的用户登录记录查询出来,并存入临时表中。 4. 查询临时表,按用户登录名和实验室IP为条件分组,计算出每个用户登录每个实验室的月登录时长,将其存入月表中。 5. 关闭数据库连接。 第1步,若建立连接失败,则报告异常。 第2步,若创建表失败,则报告异常。 第3步,若访问表失败,则报告异常。 第4步,若访问表失败,则报告异常。 第5步,若关闭连接失败,则报告异常。 无 无 31

分支与异常 后置条件 备注

武汉工程大学本科毕业设计

2.4数据库表设计

根据需求,设计出如下数据库表结构:

用户登录记录明细PK 登录记录编号用户ID实验室IP登入时间登出时间登录时长用户终端IP用户登录记录日报表PKPK 用户ID实验室IP日登录时长登录月份用户登录记录月报表PKPK 用户ID实验室IP月登录时长登录年份用户登录记录年报表PKPK 用户ID实验室IP年登录时长

表2. 15用户 登录记录明细表

字段 登录记录编号 用户ID 实验室IP 用户终端IP 登入时间 登出时间 登录时长

类型 Number char char char Number Number Number 长度 15 20 15 15 20 20 12 约束 PK NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 备注 系统自动生成 由登出时间-登入时间求得 表2. 16用户登录记录日报表

字段 用户ID 实验室IP 日登录时长 登录月份

类型 char char Number Date 长度 20 15 12 约束 PK PK NOT NULL 32

备注 武汉工程大学本科毕业设计

表2. 17用户登录记录月报表

字段 用户ID 实验室IP 月登录时长 登录年份 类型 char char Number Date 长度 20 15 12 约束 PK PK NOT NULL 备注 表2. 18用户登录记录年报表

字段 用户ID 实验室IP 年登录时长 2.5总体类图 【客户端类图】

类型 char char Number 长度 20 15 12 约束 PK PK NOT NULL 备注

图2. 3客户端类图

33

武汉工程大学本科毕业设计

【服务端类图】

图2. 4服务端类图

【数据整合类图】

图2. 5数据整合类图

2.6异常考虑

对于一个系统 ,各式各样的异常出现时很正常的事,所以需要进行必要的异常考虑。 客户端异常类结构图:

34

武汉工程大学本科毕业设计

java.lang.ExceptionGatherExceptionLoadConfigExceptionReadDataExceptionMatchDataExceptionWriteDataException

图2. 6客户端异常类结构图

客户端异常类说明

表2. 19客户端异常说明

异常类名 GatherException LoadConfigException ReadDataException MatchDataException WriteDataException 服务端异常类结构图:

java.lang.Exception异常类责任说明 数据采集异常。 装载配置参数异常。 读取数据异常。 匹配数据异常。 保存数据异常 备注 DMSServerExceptionLogsReceiveExceptionLogsStoreExceptionDataCombinateException 图2. 7服务端异常类结构图

35

本文来源:https://www.bwwdw.com/article/lk7g.html

Top