《毕业设计论文数据挖掘在客户关系管理中的应用.doc》由会员分享,可在线阅读,更多相关《毕业设计论文数据挖掘在客户关系管理中的应用.doc(40页珍藏版)》请在三一办公上搜索。
1、 学院理学学士论文数据挖掘在客户关系管理中的应用 界面设计、数据库设计及数据预处理 1学院理学学士论文 前 言 前 言随着Internet 时代的到来,电子商务、企业信息化得到飞速发展,全球市场竞争的加剧和客户需求多元化的要求,给传统的商业经济模式带来了巨大的冲击。传统企业基于4P (product 产品,place 渠道,price 价格,promotion 促销) 的竞争模式已逐渐被基于客户关系的经营理念所取代,未来市场的竞争已演变成为服务手段的竞争,建立和发展长期的客户关系是企业成功的关键,因此在客户关系管理中运用数据挖掘与其相关的技术已成为企业赢得核心竞争优势的重要手段。它是强调以“客
2、户关系一对一理论”为基础,旨在改善企业与客户之间的新型管理机制,同时也是包括一个组织机构判断、选择、争取、发展和保持客户所要实施的全部商业过程。1面对当今社会信息化数据的迅速增长,“数据的爆长性增长与知识的相对贫乏”已成为现在人类最大的问题,人类分析数据和从中提取有用信息的能力已远远不能满足实际需要,所以我们要用数据挖掘技术来解决这些问题。数据挖掘就是从数据中发现趋势或模式的过程,其目的就是通过对大量数据的分析从中发现人们先前不知道的、但又非常有用的新的信息。数据挖掘的应用领域非常广泛,包括商务管理、生产控制、市场分析、工程设计和科学探索等,在CRM系统中也发挥着十分重要的作用。数据挖掘从大量
3、的客户数据中挖掘出隐含的、先前未知的、对决策有极大价值的知识和规则,并能够根据已有的信息对未发生行为做出结果预测,为企业经营决策、市场策划提供依据。因为在现实中存在了多种因素(如缩短的交易周期、增加的交易成本、新增的商品和物流方式、贪婪的竞争对手等)共同作用增加了客户关系的复杂性,所以成功企业必须对每一个因素做出及时反映。此外,大家都知道市场不等人,今天的客户到了明天也许就不再是你的,与客户的交互也不想过去那样简单,客户和潜在客户希望用他们习惯的方式进行交互,因此这就要求人们在做决策时注意以下规则:(1)提供恰当的服务。(2)给合适的人。(3)在正确的时间。(4)通过正确的渠道。提供恰当的服务
4、要求商家同客户进行多种交互,了解客户需求,投其所好,并把不相关的商品的数目降到最少。给合适的人意味着客户的需求各不相同。交互活动要在一个高度细化的市场上进行,以满足不同的需要。要在正确的时间是因为同客户的交互是一个连续的过程。最后,通过正确的渠道是因为商家可以通过各种途径(如邮寄、Email、电话购物等)与客户交互。对于不同的客户,商家必须保持选择最有效的方式,这样才有助于客户交互。我们所要做的就是,使用数据挖掘工具运用在客户关系管理 (CRM) 中,利用数据挖掘技术来帮助商家解决同客户交互遇到的各种问题,通过对客户的深入了解,可以确切地估算出利润和投资回报率,可以避免一些不必要的损失,给商家
5、带来了赢利。32学院理学学士论文 摘 要 摘 要 本论文主要讨论的是数据挖掘在客户关系管理系统中的应用,运用数据挖掘的相关技术(如粗糙集、关联规则、决策树、遗传算法等),结合销售行业的市场经营分析及CRM系统开发,建立基于数据挖掘的客户关系管理系统-客户服务的解决方案,并进行了部分实现。数据挖掘技术在客户关系管理领域中的应用主要有:(1)通过数据挖掘判断客户的价值,即客户细分;(2)通过数据挖掘发掘潜在客户,从而实现交叉销售,提高现有客户的价值;(3)通过数据挖掘分析客户的流失,预防潜在的客户流失;(4)通过数据挖掘保留忠实客户,优化客户关系。我的主要工作就是界面的设计、集成,数据库设计以及数
6、据的预处理, 建立基于数据挖掘的客户关系管理系统。在当今竞争激烈的市场环境中,CRM 是企业增加生存能力、扩大竞争优势不可或缺的支持。只有能够更好的利用客户信息、满足客户需求,一个企业才能够获得更大的利益。数据挖掘正是指导企业更好地理解客户以及满足客户需求的工具,为用户进行客户关系管理提供决策的参考依据。论文研究具有一定的理论意义和实际应用价值,为客户关系管理提供了一种研究思路和分析方法。关键词:客户关系管理(CRM);数据挖掘(Data Mining);界面设计;数据库设计;数据处理学院理学学士论文 ABSTRACT ABSTRACTThis text mainly discusses th
7、e application of data mining in the system of customer relationship management, which applies the related techniques of data mining (such as rough set, association rule, decision tree, genetic algorithms, etc.), and combines the market management analysis and the CRM systems development of sale busi
8、ness, and builds up the system of customer relationship management based on data miningcustomer service, and makes part of functions come true.The techniques of data mining can be mainly applied in the field of customer relationship management:(1) Judge customers value through data mining, customer
9、classification.(2)Find potential clients through data mining, and then carry out cross selling to improve the value of clients. (3)Analyze the drain of clients through data mining, to prevent the drain of potential clients. (4)Reserve the faithful clients through data mining, to optimize the relatio
10、nship between clients.My task is mainly to design and integrate the interface of the software, to do data preprocessing, and to set up the system of customer relationship management based on data mining.In todays environment of competitive market, CRM is such a necessary support for enterprises that
11、 it can increase the survival ability, and widen competition edge. Only by meeting the demands of clients and making good use of clients information can the enterprise gain more profit. And data mining is that tool which can guide companies to understand the clients and meet their demands, and final
12、ly, provide reference for the decision of customer relationship management. The discussion of this paper has certain theory meaning and actual application value, and also provides a kind of thinking and analyzing method.Keywords: data mining;customer relationship management;design of interface; data
13、base design;data processing 学院理学学士论文 目 录 目 录前 言0摘 要IABSTRACTII第一章 可行性研究报告11.1项目开发的背景11.2系统设计相关的原理11.2.1 VC +6.0编程语言的介绍211.2.2 SQL Sever语句介绍321.2.3 数据挖掘 (Data Mining)441.2.4 客户关系管理 (CRM)541.2.5 数据挖掘在CRM中的应用651.3项目可行性评估761.3.1技术可行性评估61.3.2经济可行性评估61.3.3操作可行性评估61.4项目可行性研究报告6第二章 系统需求分析72.1系统需要解决的主要问题72.1
14、.1粗糙集72.1.2关联规则72.1.3决策树82.1.4遗传算法82.2系统应该具备的基本功能82.3数据收集及预处理492.3.1对各算法中的数据进行预处理102.3.2数据仓库的定义和特性5142.4数据字典14第三章 系统设计163.1前言163.2基本简介163.3系统功能模块结构图163.4运行环境163.5详细分析183.5.1 用户的权限限制183.5.2 数据库中表的设计183.5.3 功能模块的详细设计21第四章 系统编码234.1系统流程图设计234.2系统页面显示244.2.1登入界面244.2.2进入客户资料管理界面264.2.3进入客户信息分析界面314.2.4用
15、户信息管理界面33第五章 系统测试355.1软件测试7355.2软件测试的目标与方法355.3模块测试355.4集成测试365.5 系统测试及实现36第六章 开发难点与解决技巧376.1开发的难点376.1.1各个算法模块间建立376.1.2界面与数据库的连接376.1.3两种不同用户的鉴别376.2系统的安全性376.3系统的发布与维护38参考文献39致 谢40附 录 一41调研报告41Research Report43附录二46操作手册46学院理学学士论文 第一章 可行性研究报告 第一章 可行性研究报告1.1项目开发背景 本系统主要实现数据挖掘技术(如粗糙集、关联规则、决策树、遗传算法)在
16、客户关系管理中的具体应用,其中粗糙集、关联规则算法由我们组的陈彩琴负责完成实现,决策树、遗传算法由吴海海负责完成实现,而我主要负责实现是界面的设计、数据库设计、数据预处理,把他们几个算法集成起来,建立一个基于数据挖掘的客户关系管理系统。1.2系统设计相关原理 该客户关系管理系统使用VC+ 6.0作为前台开发工具,SQL Sever 2000 作为后台数据库,开发客户机/服务器(Client/ Sever ,缩写为 C/ S )的应用程序,此外还运用了Photoshop 7.0进行了图片处理。整体设计工程遵循软件工程的原理、技术和方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现
17、几个阶段。下面就对这几中技术和方法做一个概述。1.2.1 VC +6.0编程语言的介绍2 Visual C + 是一个功能强大的可视化软件开发工具。它不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment, IDE)。Visual C + 6.0由许多组件组成,包括编辑器、编译器、调试器、以及程序向导AppWizard、类向导Class Wizard 等开发工具。这些组件通过一个名为Developer Studio 的组件集成为和谐的开发环境。 Visual C + 的特点: Visual C +的源
18、程序要求用C +语言编写,它支持面向对象设计方法,并可以使用功能强大的软件基础类库MFC(Microsoft foundation class),充分体现了Microsoft公司的技术精华。用Visual C +开发出来的软件稳定性好,可移植性强、而且软件与硬件相互独立。 利用Visual C +可以编制各种类型的Windows 应用程序,从最简单的单文档和对话框程序到复杂的多文档和组合界面程序。并且Visual C +作为Visual Studio 可视化组件家族中最重要的一个成员,它可以与其他可视化开发工具如Visual Basic、Visual J +及Visual C#紧密地集成在一起
19、,可进行不同类型的程序开发工作,适用于特殊、复杂和综合软件项目的开发以及系统软件的设计。Visual C + 6.0源代码编辑器提供了自动语句完成的功能,编辑输入源程序时,它自动显示当前对象的成员变量和成员函数,并指明函数的参数类型。Visual C + 6.0的编译器增加了新的编译参数,改进了对ANSI C +标准的支持,并采用Microsoft的代码优化技术,使生成的目标代码更短小,应用程序运行的速度更快。Visual C + 6.0程序调试器功能更强大,它提供了诊断映射机制、无须要重编译的调试、远程调试和实现调试等功能。Visual C + 拥有功能强大的MFC( Microsoft f
20、oundation Class Library)类库。MFC主要具有下面的优势:(1)MFC提供了大量的类,把Windows API函数封装在类中。用户使用MFC,可以很方便地开发Windows 应用程序,而不必为如何绘制Windows 窗口、对话框和菜单等常见用户界面发愁,因为它们都包含在MFC中;(2)因为可以充分利用前人开发的代码,所以缩短了程序的开发周期;(3)使代码具有更好的重要性;(4)使一些复杂的开发技术变得更容易实现,如网络编程和数据库编程等;(5)使用消息映射机制可以避免处理消息时的复杂情形;(6)使用MFC 可以提高运行效率。迄今为止,Visual C + 可以说是一个功能
21、最强大和使用范围最广泛的软件开发工具。1.2.2 SQL Sever语句介绍3 SQL 全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase, Informix, SQL server这些大型的数据库管理系统,还是像Visual FoxPro, PowerBuilder这些微机上常用的数据库开发系统,都支
22、持SQL语言作为查询语言。SQL的优点:1.非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。2.
23、统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。SQL为许多任务提供了命令,包括:(1)查询数据(2)在表中插入、修改和删除记录(3)建立、修改和删除数据对象(4)控制对数据和数据对象的存取(5)保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是Postgre SQL(和大多数
24、其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了 PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。1.2.3 数
25、据挖掘 (Data Mining)4数据挖掘 (DM, Data Mining) 就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在的有用的信息和知识的过程。从商业角度来看,数据挖掘是一种新的信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转化、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。要使数据挖掘在商业中起作用,就要把它与基本的商业活动过程关联起来。数据挖掘是企业同客户打交道的一长串步骤中的一个部分。数据挖掘影响商业活动的方式取决于商业过程,而不是数据挖掘的过程。我们必须所指出的问题是:(1)数据挖掘的结果不同
26、于其他数据驱动的商业活动。(2)数据挖掘抽取的是数据库中不为用户所知的信息。这就需要引进客户交互、情景。处理推销问题的用户要先理解数据挖掘的结果,然后才能把它运用到实际中。在实际应用中,如何使用数据挖掘的输出结果?最简单的办法是把结果看作黑盒。如果用户用黑盒给数据库中的客户评分,就能得到一张客户列表(可以向列表中的客户邮寄商品目录,提高他们的信用度)。用户所要做的只是把信封寄出去,这是非常有效的方法。1.2.4 客户关系管理 (CRM)5客户关系管理 ( Customer Relationship Management,简称 CRM )是选择和管理最有价值客户关系的一种商业策略。CRM 要求以
27、客户为中心的商业哲学和企业文化来支持有效的营销、销售以及客户服务。如果企业拥有正确的领导、策略和企业文化,CRM 应用将为企业实现有效的客户关系管理。客户关系管理首先是一种商业策略,它贯穿于企业的各个部门和经营环节,其目的在于理解、预测和管理企业现有的或潜在的顾客。客户关系管理涉及到战略、过程、组织和技术等各方面的变革,以使企业更好地围绕客户来有效地管理自己的经营。我们为什么需要客户关系管理呢?因为大家都知道:(1)获得一个新客户比留住一个老客户要花更多的钱;(2)客户离开后再把他们吸引回来所花的钱要比他们一开始就满意所花的钱多得多;(3)将新的商品卖给老客户要比卖给新客户容易得多;(4)有些
28、客户比其他客户更有利可图。有些客户现在是无利可图的,还有一些客户现在和将来都是无利可图的。所以我们要运用新的技术,来改变单一的销售模式,寻求最有利可图的途径建立和维持稳定的客户关系。客户对企业的好感和忠诚不仅来自于企业提供的商品,更来自于服务和经验等非实体因素。企业要了解客户的喜好-不仅包括产品,还包括样式和服务的外观。他们要管理每一个客户的关系,从每一个客户身上获取最大利润,降低市场营销费用,减少由于客户离去和无效的营销策略产生的浪费。以上都希望用客户关系管理的方法来实现。1.2.5 数据挖掘在CRM中的应用6在客户关系管理生命周期的各个阶段都有可能会用到数据挖掘技术。例如,在如何更好地为现
29、有的客户提供服务方面,通过数据挖掘,能够帮助企业确定现有的客户的特点,从而为客户提供有针对性的服务;如何开拓企业新市场,获取新客户方面,通过数据挖掘,可以发现购买每一商品的客户的特征,从而可以向那些具有这些特征却没有购买的客户推销这个商品;如何挖掘现有客户群的潜力,为企业提供更多价值方面,通过数据挖掘,可以分析各个客户对企业带来的赢利能力,找到那些“金牌客户”后提供更加有针对性的服务,同时也可以分析现有客户的兴趣,向他们推荐提供新的产品和服务;在如何保持现有客户群方面,通过数据挖掘,可以找到流失客户的特征,以抢在那些具有相似特征的客户还未流失之前,就可以采取针对性的措施防止他们的流失;在预测公
30、司未来发展方面,通过数据挖掘,可以预测客户赢利能力的变化,帮助企业提前采取各种对应的措施。 1.3项目可行性评估71.3.1技术可行性评估根据现有的技术,采用Visual C +、SQL Sever等技术和工具完全可以快速、高效地实现该系统模型。1.3.2经济可行性评估由于采用Visual C + 6.0 开发,用VC+ODBC连接数据库的开发方式尽可能地缩短开发周期、节约系统的开发费用,适合大、中型企业,适合远程网络,特别适合小型企业,操作简单、明朗,将会给它们带来丰厚的利润。1.3.3操作可行性评估可以参照其他的软件应用系统,特别适合管理级人员的使用,界面上能实现对客户资料的管理,为用户做
31、出合理的决策,提供了很好的帮助,并尽可能地减少让用户难以操作的方式。1.4项目可行性研究报告纵上所述,从开发的语言、所要运用的工具,到数据挖掘在客户关系管理中应用的价值,都具备了可以开发本系统的要求。而且无论从技术、经济还是操作上,本系统的实现应该没有什么问题的,可以进行对系统的需求分析工作。学院理学学士论文 第二章 系统的需求分析 第二章 系统需求分析要实现一个软件系统,首先应该进行需求分析,这样才能设计出的软件满足用户的各项功能。下面就对客户管理系统的设计进行需求分析。2.1系统需要解决的主要问题首先,该系统主要是面向管理级人员而开发的,并且系统里的资料是企业客户的重要信息,所以用户者必须
32、验证身份才能登入。用户根据不同的级别进入不同的模块,调用各自所需要的信息。本系统由二大模块组成客户资料管理和客户信息分析,其中客户信息分析里引用了数据挖掘中的四个算法粗糙集、关联规则、决策树、遗传算法。我所要实现的就是把这几个模块有效地结合起来,组成一个完整的模块,应用到客户关系管理系统中去。在这里,我来介绍以下的几种算法的需求分析。2.1.1粗糙集面对信息化数据的飞速发展,客户资料数据也从数以几十甚至上百 GB 的容量。这些数据是企业的财富,它如实地记录着企业运作的本质状况。但当客户数量达到一定数量时,企业已无能力对数量以外的人进行同样的销售努力,这就迫切需要一种分析高价值的客户的方法-粗糙
33、集算法。它把数据集看作决策表,由用户指定数据库中某一个或多个属性作为分类的类别,并对决策表进行属性约简,根据这些属性的不同取值,将数据库中数据分为不同的类别,并对决策表进行属性约简和值约简,删除冗余的属性和属性值,在决策表中导出决策规则,从而从少量的客户属性资料数据判断谁是高价值客户,谁是低价值客户,在决策过程中应给予不同重视,那将给企业带来了无限商机。2.1.2关联规则公司与其客户之间的商业关系是一种持续的不断发展的关系。这就需要我们要用关联规则算法,来实现“交叉销售”。交叉销售分析就是从分析现有客户的购买行为数据开始,它是指同时向一位顾客销售多种相关的服务或产品,这是一种发现顾客多种需求,
34、并满足其多种需求的一对一营销方式。交叉销售是建立在“双赢”原则的基础之上的,客户因得到更多、更好符合个性需求的服务而满足,企业也因销售的增长而获益。2.1.3决策树随着行业中竞争愈来愈激烈和获得一个新客户的开支愈来愈大,保持原有客户的工作也愈来愈有价值。比如说,在移动电话行业中,吸引并使一个新客户签约的开支估计为300美元或更多,这其中包括了硬件折旧和销售费用。然而保留一个旧客户的开支可能只是打一个电话或将他们的手机更新到使用最新的技术的那种型号。虽然这也很贵,但比起和一个全新的客户签约还是便宜了许多。如同在这个案例中看到的一样,我们看到可以用决策树来判断客户的流失,这在保留客户的活动中起着重
35、要作用。2.1.4遗传算法 自然界的生物体在遗传、变异和选择的相互作用下,优胜劣汰,不断地由低级向高级进化和发展。这种“物竞天择,适者生存”地进化规律实际上表示了一种优化的思想。在客户关系管理系统中,我们所实现的对客户优化的问题,也正是运用了这种思想。遗传算法用于CRM系统中模拟自然界的生物进化过程。它通过数据对客户群分析,运用适者生存的原则,对客户群进行分类,将没有效益的客户群或低效益客户群转化为高效益客户群,同时奖励和发展有效益的客户群。2.2系统应该具备的基本功能(1)用户权限的管理:用户可以根据不同的级别进行不同的管理,管理员可以看到整个系统,而部门管理员只能进行该部门的管理。(2)客
36、户基本资料管理:可以对客户进行增加、修改、删除、还可以进行多种查询功能。(3)判断客户属性资料:可以对客户属性资料进行管理,对粗糙集算法中的表的数据而进行增加或删除的功能。(4)发掘潜在客户资料:可以对客户与商品之间的关系进行管理,对关联规则算法中的表的数据而进行增加或删除的功能。(5)分析客户流失资料:可以对客户流失资料进行管理,对决策树算法中的表的数据而进行增加或删除的功能。(6)判断客户价值:实现粗糙集算法的应用,对一个客户进行价值判断。(7)发掘潜在客户:实现关联规则算法的应用,用关联规则推出哪些商品是关联的,然后导出哪些是潜在客户。(8)客户流失分析:实现决策树算法的应用,用决策树来
37、判断客户的流失,分析流失的原因。(9)客户价值优化:实现遗传算法的应用,进行客户的优化。除了实现上述功能以外,客户管理系统还应该具有友好、简洁的界面,安全性要高,稳定性要强。 2.3数据收集及预处理4对于数据挖掘,我们当然需要收集大量的数据,收集了销售业和零售业的数据,还有网上的电线公司的数据 ,为了操作把这些数据集成于数据仓库中。对于数据挖掘中的算法对其处理的数据集合一般都有一定的要求,比如数据完整性好、数据的冗余性少、属性之间的相关性小。然而,实际系统中的数据一般都具有不完全性、冗余性和模糊性,很少能直接满足数据挖掘算法的要求。另外,海量的实际数据中无意义的数据很多,严重影响了数据挖掘算法
38、的执行效率,而且由于其中的噪声干扰还会造成无效的归纳,所以这就要求我们必须进行数据预处理这一步。数据挖掘中的预处理主要是接受并理解用户的发现要求,确定发现任务,抽取与发现任务相关的知识源,根据背景知识中的约束性规则对数据进行检查,通过清理和归纳等操作,生成供挖掘核心算法使用的目标数据。数据预处理应该包括以下几个方面的功能:1.数据集成(Data Integration)数据集成主要是将多文件或多数据库运行环境中的异构数据进行合并处理,解决语义的模型性。该部分主要涉及数据的选择、数据的冲突问题以及不一致数据的处理问题。2.数据清洗(Data Cleaning)数据清洗要去除原数据集中的噪声数据和
39、无关数据,处理遗漏数据和清洗脏数据,去除空白数据域和知识背景上的白噪声,考虑时间顺序和数据变化等。主要包括重复数据处理和缺省值数据处理,并完成一些数据类型的转换。3.数据变换(Data Transformation)数据变换主要是找到数据的特征表示,用维变换或转换方式减少有效变量的数目或找到数据的不变式,包括规格化、归纳、切换、旋转和投影等操作。 4.数据简化(Data Reduction)数据简化是在对发现任务和数据本身内容理解的基础上,寻找依赖于发现目标的表达数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下最大限度地精简数据量。它主要有两个途径:属性选择和数据抽样,分别针对
40、数据库中的属性和记录。(1)属性选择包括针对属性进行剪枝、并枝、找方程和找相关属性等操作。(2)数据抽样就是进行数据记录之间的相关性分析,用少量的记录的线性组合来表示大量的记录。2.3.1对各算法中的数据进行预处理(1)对粗糙集数据的进行预处理。首先,Excel表的数据转换到SOL Sever 中要考虑到数据类型的选择问题,应尽量选择占物理空间较小的数据类型,如在区域范围内用varchar 替代CString 类型,因为varchar可以灵活的分配所要的空间,对于大规模数据集来说将会大大减少系统开销。对年龄、收入属性的不同取值(区间)数小于对应的属性概化阀值,则应对它们进行概化。如年龄,它的概
41、化阀值设为20,所以小于30岁的,我们设为young,3050的为middle,大于50的为senior。同理,把收入小于2000的设为low,大于、等于2000为high。由于婚否属性只有两个不同值,所以该属性保留,并且不对其进行概化。同理,性别、是否全职与单位属性也被保留,也不需要进行概化。数据处理前:如2-1所示。表2-1 原始数据Chart 2-1 the Origin Data数据在SQL Sever中进行处理以后:如表2-2所示表2-2 处理后的数据Chart 2-2 the Final Data(2)对关联规则数据的进行预处理。同上,我们在SQL Sever里用的数据类型还是va
42、rchar,但为了方便对关联规则算法实行,还要对所需要的商品进行符号替换。用I1代表随身听,同理:I2耳机,I3电池,I4笔筒,I5充电器,I6笔记本,I7钢笔,I8手表,I9MP3,I10耳麦,I11CD机,I12音响,I13电脑,I14手机,I15键盘,I16 鼠标,I17摄像头,I18CD包,I19钱包,I20背包等。数据处理前:如表2-3所示表2-3 原始数据Chart 2-3 the Origin Data 数据在SQL Sever中进行处理以后:如表2-4所示表2-4 处理后的数据Chart 2-4 the Final Data (3)对决策树数据的进行预处理。同上,我们在SQL
43、Sever里用的数据类型还是varchar。对于入网时间、服务时间存在大量不同值,应当进行概化。如入网时间,假定存在概念分层,为了方便算法的运行,可以将它从(年/月/日)概化到年,而年又可以概化到年段,并且年段的不同值(区间)数小于对应的属性概化阀值,则应当对它进行概化。假设入网时间的概化阀值为1,则它的分段为96,97,98,99。同理,服务时间分为三段:小于20, 20 50之间,大于50。对年龄、掉线次数属性的只需进行概化。假设年龄概化阀值设为10,则它的分段为: 小于30,3040之间,大于40。同理,掉线次数分为:0,12之间,大于2。由于话费类型属性只有两个不同值,所以该属性保留,
44、并且不对其进行概化。同理,性别、手机品牌属性也被保留,也不需要进行概化。数据处理前如表2-5所示,数据在SQL Sever中进行处理以后如表2-6所示。表2-5 原始数据Chart 2-5 the Origin Data表2-6 处理后的数据Chart 2-6 the Final Data2.3.2数据仓库的定义和特性5正式的数据仓库定义是W.H.Inmon提出的,它是一个面向主题的、集成的、不同时间的、稳定的数据的集合,它支持管理决策。换句话说,数据仓库包括:(1)一种或多种从任何类型的数据结构(包括平面的、层次的、关系的或对象等类型;包括开发的或专用的,内部的和外部的)中抽取字段的工具;(
45、2)利用数据源“目录”把数据综合到一个稳定的、集成的、面向主题的数据库中;数据仓库应具有的特性:(1)一个用于分析任务的数据库,分析的数据来自多个应用程序;(2)支持少数几个用户长时间的交互操作;(3)它的内容周期性更新(大部分情况是增加数据);(4)它包含当前的和过去的数据,能对信息做历史性的透视分析;(5)包含几个大的数据表;(6)每个查询会频繁产生大的结果集,还包括对整个表的频繁遍历和多个表的联结操作。 2.4数据字典数据字典是系统分析阶段的重要文档,它清楚的定义与详细的解释了数据流图上未能详细表达的内容,同时它能够帮助分析员组织数据,是用户交谈的好工具。此外,数据字典记载着每个数据项的关键条目,从中可以检查出各数据元素的详细内容或漏掉的数据元素。本系统中的数据字典主要有:用户表:记录不同的用户,与相对应的部门和密码;客户资料表:记录不同的客户,与相对应的客户个人信息,方便与客户进行沟通、联系;粗糙集表:记录客户的有关属性,从这些属性来进行属性约简和值约简的判断;关联规则表:记录着客户消费的有关数据记录,买了哪些商品,商品间存在着哪些强关联规则;决策树表:记录着客户消费的类型,分析客户的流失;粗糙集数据测试表:用来检测粗糙集算法的正确性;关联规则数据测试表:用来检测关联规则算法的正确性;决策树数据测试表:用来检测决策树算法的正确性。 学院理学学士论文