数据挖掘应用20个案例分析?数据挖掘案例分析
大家好,今天来为大家解答数据挖掘应用20个案例分析这个问题的一些问题点,包括数据挖掘案例分析也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
基于数据挖掘的客户流失分析案例
基于数据挖掘的客户流失分析案例
客户挽留在很多行业都是一个备受关注的问题,比如电信、银行、保险、零售等。要做客户挽留就需要对客户流失进行预警、客户流失原因分析、客户满意度或忠诚度研究、客户生命周期研究等相关问题进行深入而全面的分析。例如,对客户的行为特征进行分析,可以了解有多少客户流失,客户是什么时候流失的,以及客户是如何流失的等问题,从而监控客户流失、实现客户关怀。
应用数据挖掘技术可以根据过去拥有的客户流失数据建立客户属性、服务属性和客户消费数据与客户流失可能性关联的数学模型,找出客户属性、服务属性和客户消费数据与流失的关系,给出明确的数学公式或规则,从而计算出客户流失的可能性。
电信行业较早地提出了客户关系管理、关系营销等营销管理模式,学界和企业界的积极参与也推动了客户流失行为的相关研究。电信运营商在多年的业务支持系统建设中,积累了大量的历史业务数据,这些数据涉及到用户话单、通信计费、客户交费、市场营销、业务收入等各个方面,它们不仅是历史记录的呈现,同时还蕴含了客户的消费模式,客观上就为数据挖掘提供了丰富的素材。对于运营商来说,成熟有效的管理模式和技术可以更好地进行客户管理,提高用户的粘性才是硬道理。
建立流失模型可以解决由于客户离网导致的市场份额减少、营销成本增加、收入降低等问题,提高挽留成功率,降低离网率,降低挽留服务成本,减少由于客户离网所带来的收入损失。对客户按照流失倾向评分,产生最可能流失客户的名单,再由运营商对其进行挽留,把损失降到最低。
客户流失分析大致步骤主要分为以下四步:
一是寻找关键因子,比如探索用户离网的影响因素,根据影响因素判断用户离网发生的概率。通过研究现有套餐产品客户在呼叫通话、业务使用等各方面的行为特征,找到关键影响因子;
二是构建预测模型:采用数据挖掘监督类模型技术,训练得到潜在客户预测模型,用于预测将会选择该类套餐产品的潜在流失用户群,并以概率形式量化之。如果已经建立了Logistic回归模型,则可以根据模型,预测在不同的自变量情况下,客户流失的概率有多大;
三是判别:实际上跟预测有些类似,根据Logistic模型,判断客户有多大的可能性将会流失。这种技术与线性回归类似,只是用分类目标字段代替了数值字段,而在目标含有两个截然不同的类别时可以使用二项模型;
四是推送营业前台:通过营销管理平台,直接将高概率产品目标流失客户群推送到营业厅、短信及网站、社区经理等营销渠道,将挽留策略和产品在合适的时间、以合适的语言推荐给合适的客户,从而赢得营销。
客户流失模型需要完成两个方面的任务,即分析流失客户的特征,导致客户流失的因素及客户流失在这些因素上的分布情况,还有就是得出潜在的流失客户群。
客户流失预测包括决策树、神经网络和Logistic回归等研究方法,下面就通过一个利用二项Logistic回归预测电信客户流失的实例,为大家介绍一种可用的客户流失模型,为运营商的客户关系管理提供有益的借鉴,也为其他行业的客户流失分析提供挖掘思路。
客户流失的几个因素,主要有:客户基本信息,包括年龄、性别、邮编、地址等;客户档案,包括手机号、付费方式、停机日期、入网时长、工龄、是否使用租用设备、是否使用电话卡业务、是否使用语音;客户账户,包括服务、是否使用互联网等;计费信息,包括拨打电话数、付费总额、欠费总额等。
智能软件对于未来数据挖掘影响的文献
智能软件:数据挖掘的未来
Ahmed E. Hassan
皇后大学
计算机学院
金士顿(Kingston),安大略(Ontario),加拿大(Canada)
ahmed@cs.queensu.ca
Tao Xie
北卡罗来纳州立大学
计算机科学系
罗利(Raleigh),北卡罗来纳州(NC),美国(USA)
xie@csc.ncsu.edu
摘要
在过去的十年中,软件工程数据挖掘已经成为了一个成功的研究方向。站在本文的立场,我们主张把智能软件(SI)作为未来软件工程数据挖掘的发展方向,并同时应用在现代软件工程的研究,实践和教学当中。我们提出智能软件这个名词,来源于基于事实的提供创新理念,技术支持和商业决策的商务智能系统(BI)的灵感。同样,智能软件为软件从业人员(不只是开发人员)提供实时的相关信息,以支持他们的日常决策。智能软件应该在软件系统的整个生命周期提供决策支持,而不仅仅是在开发阶段。
智能软件在现代软件工程实践中对软件工程的研究造成巨大影响的愿景并没有实现。然而,智能软件在软件库数据挖掘(MSR)领域所展现出的优势对未来对于智能软件的认可提供了极大的保证。本文总结了智能软件在研究和实践中的现状,并且陈述了应用智能软件进行数据挖掘的未来研究方向。
分类和主题描述
[软件工程]:分布,维护和提高
通用术语
文件,经济学,实验,人为因素,管理,衡量,可靠性,核实
关键词
智能软件,软件工程数据挖掘,软件档案库挖掘
1.简介
许多软件中心都被一些日常的问题和决策所困扰(比如:什么时候发布一个软件系统?软件系统的哪些部分需要修改?系统的哪些部分需要测试?谁会用到这些功能?谁了解这些功能?)。不幸的是,现如今许多关于软件系统的决定都是基于直觉。决定软件系统什么时候发布,系统的某个部分是否要修改或重新编写,或者软件的哪个部分需要彻底的测试是一种艺术,而不是一门学科。随意的决策导致了资源的浪费,以及大型复杂软件系统构建和维护的费用增加。
软件从业人员迫切地需要我们所提到的智能软件。商业智能通过基于实际的系统提供理念和技术来提高商务决策的质量,智能软件为软件从业人员提供实时的相关信息,来支持他们的日常决策。智能软件为软件从业人员具体的有依据的观点,以让他们可以回答关于软件系统的关键问题。使用人员,维护人员和软件的开发人员可以通过智能软件做出长期或者短期的战略规划。此外,智能软件能让公司对他们软件的潜力和限制有一个更好的了解。
在过去的十年中,软件工程数据挖掘已经成为了一个研究方向。这项研究已经在探索和实践上取得了大量的成功。站在本文的立场,我们主张把智能软件(SI)作为未来软件工程数据挖掘的发展方向,并同时应用在现代软件工程的研究,实践和教学当中。
智能软件的愿景并没有变为现实。然而,因为软件工程的研究目的在于它对现代软件系统的联系和影响,智能软件在软件库数据挖掘(MSR)领域所展现出的优势对未来对于智能软件的认可提供了极大的保证。本文总结了智能软件在研究和实践中的现状,并且陈述了应用智能软件进行数据挖掘的未来研究方向。
2.现状
以前的经验和主导模式,极大地影响着现代软件组织的决策。软件从业人员在作出重大决策时经常依靠他们的经验和直觉。管理者在分配开发和测试的资源时同样基于他们在之前项目中的经验,以及直觉上对于当前项目和以前项目复杂性的对比。开发人员通常依据他们的经验增加新功能或者修复漏洞。测试人员经常根据字段和错误报告对已知容易出现错误的部分优先测试。
由于许多高级工程师根据直觉作出决策,智能软件在实际中的应用甚少。然而,这样的开发人员的职业发展道路具有局限性,而且随着系统使用年限的增加和人员的流动,这种局限性将显现的更加明显。此外,目前对于文献信息的努力在实践中非常有限。根本上来讲,非专业的维基网站被当作知识库来使用,电子表格和幻灯片被作为做出决策的依据。
3.研究的现状
在过去的十年中,软件库数据挖掘已经成为一个研究方向。这项研究在科研和实践上都取得了实质性的成功。软件库数据挖掘(MSR)[16,14,17,19,29,31]领域是这项研究的一个实例。软件库数据挖掘通过对软件库中海量数据的分析,来发现对系统和项目有用的信息。以下是软件库的例子:
历史信息库:比如源代码控制库,错误记录库,项目进行过程中的信息记录
实时库:比如包含一个软件系统在单个站点或者多个站点执行的有效信息的日志
代码库:比如Sourceforge.net, Google code,和 Codeplex.com,这些网站包含了一个开发团队所开发的多个软件系统的源代码。
软件库包括了大量有用的项目信息。在使用这些信息的时候,软件从业人员可以较少的依赖自己的直觉和经验,较多地依靠历史数据。历史资料库撷取项目产品之间重要的历史依赖关系,比如函数,文档文件和配置文件。开发人员可以把这些信息延伸到相关的产品,而不仅仅是使用静态和动态代码间的依赖关系。后者可能无法获得重要的依赖关系。例如,把数据写入文件的代码的变化,可能会引起从文件读出数据的代码的变化,虽然这两段代码之间没有传统意义上的依赖关系(例如数据和工作流)。运行时库可以通过对首要执行模式和部署模式是否偏离的确认,用来指出执行的异常。代码库可以通过对多个项目API使用模式或者资料库的挖掘,来确认正确的框架和API的使用模式。
然而软件库在实际应用中通常被用作保存记录,很少用于决策支持。例如,历史资料库通常用来跟踪一个错误或者一个功能的历史,但是很少基于以往对于错误修复的时间对现有问题需要修复的时间做出判断。
软件库数据挖掘领域是在众多应用智能软件的领域中,发展前景最为广阔的领域之一。我们可以通过把这些静的记录转变为“活”的信息,为现代软件项目做出决策指导。例如,传统上把代码存档的源代码控制库,可以与错误记录库相关联,用来帮助从业人员记录和交流复杂的变化,并且基于之前的修改和错误,当出现有风险的代码时对他们进行警告。
智能软件在软件库数据挖掘领域的应用要归功于丰富,广泛和随时可用的软件库。表1列出了几个可能用于数据挖掘的软件库的描述。图1展示了可以被挖掘的数据的例子(第一列),通过对第一列中列出的每种软件工程数据应用数据挖掘算法(第三列)的软件工程任务(中间列)的例子。
4.智能软件的实现
接下来我们着重提出需要软件库数据挖掘研究人员和软件工程研究人员共同注意的一些领域,以确保软件库数据挖掘领域能够为智能软件的发展作出充分的贡献。对每个我们认为有巨大潜力的领域,我们简单地描述它的现状和发展前景。
4.1项目生命周期中的智能软件
现状在2004至2008年间的软件库数据挖掘工作会议和研讨会上对于当前出版物的分析显示,大部分的出版物(大于80%)把注意力集中于源代码和错误关联库。部分原因可能是由于旧的错误记录库和源代码控制库仍然可用,而且源代码和错误报告结构合理,易于用来做自动分析和处理。对于软件库数据挖掘出版物的研究也表明,由于可用性的局限性,文档资料库很少被用来研究。总之,过去的软件工程数据挖掘出版物着重挖掘源代码和错误关联库,通常致力于促进软件项目生命周期编码阶段的任务,受益的主要是开发人员。
未来方向要实现智能软件,未来软件库数据挖掘的工作应该着眼于更高的位置,而不仅仅局限于作为软件项目生命周期中一小部分的编码阶段。项目经理,测试人员,部署人员和技术支持团队,都是软件系统的涉众,他们都需要智能软件的支持。以往的过分注重于开发阶段的软件库数据挖掘工作是不正确的,并且限制了智能软件对整个软件产业的影响。此外,软件库数据挖掘的研究成功和创新应该纳入涉众日常的工作环境中,包括但不仅仅局限于集成开发环境。
4.2智能软件在非历史数据库中的应用
现状软件库数据挖掘领域开始于对历史数据库,如源代码控制库和错误记录库的研究。因此,似乎有一个错觉,认为所有的软件库数据挖掘都是针对历史数据源(或数据库)的。这个错觉需要被解决,来帮助智能软件实现其全部潜力。我们认为:软件库数据挖掘和软件工程数据挖掘的意义是相同的:软件库数据挖掘是关于挖掘软件工程中任何类型的数据的(例如,执行日志[18],整个互联网上散落的代码段[23,24,20],和API文档资料[32]),即使这些数据没有明确地存在于某个“库”中。
未来方向要实现智能软件,未来软件库数据挖掘的工作应该着眼于更高的位置,而不仅仅局限于储存在库中的传统类型的软件工程数据。一些新兴的数据类型,包括集成开发环境下的交互数据和工具,开发会议记录(甚至是录音和对口语的识别),技术支持电话记录,和网上软件产品发布信息。这些类型的数据可能是实时流的数据,而且由于过大或者隐似问题而不能储存在库中。事实上,由于越来越多的相对私人的信息正在变的可用,隐私问题需要引起整个软件工程研究的关注。
此外,需要特别注意在研究和实践中提高数据收集。现有的数据收集方法主要依赖于大数搜索,这将可能导致噪声数据的出现。未来软件库数据挖掘的工作应该致力于提高库和集成开发环境的设计,以便更容易地收集数据。一些现代的集成开发环境,如IBM Jazz[3]和Microsoft Visual Studio Team Foundation Server [4],都在引领着正确的发展方向(允许在明确的产品中查找,而不是在噪声数据中挖掘)。然而,为数据挖掘创造更高质量的数据需要大量的工作。然而,随着智能软件领域的成熟,我们希望创造一种新的角色,来负责维护和规划软件项目库中的各种类型的数据。这些人员将确保高质量的数据存储在这些库中,并且可以使用多年。
最后,同时在多个数据源中挖掘数据是一个机遇,即使在异构数据,比如错误报告的文本数据,和测试失败的执行数据之间执行。
4.3智能软件被用作高效的数据挖掘技术
现状以往的软件库数据挖掘工作主要是采用现成的数据挖掘(DM)算法(比如关联规则挖掘算法和频繁项集挖掘算法[15]),或工具(比如Weka [18])。当这些软件库数据挖掘的研究人员在软件工程的数据上应用这些挖掘算法的时候,他们经常不得不降低他们的需求,以迎合现有的挖掘算法和工具所能提供的服务。
未来方向要实现智能能软件,未来的软件库数据挖掘工作在如下领域要遵循问题驱动的方法:(1)实地调查在软件工程领域的问题,(2)找出解决这些问题的数据挖掘需求,(3)从数据挖掘组织采纳或接受高级的挖掘算法[9],或者开发新的挖掘算法[26,25]来满足数据挖掘的需求。事实上,为软件库数据挖掘的需求开发一种新的算法,对于软件工程的研究人员是一项很大的挑战。一种可能的解决方法是与数据挖掘的研究人员合作。另一种可能的解决办法是通过预处理输入数据,或者后置处理数据挖掘模式,来适应现有的数据挖掘算法。
4.4智能软件在实践中的应用
现状 Coverity公司[1]和Pattern Insight公司[5]的一些成功的产品已经集成了基于软件工程数据挖掘的思想和创新。这些产品被世界各地的从业人员所使用。使智能软件依赖于现有的可用的库(比如历史变更库,代码执行日志),在智能软件创新实验上的花费和阻碍相对于其他软件工程技术创新(比如便捷开发和极限编程)要低得多。总之,如果公司有一个这样的库,可以非常容易地进行数据挖掘。
未来方向为了使智能软件得到广泛的接受,我们必须首先考虑智能软件将在什么层面提供支持。例如,智能软件可以帮助从业人员在小的问题上做出决策(审查某个特定的变更),或者大的问题(比如系统某个部分的重新设计)。智能软件所提供的支持越具体,越有针对性,就越容易被采纳。在整个管理链条中,需要越少的许可和花销,智能软件的提议就越容易被遵循(比如,审查修改还是重新设计某个组件)。
其次,我们要确保智能软件技术是直观的,并且智能软件的结果要易于描述。直观和易于理解是关键,甚至比高性能更为重要,因为一个主要的障碍是:没有人希望他们的业务在一个未知的系统里运行。虽然一些数据挖掘技术[15]已经提供了易于理解的挖掘结果,公司仍然希望结果能够变得更加详尽。此外,在理解数据挖掘的结果和挖掘出的数据上使用有效的工具,将有利于智能软件的结果在开发人员和管理者之间的交流。
5.结论
利用在商务智能领域取得的成就和经验教训,更多的理论需要被提出。在许多方面,智能软件就是软件公司的商务智能。我们应该深入探索,是否可以将出售软件决策作为传统商务智能平台的一部分,因为软件正在越来越多的商务中扮演一个重要的角色,而且软件商务也是商务的一种。我们可以探讨,我们是否能用利用传统的商务智能平台。例如,IBM当前的产品Rational Insight[2],就是利用Cognos商务智能平台为项目管理者提供智能软件。在商务智能的基础上构建智能软件体系将更易于被接受,因为商务智能的基础更为成熟和高级,而且已经被许多大型组织所认可。
我们认为,智能软件不只对软件从业人员,也为软件工程研究人员提供支持。例如,智能软件可以为现有的研究方向提供支持,并有助于实现软件工程的自动化。我们设想,数据选择(基于数据挖掘的结果)和数据挖掘(基于产生的数据)之间有一条协同的反馈回路。当前的软件测试工作[30,11]已经在开始研究这个回路的概念,也就是所说的机器学习中的主动学习[12]。
智能软件将在研究结果的评估上担当越来越重要的角色。研究项目和论文可以而且应该根据他们对智能软件的应用能力进行评估。而且他们必须向从业人员展示真实的价值。在软件库数据挖掘领域,一些新兴的公司(在软件库数据挖掘的学术研究上成立的),比如Coverity[1],Pattern Insight[5],和Tasktop[7],已经展示了智能软件在生产实践中的巨大价值。我们期待着出现更多这种技术交流和智能软件的成功案例。
我们强调智能软件在实际中的应用,而不应该停滞在长远的研究上面。例如,智能软件将为研究人员和从业人员提供事实的依据,来帮助他们寻找先进的途径,比如新的编程语言和工具,并且根据事实决定是否采纳他们,而不是根据直觉。我们设想,智能软件将成为一个各种软件工程研究理论的通用平台。
致谢
Ahmed E. Hassan is the NSERC RIM Industrial Chair in Software Engineering. Tao Xie’s work is supported in part by NSF grants CNS-0716579, CCF-0725190, CCF-0845272, CCF-0915400, CNS- 0958235, an NCSU CACC grant, ARO grant W911NF-08-1-0443, and ARO grant W911NF-08-1-0105 managed by NCSU SOSI.
图1-数据,数据挖掘算法,和软件工程任务[31]
软件工程数据—
程序段:执行/静态线程,协同变更等
图:动态图/静态调用图,依赖图等
文本:错误报告,邮件,代码注释,文档资料等
挖掘算法—
关联算法,频繁项集算法/子序列法/偏序挖掘法,字段匹配法/聚类法/分类法等
频繁子图挖掘算法,图匹配法/聚类法/分类法等
文本匹配法/聚类法/分类法等
软件工程任务—
编程,维护,错误检测,调试等
错误检测,调试等
维护,错误检测,调试等
表1:软件库的例子
源代码控制库:这些库记录项目的开发历史。它们跟踪与所有改变相关联的源代码的变化,例如,做出变更的开发人员的姓名,更改的时间,和一个简短的描述。源代码控制库是软件项目中最常用的库。CVS, subversion, Perforce, ClearCase,和 Git,都是实践中被用到的源代码控制库的例子。
错误记录库:这些库跟踪大型软件项目中开发人员和用户提出的错误报告以及功能需求的解决方案。
通讯记录库:这些库记录软件生命周期中所有关于软件项目的讨论。邮件列表,电子邮件,网络会议,即时信息,都是一个项目通讯记录的例子。
部署日志:这些库对一个软件系统或不同系统的单一部署信息进行记录。例如,部署日志可以记录一个系统在不同站点的错误信息。部署日志的使用仍在快速地增长,因为它在远程问题解决上的使用(远程上传工具的冲突),和现代法律的规定。例如,2002年,塞班斯法案规定,电信和金融业的活动信息必须要进行记录。
代码库:这些库把大量项目的源代码进行存档。Sourceforge.net和Google code都是大型代码库的例子。
商业领域数据挖掘是如何诞生的
20世纪90年代,随着数据库系统的广泛应用和网络技术的高速发展,数据库技术也进入一个全新的阶段,即从过去仅管理一些简单数据发展到管理由各种计算机所产生的图形、图像、音频、视频、电子档案、Web页面等多种类型的复杂数据,并且数据量也越来越大。
数据库在给我们提供丰富信息的同时,也体现出明显的海量信息特征。信息爆炸时代,海量信息给人们带来许多负面影响,最主要的就是有效信息难以提炼,过多无用的信息必然会产生信息距离(信息状态转移距离)是对一个事物信息状态转移所遇到障碍的测度,简称DIST或DIT)和有用知识的丢失。
这也就是约翰·内斯伯特( John Nalsbert)称为的“信息丰富而知识贫乏”窘境。因此,人们迫切希望能对海量数据进行深入分析,发现并提取隐藏在其中的信息,以更好地利用这些数据。
但仅以数据库系统的录入、查询、统计等功能,无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势,更缺乏挖掘数据背后隐藏知识的手段。正是在这样的条件下,数据挖掘技术应运而生。
扩展资料
数据挖掘过程模型步骤主要包括定义问题、建立数据挖掘库、分析数据、准备数据、建立模型、评价模型和实施。下面让我们来具体看一下每个步骤的具体内容:
(1)定义问题。在开始知识发现之前最先的也是最重要的要求就是了解数据和业务问题。必须要对目标有一个清晰明确的定义,即决定到底想干什么。
比如,想提高电子信箱的利用率时,想做的可能是“提高用户使用率”,也可能是“提高一次用户使用的价值”,要解决这两个问题而建立的模型几乎是完全不同的,必须做出决定。
(2)建立数据挖掘库。建立数据挖掘库包括以下几个步骤:数据收集,数据描述,选择,数据质量评估和数据清理,合并与整合,构建元数据,加载数据挖掘库,维护数据挖掘库。
(3)分析数据。分析的目的是找到对预测输出影响最大的数据字段,和决定是否需要定义导出字段。如果数据集包含成百上千的字段,那么浏览分析这些数据将是一件非常耗时和累人的事情,这时需要选择一个具有好的界面和功能强大的工具软件来协助你完成这些事情。
(4)准备数据。这是建立模型之前的最后一步数据准备工作。可以把此步骤分为四个部分:选择变量,选择记录,创建新变量,转换变量。
(5)建立模型。建立模型是一个反复的过程。需要仔细考察不同的模型以判断哪个模型对面对的商业问题最有用。先用一部分数据建立模型,然后再用剩下的数据来测试和验证这个得到的模型。
有时还有第三个数据集,称为验证集,因为测试集可能受模型的特性的影响,这时需要一个独立的数据集来验证模型的准确性。训练和测试数据挖掘模型需要把数据至少分成两个部分,一个用于模型训练,另一个用于模型测试。
(6)评价模型。模型建立好之后,必须评价得到的结果、解释模型的价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,需要进一步了解错误的类型和由此带来的相关费用的多少。
经验证明,有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立中隐含的各种假定,因此,直接在现实世界中测试模型很重要。先在小范围内应用,取得测试数据,觉得满意之后再向大范围推广。
(7)实施。模型建立并经验证之后,可以有两种主要的使用方法。第一种是提供给分析人员做参考;另一种是把此模型应用到不同的数据集上。
好了,文章到这里就结束啦,如果本次分享的数据挖掘应用20个案例分析和数据挖掘案例分析问题对您有所帮助,还望关注下本站哦!