接前面系列4篇:
数据挖掘有很多不同的实施方法,如果只是把数据拉到Excel表格中计算一下,那只是数据分析,不是数据挖掘。本文主要讲解数据挖掘的基本规范流程。CRISP-DM和SEMMA是两种常用的数据挖掘流程。
数据挖掘的一般步骤
从数据本身来考虑,数据挖掘通常需要有信息收集、数据集成、数据规约、数据清理、数据变换、数据挖掘实施过程、模式评估和知识表示8个步骤。
步骤(1)信息收集:根据确定的数据分析对象,抽象出在数据分析中所需要的特征信息,然后选择合适的信息收集方法,将收集到的信息存入数据库。对于海量数据,选择一个合适的数
据存储和管理的数据仓库是至关重要的。
步骤(2)数据集成:把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。
步骤(3)数据规约:如果执行多数的数据挖掘算法,即使是在少量数据上也需要很长的时间,而做商业运营数据挖掘时数据量往往非常大。数据规约技术可以用来得到数据集的规约表示,它小得多,但仍然接近于保持原数据的完整性,并且规约后执行数据挖掘结果与规约前执行结果相同或几乎相同。
步骤(4)数据清理:在数据库中的数据有一些是不完整的(有些感兴趣的属性缺少属性值)、含噪声的(包含错误的属性值),并且是不一致的(同样的信息不同的表示方式),因此需要进行数据清理,将完整、正确、一致的数据信息存入数据仓库中。不然,挖掘的结果会差强人意。
步骤(5)数据变换:通过平滑聚集、数据概化、规范化等方式将数据转换成适用于数据挖掘的形式。对于有些实数型数据,通过概念分层和数据的离散化来转换数据也是重要的一步。
步骤(6)数据挖掘过程:根据数据仓库中的数据信息,选择合适的分析工具,应用统计方法、事例推理、决策树、规则推理、模糊集,甚至神经网络、遗传算法的方法处理信息,得出有
用的分析信息。
步骤(7)模式评估:从商业角度,由行业专家来验证数据挖掘结果的正确性。
步骤(8)知识表示:将数据挖掘所得到的分析信息以可视化的方式呈现给用户,或作为新的知识存放在知识库中,供其他应用程序使用。
数据挖掘过程是一个反复循环的过程,每一个步骤如果没有达到预期目标,都需要回到前面的步骤,重新调整并执行。不是每件数据挖掘的工作都需要这里列出的每一步,例如在某个工作
中不存在多个数据源的时候,步骤(2)便可以省略。步骤(3)数据规约、步骤(4)数据清理、步骤(5)数据变换又合称数据预处理。在数据挖掘中,至少60%的费用可能要花在步骤(1)信息收集阶段,而其中至少60%以上的精力和时间花在了数据预处理过程中。
几个数据挖掘中常用的概念
除了之前我们提到的分类,还有一些概念是我们在数据挖掘中常用的,比如聚类算法、时间序列算法、估计和预测以及关联算法等。我们将在本节中介绍几个常用概念以加深读者对数据挖
掘的理解。
聚类
所谓聚类,就是类或簇(Cluster)的聚合,而类是一个数据对象的集合。
和分类一样,聚类的目的也是把所有的对象分成不同的群组,但和分类算法的最大不同在于采用聚类算法划分之前并不知道要把数据分成几组,也不知道依赖哪些变量来划分。
聚类有时也称分段,是指将具有相同特征的人归结为一组,将特征平均,以形成一个“特征矢量”或“矢心”。聚类系统通常能够把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(Subset),这样在同一个子集中的成员对象都有相似的一些属性。聚类被一些提供商用来直接提供不同访客群组或者客户群组特征的报告。聚类算法是数据挖掘的核心技术之一,而除了本身的算法应用之外,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。
下图是聚类算法的一种展示。图中的Cluster1和Cluster2分别代表聚类算法计算出的两类样本。打“+”号的是Cluster1,而打“○”标记的是Cluster2。
在商业中,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体,并且概括出每一类消费者的消费模式或者消费习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层次的信息,或者把注意力放在某一个特定的类上以作进一步的分析并概括出每一类数据的特点。
在商业中,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体,并且概括出每一类消费者的消费模式或者消费习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层次的信息,或者把注意力放在某一个特定的类上以作进一步的分析并概括出每一类数据的特点。
聚类分析的算法可以分为划分法(Partitioning Methods)、 层次法(Hierarchical Methods)、基于密度的方法(Density-Based Methods)、基于网格的方法(Grid-Based Methods)和基于模型的方法(Model-Based Methods)等。
比如,下面几个场景比较适合应用聚类算法,同时又有相应的商业应用:
哪些特定症状的聚集可能预示什么特定的疾病?
租同一类型车的是哪一类客户?
网络游戏上增加什么功能可以吸引哪些人来?
哪些客户是我们想要长期保留的客户?
聚类算法除了本身的应用之外还可以作为其他数据挖掘方法的补充,比如聚类算法可以用在数据挖掘的第一步,因为不同聚类中的个体相似度可能差别比较大。例如,哪一种类的促销对客户响应最好?对于这一类问题,首先对整个客户做聚集,将客户分组在各自的聚集里,然后对每个不同的聚集,再通过其他数据挖掘算法来分析,效果会更好。
后面的文章中我们还会详细介绍聚类算法是如何实现的。本文中多次提到的RFM模型也是基于聚类算法的数据挖掘模型。而在营销领域的客户关系管理中,RFM聚类模型也是最经常被使用的一种模型。
估测和预测
估测(Estimation)和预测(Prediction)是数据挖掘中比较常用的应用。估测应用是用来猜测现在的未知值,而预测应用是预测未来的某一个未知值。估测和预测在很多时候可以使用同样的算法。估测通常用来为一个存在但是未知的数值填空,而预测的数值对象发生在将来,往往目前并不存在。举例来说,如果我们不知道某人的收入,可以通过与收入密切相关的量来估测,然后找到具有类似特征的其他人,利用他们的收入来估测未知者的收入和信用值。还是以某人的未来收入为例来谈预测,我们可以根据历史数据来分析收入和各种变量的关系以及时间序列的变化,从而预测他在未来某个时间点的具体收入会是多少。
估测和预测在很多时候也可以连起来应用。比如我们可以根据购买模式来估测一个家庭的孩子个数和家庭人口结构。或者根据购买模式,估测一个家庭的收入,然后预测这个家庭将来最需要的产品和数量,以及需要这些产品的时间点。
对于估测和预测所做的数据分析可以称作预测分析(Predictive Analysis),而因为应用非常普遍,现在预测分析被不少商业客户和数据挖掘行业的从业人员当作数据挖掘的同义词。
我们在数据分析中经常听到的回归分析(Regression Analysis)就是经常被用来做估测和预测的分析方法。所谓回归分析,或者简称回归,指的是预测多个变量之间相互关系的技术,而这门技术在数据挖掘中的应用是非常广泛的。
决策树
在所有的数据挖掘算法中,最早在 http://blog.niubua.com/一小时了解数据挖掘③:详解大数据挖掘の分类技/ 提到的决策树可能是最容易让人理解的数据挖掘过程。决策树本质上是导致做出某项决策的问题或数据点的流程图。比如购买汽车的决策树可以从是否需要2012年的新型汽车开始,接着询问所需车型,然后询问用户需要动力型车还是经济型车等,直到确定用户所最需要的车为止。决策树系统设法创建最优路径,将问题排序,这样,经过最少的步骤,便可以做出决定。
据统计,在2012年,被数据挖掘业者使用频率最高的三类算法是决策树、回归和聚类分析。而且因为决策树的直观性,几乎所有的数据挖掘的专业书籍都是从某一个决策树算法开始讲起的:如ID3/C4.5/C5.0,CART,QUEST,CHAID等。
有些决策树做得很精细,用到了数据大部分的属性,这时,我们可能闯入了一个误区,因为在决策树算法上我们需要避免的一个问题是把决策树构建得过大,过于复杂。过于复杂的决策树往往会过度拟合(Over-Fitting),不稳定,而且有时候无法诠释。
这时我们可以把一棵大的决策树分解成多棵较小的决策树来解决这一问题。
我们来看一个商用的决策树实例。下图中展示的是用IBM SPSS Modeler数据挖掘软件构建的一棵决策树,是美国商业银行用以判断客户的信用等级的决策树模型。
上图是根据收入、信用卡数量和年龄构建的决策树,并以80%的准确率作为划分的阈值。第一个分支查的是收入,设立了两个关键数据分隔点,按照收入把人群先划分成3组:低收入、中等收入和高收入。其中低收入的节点直接变成叶子节点,这组人中82.0976%的人的信用等级是差的(Bad),而且信用卡个数或者年龄对信用等级的分类没有帮助。决策树的第二层判断是根据已经拥有的信用卡个数。以此作为判断,高收入人群可以再做划分。其中拥有卡个数在5个或以上的82.4176%信用等级是优质的(Good),而拥有卡的数量在5张以下的,高达96.8944%的人信用等级是优质的。因为这棵树一共有6个叶子节点,所我们最终划分出6组人群,其中有一组信用等级为优质的人群占比56.3147%,是无法判断的。其中在数据上表现最好的是高收入而信用卡个数在5张以下的人,把他们判断为优质信用等级有96.8944%的准确率。
如果我们手里还有别的数据,比如是否有房有车,是否结婚等,那么通过测试,可以进一步提高这棵决策树的精度。
CRISP-DM
1999年,在欧盟(European Commission)的资助下,由SPSS、DaimlerChrysler、NCR和OHRA发起的CRISP-DM Special Interest Group 组织开发并提炼出CRISP-DM(CRoss-Industry Standard Process for Data Mining),进行了大规模数据挖掘项目的实际试用。
CRISP-DM提供了一个数据挖掘生命周期的全面评述。它包括项目的相应周期,它们的各自任务和这些任务的关系。在这个描述层,识别出所有关系是不可能的。所有数据挖掘任务之间关系的存在是依赖用户的目的、背景和兴趣,最重要的还有数据。SIG组织已经发布了CRISP-DM Process Guide and User Manual的电子版。CRISP-DM的官方网址是http://www.crisp-dm.org/。在这个组织中,除了SPSS是数据挖掘软件提供商,其他的几个发起者都是数据挖掘的应用方。所以CRISP-DM和SPSS自有开发的SPSS Modeler契合度非常好。
一个数据挖掘项目的生命周期包含六个阶段。这六个阶段的顺序是不固定的,我们经常需要前后调整这些阶段。这依赖每个阶段或是阶段中特定任务的产出物是否是下一个阶段必须的输入,下图中箭头指出了最重要的和依赖度高的阶段关系。
上中最外面这一圈表示数据挖掘自身的循环本质,每一个解决方案发布之后代表另一个数据挖掘的过程也已经开始了。在这个过程中得到的知识可以触发新的,经常是更聚焦的商业问题。后续的过程可以从前一个过程中得到益处。
我们把CRISP-DM的数据挖掘生命周期中的六个阶段,也就是上图中的概念解释如下:
业务理解(Business Understanding)
最初的阶段集中在理解项目目标和从业务的角度理解需求,同时将这个知识转化为数据挖掘问题的定义和完成目标的初步计划。
数据理解(Data Understanding)
数据理解阶段从初始的数据收集开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的子集去形成隐含信息的假设。
数据准备(Data Preparation)
数据准备阶段包括从未处理的数据中构造最终数据集的所有活动。这些数据将是模型工具的输入值。这个阶段的任务能执行多次,没有任何规定的顺序。任务包括表、记录和属性的选择,以及为模型工具转换和清洗数据。
建模(Modeling)
在这个阶段,可以选择和应用不同的模型技术,模型参数被调整到最佳的数值。一般,有些技术可以解决一类相同的数据挖掘问题。有些技术在数据形成上有特殊要求,因此需要经常跳回到数据准备阶段。
评估(Evaluation)
到这个阶段,你已经从数据分析的角度建立了一个高质量显示的模型。在开始最后部署模型之前,重要的事情是彻底地评估模型,检查构造模型的步骤,确保模型可以完成业务目标。这个阶段的关键目的是确定是否有重要业务问题没有被充分的考虑。在这个阶段结束后,一个数据挖掘结果使用的决定必须达成。
下篇预告:数据挖掘的评估和结果可视化展示
节选谭磊所著的自《大数据挖掘》一书。未完待续……