【摘要】以下是小编精心为您编辑整理的基于数据挖掘客户关系管理设计与研究,供您参考,我们会持续更新,请留意,更多详细内容请点击精品学习网查看。
1 引言
本课题研究的公司其客户的不断增加,为了减少公司的投入以及更有效的利用公司现有的人力资源,将所有客户适当分类势在必行。随着公司客户的不断增加,和客户相关的信息资料也不断增加,这就要求公司投入更多的人力和物力来整理这些庞杂信息资料,而且为了更有效的利用公司现有的人力资源,将所有客户适当分类也势在必行。很显然,如果仅仅依靠传统人工技术,这将是一项非常困难的工作。本文就是选择好的解决方法。
通过公司的mis系统,可以搜集到关于客户的基本信息、客户近段时间内的访谈记录、客户的销售确认单(SO 单)、客户拥有的设备等信息资料。接下来的工作就是如何从这些信息资料中挖掘出公司所需要的知识。我们需要解决的问题如下:
1)用户的根本需要,即用户需要发现什么?2) 用户对现有数据中的哪些属性更加关注?3) 数据挖掘的目的是什么?
2 系统的概要设计
2.1设计目标
需要是发明之母。对每个问题有了一个比较清晰的结论才可以进行以后的工作,才可以保证以后的工作的有用性。期望的结果如下:
1)用户需要对所有客户合理分类,为公司制定各种营销和服务活动打好基础;
2)用户对数据中客户的SO单、访谈记录数量等更加关注;
3)数据挖掘的目的是选择合适的分类算法将公司的客户合理分类。
由上面的问题分析可以分析出用户的需求:用户已经有了一个业务数据库,而且积累了大量的数据,用户希望可以利用这些数据将客户合理分类,以便公司制定各种营销和服务活动,增加销售收入。
2.1数据预处理
数据预处理技术可以改进数据的质量,对挖掘数据进行压缩、归约等处理,从而有助于提高其后的挖掘过程的精度和运行性能。数据预处理包括一些复杂的过程,一般包括数据清理、数据集成、数据变换、数据归约。
1)数据清理。数据清理要去除数据集中的噪声数据和无关数据,处理遗漏数据和清洗脏数据,取出空白数据域和知识背景上的白噪声,考虑时间顺序和数据变化等。主要包括重复数据处理和缺值数据处理,并完成一些数据类型的转换。论文参考。比如,数据库中大量存在null值,这将会影响我们最终的挖掘结果,怎样才能为该属性填上空缺的值呢?我们可以忽略该条记录,也可以使用最可能的值人工填写空缺值,或者使用一个全局常量(或该属性的平均值)填充空缺值。论文参考。
2)数据集成。数据集成主要是将多文件或多数据库运行环境中的异构数据进行合并处理,解决语义的模糊性。该部分主要涉及数据的选择、数据的冲突解决以及不一致数据的处理问题。比如,数据分析者或计算机如何才能确信一个数据库中的customer _id 和另一个数据库中的customer_number 指的是同一实体?通常,我们通过元数据(关于数据的数据)来解决这个问题,这种元数据可以帮助避免模式集成中的错误。
3)数据变换。数据变换主要是找到数据的特征表示,用维变换或转换方法减少有效变量的数目或找到数据的不变式,包括:规格化、归约、切换、旋转和投影等操作。比如,在数据库的客户信息表中并没有设置某个字段来记录客户的访谈记录情况(>=40 或20...40 或<=20),通过SQL 语句也只是能得到该客户的访谈记录的具体数量,这里就必须进行数据变换,将属性数据离散化,以适应数据挖掘的需要。
4)数据归约。有些数据属性对发现任务是没有影响的,这些属性的加入会大大影响挖掘效率,甚至还可能导致挖掘结果的偏差。因此,有效的缩减数据是很必要的。
5)事实表:把所有的度量值合成到一张表中,这张表就是事实表,事实表中存放的是所有用户所关心的数据,分析时通过按不同的维度,查看、翻转、切片数据来得到关心的信息。
6)维度表:维度表存放了事实数据的描述信息,一般包括时间、地点等信息。
3 所选分类算法的研究
3.1决策树的生成
本次数据挖掘的基本算法可以描述如下:
首先确定所要生成的决策树的相关分类 C,如“关键客户”,“主要客户”,“一般客户”,“潜在客户”。
树以代表训练样本的单个节点开始。
如果样本都在属于 C,则该节点成为树叶,并标记该节点的概率权值为1。
否则,算法使用称为“信息增益”的基于熵的度量作为启发信息,选择能够最好的将样本分类的属性。该属性成为节点的“测试”或“判定”属性。
对于测试属性的每个已知的值,创建一个分支,并据此划分样本。论文参考。
算法使用同样的过程,递归的形成每个划分上的样本决策树。一旦一个属性出现在一个节点上,就不会在该分支再次出现。
递归划分步骤当且仅当下列条件之一成立时停止:
1) 给定节点的所有样本都属于C或者都不属于C。此时当前节点成为叶子节
点,并标记该节点的概率权值为1或0。
2) 有剩余属性可以用来进一步划分样本。此时当前节点成为叶子节点,并
标记该节点的概率权值为C类样本在样本中所占比例。
3) 分支test_attribute=ai没有样本。在这种情况下,以样本中的多数类创建一个树叶。
3.2 决策树的剪枝
在决策树构造时,许多分支可能反映的是训练数据中的噪声或孤立点。树剪枝试图检测和剪去这种分支,以提高在未知数据上分类的准确性。通常使用统计度量,剪去最不可靠的分支,这将导致较快的分类,提高树独立于测试数据正确分类的能力,目前剪枝方法主要有以下几种:
1)减小错误修剪法(Reduced Error Pruning):此方法由Quinlan提出。在此方法中,检测决策树中非叶的节点,当此节点被最佳的叶取代而产生的错误数目小于或者等于之前未修剪的决策树的错误数目,则修剪成功;否则修剪失败,放弃修剪。
2)悲观错误修剪法(Pessimistic Error Pruning):此方法同样是由Quinlan提出的。Quinlan发现,当用产生决策树的训练数据来检测错误率时,实际上对错误的估计过于乐观了。
3)基于代价复杂度的修剪法(Cost Complexity Pruning):此方法由Breiman等提出,主要包括:按照一些启发式的方法由原决策树产生一系列子树{T0,T1,T2,……,TL};通过评价以上子树的错误率来选择一个最好的子树以取代原决策树。
4)代价敏感(Cost Sensitive)的决策树修剪方法:上述决策树修剪方法均是通过分析错误率的大小来决定是否进行修剪。对于所有这些错误,假设它们的严重性都是等同的。但在现实生活中,情况并非如此,往往不同的错误具有不同的严重性。
我们可以根据编码所需的二进位位数,而不是根据期望错误率,对树进行剪枝。所得的“最佳剪枝树”使得编码所需的二进位最少。这种方法采用最小描述长度原则。这一原则遵循的理念是最简单的解是最期望的。不想代价复杂性剪枝,它不需要独立的样本集。
3.3由决策树提取分类规则
决策树很容易转换成分类规则,并以IF-THEN 形式的分类规则表示。对从根到树叶的每条路径创建一个规则。沿着给定路径上的每个属性-值对形成规则前件(“IF”部分)的一个合取项。叶节点包含类预测,形成规则后件(“THEN”部分)。IF-THEN规则易于理解,特别是当给定的树比较大的时候。
图1:概念buys computers的决策树,
指出顾客是否购买计算机
沿着由根节点到树叶节点的路径,图1的决策树可以转换成如下的IF-THEN
分类规则:
IF age=”<=30” AND student=”no” THENbuys_computers=”no”
IF age=”<=30” AND student=”yes” THENbuys_computers=”yes”
IF age=” 30...40” THEN buys_computers=”yes”
…… …… ……
3.4 算法的复杂性分析
假设参与分类算法的客户记录数为n,共有分析属性p个,分析属性值为q个ID3 算法扫描每条数据记录q×p 次,若每次扫描数据记录耗费一个单位时间,则法的时间复杂性为 O(n)。
4 系统的详细设计
4.1 系统结构的设计
系统大致可以分成三层:数据层(包括业务数据库和数据仓库)、业务逻辑层、数据展现层。如图2。
图2:系统的层次结构
4.2 业务逻辑层的设计
业务逻辑层同样分为三层:Facade层、BO 层、DAO层。如下图3所示。将业务逻辑层分层的主要目的在于提高系统的重用性、可维护性、可移植性。
图3 业务逻辑层设计
DAO Factory和DAO都属于DAO层,DAO封装访问数据层的所有方法,一般来说,一个DAO只对应一张数据库表,由DAO Factory 实例化不同数据表对应的DAO。将DAO层作为独立的一层的主要优势在于:
1)上层(BO层)在实现对数据层操作时只需要调用该层提供的统一接口,提高了代码的重用性,也大大简化了开发。
2)通过提供操作接口使得该层的功能实现对上层透明,当需要对数据库操作进行修改时,无须修改上层的大量程序文件,而只需修改该层的方法,降低了层与层之间的耦合度,增强了灵活性。
3)该层作为功能独立的一层,可以作为独立组件重用,提高了软件的可复用性。
BO层封装具体的业务操作逻辑,根据不同的逻辑调用不同的DAO方法以取得相应的结果,比如根据权限的大小限定用户可以查看的结果。在BO层可以调用多个DAO,即可以操作多张数据库表。
Facade层对外提供统一的接口,因为在完成一个功能调用的时候可能会涉及到多个BO。为了最小化下层的修改对上层的影响,用户调用的是Facade 层的方法,而不是直接让用户来调用BO 层的方法。Facade 层可以直接调用DAO 层的方法,也可以通过BO层来调用DAO层的方法,这取决于具体的业务需要。
另外,DAO返回的只是相应数据库表的内容(对应Data Object),当需要联合显示多个数据库表的内容时,在Facade 层做相应的数据拼装(由多个Data Object 按需要组合成Facade Data Object),以适应数据展现层的表示需要。这样做一方面提高了系统的安全性,另一方面减小了访问客户端的负担。
5 结束语
数据挖掘的进行不是在设计和建造阶段就可以最终确定的,要经过用户的反复验证和不断改进才可以做到真正满足用户的需要。因此,还存在进一步的工作有待完善。
??数据挖掘出来的知识,只是相对于某一时间的某些数据的,新的数据可能使发现的新知识与原来的知识冲突。
??根据已经有的分类算法分析出的结果,不断优化分类算法和参数值的设置,使挖掘出的结果更加符合用户的需求。
??发掘用户其他需求,建立新的挖掘模型,添加到已有系统中,进一步增强系统的功能。
参考文献:
[1] 李冠乾,许亮. CRM 数据挖掘中关联规则的应用. 昆明理工大学学报-理工版. 2004年2月,第29卷,第1期.
[2] 蔡淑勤,刘至高,梁凯春,王略. 基于Web的CRM应用系统技术支持平台研究. 武汉理工大学学报-信息与管理工程版. 2005年2月,第27卷,第1期.
[3] 黄解军,万幼川. 基于数据挖掘的电子商务策略. 计算机应用与软件. 2004年6月,第21卷,第7期.
以上就是由精品学习网为您提供的基于数据挖掘客户关系管理设计与研究,希望可以更好的帮助到您!!
相关推荐:
下一篇:种苗公司客户关系管理探索