基于数据挖掘的客户关系管理设计_第1页
基于数据挖掘的客户关系管理设计_第2页
基于数据挖掘的客户关系管理设计_第3页
基于数据挖掘的客户关系管理设计_第4页
基于数据挖掘的客户关系管理设计_第5页
已阅读5页,还剩82页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1类型:课程设计题目:基于数据挖掘的客户关系管理设计主要讨论的是数据挖掘在客户关系管理系统中的应用,运用数据挖掘的相关技术(如粗糙集、关联规则、决策树、遗传算法等),结合销售行业的市场经营分析及CRM系统开发,建立基于数据挖掘的客户关系管理系统客户服务的解决方案,并进行了部分实现。0随着Internet时代的到来,电子商务、企业信息化得到飞速发展,全球市场竞争的加剧和客户需求多元化的要求,给传统的商业经济模式带来了巨大的冲击。传统企业基于4P(product产品,place渠道,price价格,promotion促销)的竞争模式已逐渐被基于客户关系的经营理念所取代,未来市场的竞争已演变成为服务手段的竞争,建立和发展长期的客户关系是企业成功的关键,因此在客户关系管理中运用数据挖掘与其相关的技术已成为企业赢得核心竞争优势的重要手段。它是强调以“客户关系一对一理论”为基础,旨在改善企业与客户之间的新型管理机制,同时也是包括一个组织机构判断、选择、争取、发展和保持客户所要实施的全部商业过程。[1]面对当今社会信息化数据的迅速增长,“数据的爆长性增长与知识的相对贫乏”已成为现在人类最大的问题,人类分析数据和从中提取有用信息的能力已远远不能满足实际需要,所以我们要用数据挖掘技术来解决这些问题。数据挖掘就是从数据中发现趋势或模式的过程,其目的就是通过对大量数据的分析从中发现人们先前不知道的、但又非常有用的新的信息。数据挖掘的应用领域非常广泛,包括商务管理、生产控制、市场分析、工程设计和科学探索等,在CRM系统中也发挥着十分重要的作用。数据挖掘从大量的客户数据中挖掘出隐含的、先前未知的、对决策有极大价值的知识和规则,并能够根据已有的信息对未发生行为做出结果预测,为企业经营决策、市场策划提供依据。因为在现实中存在了多种因素(如缩短的交易周期、增加的交易成本、新增的商品和物流方式、贪婪的竞争对手等)共同作用增加了客户关系的复杂性,所以成功企业必须对每一个因素做出及时反映。此外,大家都知道市场不等人,今天的客户到了明天也许就不再是你的,与客户的交互也不想过去那样简单,客户和潜在客户希望用他们习惯的方式进行交互,因此这就要求人们在做决策时注意(1)提供恰当的服务。(2)给合适的人。(3)在正确的时间。1(4)通过正确的渠道。提供恰当的服务要求商家同客户进行多种交互,了解客户需求,投其所好,并把不相关的商品的数目降到最少。给合适的人意味着客户的需求各不相同。交互活动要在一个高度细化的市场上进行,以满足不同的需要。要在正确的时间是因为同客户的交互是一个连续的过程。最后,通过正确的渠道是因为商家可以通过各种途径(如邮寄、Email、电话购物等)与客户交互。对于不同的客户,商家必须保持选择最有效的方式,这样才有助于客户交互。我们所要做的就是,使用数据挖掘工具运用在客户关系管理(CRM)中,利用数据挖掘技术来帮助商家解决同客户交互遇到的各种问题,通过对客户的深入了解,可以确切地估算出利润和投资回报率,可以避免一些不必要的损失,给商家带来了赢利。II本论文主要讨论的是数据挖掘在客户关系管理系统中的应用,运用数据挖掘的相关技术(如粗糙集、关联规则、决策树、遗传算法等),结合销售行业的市场经营分析及CRM系统开发,建立基于数据挖掘的客户关系管理系统客户服务的解决方案,并进行了部分实现。数据挖掘技术在客户关系管理领域中的应用主要有:(1)通过数据挖掘判断客户的价值,即客户细分;(2)通过数据挖掘发掘潜在客户,从而实现交叉销售,提高现有客户的价值;(3)通过数据挖掘分析客户的流失,预防潜在的客户流失;(4)通过数据挖掘保留忠实客户,优化客户关系。我的主要工作就是界面的设计、集成,数据库设计以及数据的预处理,建立基于数据挖掘的客户关系管理系统。在当今竞争激烈的市场环境中,CRM是企业增加生存能力、扩大竞争优势不可或缺的支持。只有能够更好的利用客户信息、满足客户需求,一个企业才能够获得更大的利益。数据挖掘正是指导企业更好地理解客户以及满足客户需求的工具,为用户进行客户关系管理提供决策的参考依据。论文研究具有一定的理论意义和实际应用价值,为客户关系管理提供了一种研究思路和分析方法。关键词:客户关系管理(CRM);数据挖掘(DataMining);界面设计;数据库设计;数据处理1 0 ABSTRACT 1 1 11.2.1VC++6.0编程语言的介绍[2] 11.2.2SQLSever语句介绍[3] 21.2.3数据挖掘(DataMining)[4] 41.2.4客户关系管理(CRM)[5] 4 5 6 6 6 6 6 7 72.1.1粗糙集 72.1.2关联规则 72.1.3决策树 82.1.4遗传算法 8 8 9 2 3.1前言 21 23 23 244.2.1登入界面 24 26 31 33 35 35 355.3模块测试 355.4集成测试 36 36 37 37 37 37 37 37 38 3 39 39ResearchReport 1第一章可行性研究报告1.1项目开发背景本系统主要实现数据挖掘技术(如粗糙集、关联规则、决策树、遗传算法)在客户关系管理中的具体应用,其中粗糙集、关联规则算法由我们组的陈彩琴负责完成实现,决策树、遗传算法由吴海海负责完成实现,而我主要负责实现是界面的设计、数据库设计、数据预处理,把他们几个算法集成起来,建立一个基于数据挖掘的客户关系管理系统。1.2系统设计相关原理该客户关系管理系统使用VC++6.0作为前台开发工具,SQLSever2000作为后台数据库,开发客户机/服务器(Client/Sever,缩写为C/S)的应用程序,此外还运用了Photoshop7.0进行了图片处理。整体设计工程遵循软件工程的原理、技术和方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。下面就对这几中技术和方法做一个概述。1.2.1VC++6.0编程语言的介绍[2]VisualC++是一个功能强大的可视化软件开发工具。它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated编译器、调试器、以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。VisualC++的源程序要求用C++语言编写,它支持面向对象设计方法,并可以使用功能强大的软件基础类库MFC(Microsoftfoundationclass),充分体现了Microsoft公司的技术精华。用VisualC++开发出来的软件稳定性好,可移植性强、而且软件与硬件相互独立。利用VisualC++可以编制各种类型的Windows应用程序,从最简单的单文2档和对话框程序到复杂的多文档和组合界面程序。并且VisualC++作为VisualStudio可视化组件家族中最重要的一个成员,它可以与其他可视化开发工具如VisualBasic、VisualJ++及VisualC#紧密地集成在一起,可进行不同类型的程序开发工作,适用于特殊、复杂和综合软件项目的开发以及系统软件的设计。VisualC++6.0源代码编辑器提供了自动语句完成的功能,编辑输入源程序时,它自动显示当前对象的成员变量和成员函数,并指明函数的参数类型。VisualC++6.0的编译器增加了新的编译参数,改进了对ANSIC++标准的支持,并采用Microsoft的代码优化技术,使生成的目标代码更短小,应用程序运行的速度更快。VisualC++6.0程序调试器功能更强大,它提供了诊断映射机制、无须要重编译的调试、远程调试和实现调试等功能。VisualC++拥有功能强大的MFC(MicrosoftfoundationClassLibrary)类库。MFC主要具有下面的优势:(1)MFC提供了大量的类,把WindowsAPI函数封装在类中。用户使用MFC,可以很方便地开发Windows应用程序,而不必为如何绘制Windows窗口、对话框和菜单等常见用户界面发愁,因为它们都包含在MFC中;(2)因为可以充分利用前人开发的代码,所以缩短了程序的开发周期;(3)使代码具有更好的重要性;(4)使一些复杂的开发技术变得更容易实现,如网络编程和数据库编程等;(5)使用消息映射机制可以避免处理消息时的复杂情形;(6)使用MFC可以提高运行效率。迄今为止,VisualC++可以说是一个功能最强大和使用范围最广泛的软件开发工具。1.2.2SQLSever语句介绍[3]SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle,Sybase,Informix,SQLserver这些大型的数据库管理系统,还是像VisualFoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL3语言作为查询语言。SQL的优点:1.非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。2.统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。SQL为许多任务提供了命令,包括:(1)查询数据(2)在表中插入、修改和删除记录(3)建立、修改和删除数据对象(4)控制对数据和数据对象的存取(5)保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。4如果使用了PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。1.2.3数据挖掘(DataMining)[4]数据挖掘(DM,DataMining)就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在的有用的信息和知识的过程。从商业角度来看,数据挖掘是一种新的信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转化、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。要使数据挖掘在商业中起作用,就要把它与基本的商业活动过程关联起来。数据挖掘是企业同客户打交道的一长串步骤中的一个部分。数据挖掘影响商业活动的方式取决于商业过程,而不是数据挖掘的过程。我们必须所指出的问题是:(1)数据挖掘的结果不同于其他数据驱动的商业活动。(2)数据挖掘抽取的是数据库中不为用户所知的信息。这就需要引进客户交互、情景。处理推销问题的用户要先理解数据挖掘的结果,然后才能把它运用到实际中。在实际应用中,如何使用数据挖掘的输出结果?最简单的办法是把结果看作黑盒。如果用户用黑盒给数据库中的客户评分,就能得到一张客户列表(可以向列表中的客户邮寄商品目录,提高他们的信用度)。用户所要做的只是把信封寄出去,这是非常有效的方法。1.2.4客户关系管理(CRM)[5]客户关系管理(CustomerRelationshipManagement,简称CRM)是选择和管理最有价值客户关系的一种商业策略。CRM要求以客户为中心的商业哲学和企业文化来支持有效的营销、销售以及客户服务。如果企业拥有正确的领导、策5略和企业文化,CRM应用将为企业实现有效的客户关系管理。客户关系管理首先是一种商业策略,它贯穿于企业的各个部门和经营环节,其目的在于理解、预测和管理企业现有的或潜在的顾客。客户关系管理涉及到战略、过程、组织和技术等各方面的变革,以使企业更好地围绕客户来有效地管理自己的经营。我们为什么需要客户关系管理呢?因为大家都知道:(1)获得一个新客户比留住一个老客户要花更多的钱;(2)客户离开后再把他们吸引回来所花的钱要比他们一开始就满意所花的钱(3)将新的商品卖给老客户要比卖给新客户容易得多;(4)有些客户比其他客户更有利可图。有些客户现在是无利可图的,还有一些客户现在和将来都是无利可图的。所以我们要运用新的技术,来改变单一的销售模式,寻求最有利可图的途径建立和维持稳定的客户关系。客户对企业的好感和忠诚不仅来自于企业提供的商品,更来自于服务和经验等非实体因素。企业要了解客户的喜好不仅包括产品,还包括样式和服务的外观。他们要管理每一个客户的关系,从每一个客户身上获取最大利润,降低市场营销费用,减少由于客户离去和无效的营销策略产生的浪费。以上都希望用客户关系管理的方法来实现。1.2.5数据挖掘在CRM中的应用[6]在客户关系管理生命周期的各个阶段都有可能会用到数据挖掘技术。例如,在如何更好地为现有的客户提供服务方面,通过数据挖掘,能够帮助企业确定现有的客户的特点,从而为客户提供有针对性的服务;如何开拓企业新市场,获取新客户方面,通过数据挖掘,可以发现购买每一商品的客户的特征,从而可以向那些具有这些特征却没有购买的客户推销这个商品;如何挖掘现有客户群的潜力,为企业提供更多价值方面,通过数据挖掘,可以分析各个客户对企业带来的赢利能力,找到那些“金牌客户”后提供更加有针对性的服务,同时也可以分析现有客户的兴趣,向他们推荐提供新的产品和服务;在如何保持现有客户群方面,通过数据挖掘,可以找到流失客户的特征,以抢在那些具有相似特征的客户还未6流失之前,就可以采取针对性的措施防止他们的流失;在预测公司未来发展方面,通过数据挖掘,可以预测客户赢利能力的变化,帮助企业提前采取各种对应的措1.3项目可行性评估[7]1.3.1技术可行性评估根据现有的技术,采用VisualC++、SQLSever等技术和工具完全可以快速、高效地实现该系统模型。1.3.2经济可行性评估由于采用VisualC++6.0开发,用VC+ODBC连接数据库的开发方式尽可能地缩短开发周期、节约系统的开发费用,适合大、中型企业,适合远程网络,特别适合小型企业,操作简单、明朗,将会给它们带来丰厚的利润。1.3.3操作可行性评估可以参照其他的软件应用系统,特别适合管理级人员的使用,界面上能实现对客户资料的管理,为用户做出合理的决策,提供了很好的帮助,并尽可能地减少让用户难以操作的方式。1.4项目可行性研究报告纵上所述,从开发的语言、所要运用的工具,到数据挖掘在客户关系管理中应用的价值,都具备了可以开发本系统的要求。而且无论从技术、经济还是操作上,本系统的实现应该没有什么问题的,可以进行对系统的需求分析工作。7第二章系统需求分析要实现一个软件系统,首先应该进行需求分析,这样才能设计出的软件满足用户的各项功能。下面就对客户管理系统的设计进行需求分析。2.1系统需要解决的主要问题首先,该系统主要是面向管理级人员而开发的,并且系统里的资料是企业客户的重要信息,所以用户者必须验证身份才能登入。用户根据不同的级别进入不同的模块,调用各自所需要的信息。本系统由二大模块组成——客户资料管理和客户信息分析,其中客户信息分析里引用了数据挖掘中的四个算法——粗糙集、关联规则、决策树、遗传算法。我所要实现的就是把这几个模块有效地结合起来,组成一个完整的模块,应用到客户关系管理系统中去。在这里,我来介绍以下的几种算法的需求分析。2.1.1粗糙集面对信息化数据的飞速发展,客户资料数据也从数以几十甚至上百GB的容量。这些数据是企业的财富,它如实地记录着企业运作的本质状况。但当客户数量达到一定数量时,企业已无能力对数量以外的人进行同样的销售努力,这就迫切需要一种分析高价值的客户的方法粗糙集算法。它把数据集看作决策表,由用户指定数据库中某一个或多个属性作为分类的类别,并对决策表进行属性约简,根据这些属性的不同取值,将数据库中数据分为不同的类别,并对决策表进行属性约简和值约简,删除冗余的属性和属性值,在决策表中导出决策规则,从而从少量的客户属性资料数据判断谁是高价值客户,谁是低价值客户,在决策过程中应给予不同重视,那将给企业带来了无限商机。2.1.2关联规则公司与其客户之间的商业关系是一种持续的不断发展的关系。这就需要我们8要用关联规则算法,来实现“交叉销售”。交叉销售分析就是从分析现有客户的购买行为数据开始,它是指同时向一位顾客销售多种相关的服务或产品,这是一种发现顾客多种需求,并满足其多种需求的一对一营销方式。交叉销售是建立在“双赢”原则的基础之上的,客户因得到更多、更好符合个性需求的服务而满足,企业也因销售的增长而获益。2.1.3决策树随着行业中竞争愈来愈激烈和获得一个新客户的开支愈来愈大,保持原有客户的工作也愈来愈有价值。比如说,在移动电话行业中,吸引并使一个新客户签约的开支估计为300美元或更多,这其中包括了硬件折旧和销售费用。然而保留一个旧客户的开支可能只是打一个电话或将他们的手机更新到使用最新的技术的那种型号。虽然这也很贵,但比起和一个全新的客户签约还是便宜了许多。如同在这个案例中看到的一样,我们看到可以用决策树来判断客户的流失,这在保留客户的活动中起着重要作用。2.1.4遗传算法自然界的生物体在遗传、变异和选择的相互作用下,优胜劣汰,不断地由低级向高级进化和发展。这种“物竞天择,适者生存”地进化规律实际上表示了一种优化的思想。在客户关系管理系统中,我们所实现的对客户优化的问题,也正是运用了这种思想。遗传算法用于CRM系统中模拟自然界的生物进化过程。它通过数据对客户群分析,运用适者生存的原则,对客户群进行分类,将没有效益的客户群或低效益客户群转化为高效益客户群,同时奖励和发展有效益的客户群。2.2系统应该具备的基本功能(1)用户权限的管理:用户可以根据不同的级别进行不同的管理,管理员可以看到整个系统,而部门管理员只能进行该部门的管理。(2)客户基本资料管理:可以对客户进行增加、修改、删除、还可以进行多种查询功能。9(3)判断客户属性资料:可以对客户属性资料进行管理,对粗糙集算法中的表的数据而进行增加或删除的功能。(4)发掘潜在客户资料:可以对客户与商品之间的关系进行管理,对关联规则算法中的表的数据而进行增加或删除的功能。(5)分析客户流失资料:可以对客户流失资料进行管理,对决策树算法中的表的数据而进行增加或删除的功能。(6)判断客户价值:实现粗糙集算法的应用,对一个客户进行价值判断。(7)发掘潜在客户:实现关联规则算法的应用,用关联规则推出哪些商品是关联的,然后导出哪些是潜在客户。(8)客户流失分析:实现决策树算法的应用,用决策树来判断客户的流失,分析流失的原因。(9)客户价值优化:实现遗传算法的应用,进行客户的优化。除了实现上述功能以外,客户管理系统还应该具有友好、简洁的界面,安全性要高,稳定性要强。2.3数据收集及预处理[4]对于数据挖掘,我们当然需要收集大量的数据,收集了销售业和零售业的数据,还有网上的电线公司的数据,为了操作把这些数据集成于数据仓库中。对于数据挖掘中的算法对其处理的数据集合一般都有一定的要求,比如数据完整性好、数据的冗余性少、属性之间的相关性小。然而,实际系统中的数据一般都具有不完全性、冗余性和模糊性,很少能直接满足数据挖掘算法的要求。另外,海量的实际数据中无意义的数据很多,严重影响了数据挖掘算法的执行效率,而且由于其中的噪声干扰还会造成无效的归纳,所以这就要求我们必须进行数据预处理这一步。数据挖掘中的预处理主要是接受并理解用户的发现要求,确定发现任务,抽取与发现任务相关的知识源,根据背景知识中的约束性规则对数据进行检查,通过清理和归纳等操作,生成供挖掘核心算法使用的目标数据。数据预处理应该包括以下几个方面的功能:1.数据集成(DataIntegration)数据集成主要是将多文件或多数据库运行环境中的异构数据进行合并处理,解决语义的模型性。该部分主要涉及数据的选择、数据的冲突问题以及不一致数据的处理问题。2.数据清洗(DataCleaning)数据清洗要去除原数据集中的噪声数据和无关数据,处理遗漏数据和清洗脏数据,去除空白数据域和知识背景上的白噪声,考虑时间顺序和数据变化等。主要包括重复数据处理和缺省值数据处理,并完成一些数据类型的转换。3.数据变换(DataTransformation)数据变换主要是找到数据的特征表示,用维变换或转换方式减少有效变量的数目或找到数据的不变式,包括规格化、归纳、切换、旋转和投影等操作。4.数据简化(DataReduction)数据简化是在对发现任务和数据本身内容理解的基础上,寻找依赖于发现目标的表达数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下最大限度地精简数据量。它主要有两个途径:属性选择和数据抽样,分别针对数据库中的属性和记录。(1)属性选择包括针对属性进行剪枝、并枝、找方程和找相关属性等操作。(2)数据抽样就是进行数据记录之间的相关性分析,用少量的记录的线性组合来表示大量的记录。2.3.1对各算法中的数据进行预处理(1)对粗糙集数据的进行预处理。首先,Excel表的数据转换到SOLSever中要考虑到数据类型的选择问题,应尽量选择占物理空间较小的数据类型,如在区域范围内用varchar替代CString类型,因为varchar可以灵活的分配所要的空间,对于大规模数据集来说将会大大减少系统开销。对年龄、收入属性的不同取值(区间)数小于对应的属性概化阀值,则应对它们进行概化。如年龄,它的概化阀值设为20,所以小于30岁的,我们设为大于、等于2000为high。由于婚否属性只有两个不同值,所以该属性保留,并且不对其进行概化。同理,性别、是否全职与单位属性也被保留,也不需要进行概化。数据处理前:如2-1所示。表2-1原始数据数据在SQLSever中进行处理以后:如表2-2所示表2-2处理后的数据(2)对关联规则数据的进行预处理。同上,我们在SQLSever里用的数据类型还是varchar,但为了方便对关联规则算法实行,还要对所需要的商品进行符号替换。用I1代表随身听,同理:数据处理前:如表2-3所示表2-3原始数据数据在SQLSever中进行处理以后:如表2-4所示表2-4处理后的数据(3)对决策树数据的进行预处理。同上,我们在SQLSever里用的数据类型还是varchar。对于入网时间、服务时间存在大量不同值,应当进行概化。如入网时间,假定存在概念分层,为了方便算法的运行,可以将它从(年/月/日)概化到年,而年又可以概化到年段,并且年段的不同值(区间)数小于对应的属性概化阀值,则应当对它进行概化。假设入网时间的概化阀值为1,则它的分段为96,97,98,99。同理,服务时间分为三段:小于20,20~50之间,大于50。对年龄、掉线次数属性的只需进行概化。假设年龄概化阀值设为10,则它间,大于2。由于话费类型属性只有两个不同值,所以该属性保留,并且不对其进行概化。同理,性别、手机品牌属性也被保留,也不需要进行概化。数据处理前如表2-5所示,数据在SQLSever中进行处理以后如表2-6所示。表2-5原始数据表2-6处理后的数据2.3.2数据仓库的定义和特性[5]正式的数据仓库定义是W.H.Inmon提出的,它是一个面向主题的、集成的、不同时间的、稳定的数据的集合,它支持管理决策。换句话说,数据仓库包括:(1)一种或多种从任何类型的数据结构(包括平面的、层次的、关系的或对象等类型;包括开发的或专用的,内部的和外部的)中抽取字段的工具;(2)利用数据源“目录”把数据综合到一个稳定的、集成的、面向主题的数据库中;数据仓库应具有的特性:(1)一个用于分析任务的数据库,分析的数据来自多个应用程序;(2)支持少数几个用户长时间的交互操作;(3)它的内容周期性更新(大部分情况是增加数据);(4)它包含当前的和过去的数据,能对信息做历史性的透视分析;(5)包含几个大的数据表;(6)每个查询会频繁产生大的结果集,还包括对整个表的频繁遍历和多个表的联结操作。2.4数据字典数据字典是系统分析阶段的重要文档,它清楚的定义与详细的解释了数据流图上未能详细表达的内容,同时它能够帮助分析员组织数据,是用户交谈的好工具。此外,数据字典记载着每个数据项的关键条目,从中可以检查出各数据元素的详细内容或漏掉的数据元素。本系统中的数据字典主要有:用户表:记录不同的用户,与相对应的部门和密码;客户资料表:记录不同的客户,与相对应的客户个人信息,方便与客户进行沟通、联系;粗糙集表:记录客户的有关属性,从这些属性来进行属性约简和值约简的判关联规则表:记录着客户消费的有关数据记录,买了哪些商品,商品间存在着哪些强关联规则;决策树表:记录着客户消费的类型,分析客户的流失;粗糙集数据测试表:用来检测粗糙集算法的正确性;关联规则数据测试表:用来检测关联规则算法的正确性;决策树数据测试表:用来检测决策树算法的正确性。第三章系统设计3.1前言经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。总体设计的基本目的就是回答“从总体上说,系统应该如何实现?ℽ这个问题。因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后进行详细的设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。3.2基本简介该系统是主要针对于管理类人员使用,分为客户资料管理模块、客户信息分析两大模块。它应该具有稳定性、保密性、方便性和灵活性。系统管理员可以轻松地进行增加、修改、删除和查询客户资料,以及对每个算法所用的表,可以进行增加或删除数据的功能,对客户信息分析的模块也有较好的了解。而部门管理员可以了解到本部门所要的信息,方便查阅、分析信息,为更好地做好销售而3.3系统功能模块结构图根据系统功能的要求,客户关系管理系统主要分为二大模块,即客户资料管理模块、客户信息分析模块。可以将本系统分解成几个功能模块分别设计,功能模块之间的关系图,如图3-1所示。3.4运行环境为了保证系统运行的效率和可靠性,系统服务器端与客户端的要求不能很低。该系统可单机允许,也可适用于内部的局域网。其运行要求如下:客户价值优化客户流失分析发掘潜在客户判断客户价值分析客户流失资料查询发掘潜在客户资料判断客户价值资料客户价值优化客户流失分析发掘潜在客户判断客户价值分析客户流失资料查询发掘潜在客户资料判断客户价值资料客户基本资料修改密码用户信息管理权限限制遗传算法决策数算法关联规则算法粗糙集算法系统管理客户资料管理客户信息分析图3-1系统功能模块图软件环境:操作系统:MicrosoftWindows98及以上版本数据库:采用SQLSever,运行于服务器端硬件环境:服务器CPU:PIII500以上,内存:128M以上客户机CPU:P200MMX以上,内存:32M以上3.5详细分析详细设计阶段的根本目标是确定应该怎么具体地实现所要求的系统,是整个设计过程中最重要的步骤之一。下面就分如下几个部分对系统进行详细设计1)用户的权限限制(2)数据库中表的设计(3)功能模块详细设计。3.5.1用户权限限制管理员:在此系统中可以由若干个管理员,即系统管理员。他们具有一般用户没有的权限,即拥有整个系统的管理,可以看到整个系统的信息,还可以对部门管理员进行添加或删除。一般用户:是相对于部门来讲,即部门管理员。他们只能看到自己部门的信息,分析所要的信息。3.5.2数据库中表的设计1.用户登入表结构表3-1用户登入表各自段说明:(1)UserName字段表示用户所输入的名称,设置为主键,它代表是唯一(2)Pwd字段表示每个用户所对应的密码。(3)User_type字段表示每个用户所属的类型。2.客户信息表结构表3-2客户信息表各字段的说明:(1)Customer_id字段表示客户的ID号,设置为主键,它代表是唯一的。(2)name字段表示客户的名字。(3)address字段表示客户的地址。(4)code字段表示客户的邮编。(5)profession字段表示客户的职位。(6)email字段表示客户的电子邮件地址。(7)phone字段表示客户的电话号码。(8)mobile字段表示客户的手机号码。(9)meet_time字段表示会见客户的时间。(10)contract_name字段表示接待客户的联系人。(11)memo字段表示客户的备注。(12)company字段表示客户所属哪个公司。3.关联规则表结构表3-3关联规则表各字段的说明:(1)TID字段表示客户的ID号,代表每一个客户。(2)Item字段表示每一个客户所买的商品。4.决策树表结构表3-4决策树表Chart3-4DecisionTree各字段的说明:(1)Customer_id字段表示客户的ID号。(2)Sex字段表示客户的性别。(3)Age字段表示客户的年龄。(4)In_time字段表示客户的入网时间。(5)Service_time字段表示客户的服务时间。(6)Drop_number字段表示客户的掉线次数。(7)Pay_way字段表示客户的支付方式。(8)Cost_type字段表示客户的话费类型。(9)Phone_type字段表示客户的手机品牌。(10)Whether_lost字段表示客户的是否流失。5.粗糙集表的结构表3-5粗糙集表各字段的说明:(1)U字段表示客户的ID号。(2)a1字段表示客户的年龄。(3)a2字段表示客户的受教育程度。(4)a3字段表示客户的收入情况。(5)a4字段表示客户的婚姻状况。(6)a5字段表示客户的性别。(7)a6字段表示客户的是否全职。(8)a7字段表示客户的单位属性。(9)d字段表示客户的价值。3.5.3功能模块的详细设计下面对各个功能模块分别进行详细讨论,具体情况详见系统源程序代码。3.4.3.1用户登入模块用户根据自己的密码登入系统,系统根据不同的用户来判别它属于哪个部门,进而判别它拥有哪些权限。3.4.3.2用户信息管理模块管理员可以添加各个不同部门的用户,同时也可以删除不再需要的用户。同时,管理员也可以浏览整个系统中的各种用户。各个用户也可以修改自己的密码。3.4.3.3客户资料管理模块只有管理员才可以进入该模块,可以根据需要对客户资料进行增加、修改、删除,还可以按照不同的需要对客户资料进行查询,方便与客户沟通、联系。管理员还可以对客户信息分析的模块的数据进行增加或删除的权利。3.4.3.4客户信息分析模块客户信息分析模块是整个系统的核心模块,所有的用户都可以进入该模块。它主要实现用数据挖掘的四个算法(粗糙集、关联规则、决策树、遗传算法)在客户关系管理系统中的应用。粗糙集算法实现对客户价值的判断,为客户评分;关联规则算法实现发掘潜在客户,使用交叉销售提高现有客户的价值;决策树算法实现客户流失分析,为保留客户活动而努力;遗传算法实现对客户价值优化,保留忠实客户。第四章系统编码在进行了系统设计以后,就开始进行编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。4.1系统流程图设计整个系统的流程分析图如图4-1所示。否是判断客户价值资料读取用户类型发掘潜在客户资料分析客户流失资料判断客户的价客户基本信息发掘潜在客户分析客户流失客户价值优化帮助文件管理用户信息修改自己的密码修改自己的密码管理部用户图4-1系统流程分析图4.2系统页面显示4.2.1登入界面用户登入界面,如图4-2所示。图4-2用户登入界面这个登入界面实现很简单,但它要调用的SQLSever数据库中的数据表:如表4-1所示。表4-1用户登入表登入界面实现的主要函数代码如下:boolCKHApp::IsEnter(){externCStringalltype;if(count>=3){AfxMessageBox("输入已有三次之多,强迫退出!");returnfalse;}EnterDlgdlg;m_pSet->MoveFirst();if(dlg.DoModal()==IDOK){if(dlg.m_PassWord==""||dlg.m_UserName==""){}while(!m_pSet->IsEOF()){if(user==(CString)m_pSet->m_UserName&&password==(CString)m_pSet->m_Pwd){alltype=(CString)m_pSet->m_User_type;m_pSet->Close();returntrue;}{m_pSet->MoveNext();continue;}}AfxMessageBox("用户和密码可能错误!");m_pSet->Close();}{AfxMessageBox("你要退出吗!");returnfalse;}}全部代码的实现是在VC中,它实现了对进入用户的判别,分别属于哪个部门,进行着哪些权限。用户登入的密码错误不能超过3次,如果超过,系统将会自动关闭。4.2.2进入客户资料管理界面(1)客户基本资料界面客户基本资料界面,如图4-3所示。图4-3客户基本信息界面Fig4-3thePageoftheBasicInformationofClient这个界面的实现同样调用在SQLSever数据库中的数据表:如表4-2所示。表4-2客户信息表Chart4-2ClientInformation客户信息管理界面实现的主要代码如下(以系统中源代码为主):BOOLCKehuDlg::OnInitDialog(){CDialog::OnInitDialog();//TODO:AddextrainitializationhereInitControl();while(!m_pSet->IsEOF()){intnIndex=m_listCustomer.GetItemCount();CStringgetid=(LPCTSTR)m_pSet->m_Customer_id;getid.Format("%d",m_pSet->m_Customer_id);LV_ITEMlvItem;lvItem.mask=LVIF_TEXT;lvItem.iItem=nIndex;lvItem.iSubItem=0;lvItem.pszText=(char*)(LPCTSTR)getid;m_listCustomer.InsertItem(&lvItem);m_listCustomer.SetItemText(nIndex,1,m_pSet->m_name);m_listCustomer.SetItemText(nIndex,2,m_pSet->m_am_listCustomer.SetItemText(nIndex,3,m_pSet->m_code);m_listCustomer.SetItemText(nIndex,4,m_pSet->m_profession);m_listCustomer.SetItemText(nIndex,11,m_pSet->m_company);m_listCustomer.SetItemText(nIndex,5,m_pSet->m_email);m_listCustomer.SetItemText(nIndex,6,m_pSet->m_phone);m_listCustomer.SetItemText(nIndex,7,m_pSet->m_mobile);m_listCustomer.SetItemText(nIndex,8,m_pSet->m_meet_time);m_listCustomer.SetItemText(nIndex,9,m_pSet->m_contract_name);m_listCustomer.SetItemText(nIndex,10,m_pSet->m_memo);m_pSet->MoveNext();}m_pSet->Close();//EXCEPTION:OCXPropertyPagesshoul}只有管理部的人员才可以进入客户基本信息界面,对客户信息进行管理,如增加、删除或修改哪些客户,可以根据不同的要求对客户信息进行查询。要保持与客户良好的沟通,及时反应到信息之中,为以后的销售做更好的服务。(2)判断客户价值资料界面判断客户价值资料界面,如图4-4所示。图4-4判断客户价值资料界面Fig4-4thePageoftheDatumofJudgeClientvalue界面的实现同样要调用在SQLSever数据库中的粗糙集表,见表2-2。这个界面同样也只有管理部的人员才可以进入此界面,它主要是对粗糙集算法所用的表进行管理,可以增加所要的属性或删除多余、重复的属性,来保证粗糙集算法可以更好地进行属性约简和值约简。(3)发掘潜在客户资料界面发掘潜在客户资料界面,如图4-5所示。图4-5发掘潜在客户资料界面Fig4-5thePageoftheDatumofDigtheFutureClient界面的实现同样要调用在SQLSever数据库中的关联规则表:见表2-4。这个界面同样只有管理部的人员才可以进入此界面,它主要是对关联规则算法所用的表进行管理,可以对表里的数据进行增加或删除操作。(4)分析客户流失资料界面分析客户流失资料界面,如图4-6所示图4-6分析客户流失资料界面Fig4-6thePageoftheDatumofAssaytheLapsingClient界面的实现同样要调用在SQLSever数据库中的关联规则表:见表2-6。这个界面同样只有管理部的人员才可以进入此界面,它主要是对决策树算法所用的表进行管理,可以对表里的数据进行增加或删除操作。4.2.3进入客户信息分析界面(1)判断客户价值界面判断客户价值界面,如图4-7所示。图4-7判断客户价值界面Fig4-7thePageofJudgeClientvalue这个界面的实现同样调用在SQLSever数据库中的粗糙集表,见表2-2。判断客户价值界面的实现主要运用粗糙集算法的实现。粗糙集算法根据客户的不同属性来取值,将数据库中数据分为不同的类别,并对表进行属性约简和值约简,删除冗余的属性和属性值,在表中导出决策规则,从而就可以从少量的客户属性资料数据就可以判断是高价值客户或低价值客户,为客户评分,可以进行促销活动,提供了更多的商机。(2)发掘潜在客户界面发掘潜在客户界面,如图4-8所示。图4-8发掘潜在客户界面Fig4-8thePageofDigtheFutureClient界面的实现同样要调用在SQLSever数据库中的关联规则表:见表2-4。发掘潜在客户界面的实现主要是运用关联规则算法来实现。首先,要进行参数设置,对商品总数、支持度、置信度进行设置值。然后,根据这些数据来推出哪些组合商品是哪些客户要买的,由买下的商品导出可能被卖出的商品,在从这些商品中导出潜在客户,根据客户的ID号来查询客户的信息,与客户更好地联系,促进销售。(3)客户流失分析界面客户流失分析界面,如图4-9所示。图4-9客户流失分析界面Fig4-9thePageofAssaytheLapsingClient界面的实现同样要调用在SQLSever数据库中的决策树表,见表2-6。客户流失分析界面的实现主要运用决策数算法来实现。决策数算法根据客户消费的属性来判断一个客户的流失,分析流失的原因,为尽可以的保留客户而努力,因为大家都知道要发展一个新客户所花的费用比留住一个老客户所花的费用要多的多,而且老客户更容易为企业带来利润,所以我们要尽量保持每一个客户。(4)客户价值优化界面客户价值优化价值,如图4-10所示。图4-10客户价值优化界面Fig4-10thePageofprivilegetheValueClient客户价值优化界面的实现主要运用遗传算法的实现。遗传算法要制定一个目标函数,根据它的交叉率和变异率进行优化,迭代计算,算出最优个体。根据它的最佳个体得出,客户关怀频率值与商业交往频率值,从而得出最优化的客户。4.2.4用户信息管理界面用户信息管理界面,如图4-11所示。图4-11用户信息界面只有管理部的人员才可以进入用户信息管理界面,对用户信息进行管理,如增加新用户或删除不再需要的用户,还可以浏览每个用户的信息,属于哪个部门的,但不包括用户的密码。第五章系统测试5.1软件测试[7]软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发现错误而执行的过程。一般分为两个阶段。单元测试是在编完某一模块后进行测试综合测试是在开发完软件后进行综合测试。5.2软件测试的目标与方法G.Myers给出了关于测试的一些规则,这些规则可以看作是测试的目标或定(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。测试任何软件都有两种方法:黑盒测试法和白盒测试法。黑盒测试法(又称功能测试法)是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用。白盒测试法(又称结构测试法)是把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作。通过测试并不能证明程序就是完全正确的,但是我们的目的就是要通过测试保证软件的可靠性,因此,必须仔细设计测试方案,力争用最少的测试发现尽可能多的错误。5.3模块测试模块测试也叫单元测试,它的依据是详细设计描述,模块测试应对模块内所有重要的控制路径设计测试用例。测试环境为Winxp与Win2000。5.4集成测试由于各模块有较强的独立性,所以集成测试比较简单,重点测试了各模块共用的几个变量和与主窗体的接口,并对整体功能进行了测试。5.5系统测试及实现本系统先进行各模块测试,经过修改和调整通过以后,进行总体测试。测试结果各项功能均已经或基本达到设计要求。各主要界面在前面已经给出,可能还会有一些错误,这只有在以后的运行中加以改进。第六章开发难点与解决技巧6.1开发的难点6.1.1各个算法模块间建立每个算法都是相应的是一个独立的模块,通过界面把它们有机地连接在一起,组成一个完整的整体。因为它涉及到与数据库的连接,所以每一部分都需要用到数据库的打开与断开语句,使得每一个模块都可以相应的独立运行。6.1.2界面与数据库的连接界面与数据库的连接,我们运用ODBC的连接方式。ODBC是一个应用广泛的数据库访问编程接口,使用标准的SQL作为其数据库访问语言。ODBC的设计是建立在客户机/服务器体系结构基础之上。它避免了与数据库连接的复杂性。我们只需要安装SQLSever的ODBC的驱动程序,就可以建立应用程序和数据库系统的通信接口,从

温馨提示

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

评论

0/150

提交评论