1、第第2 2章章 数据挖掘建模方法数据挖掘建模方法 2.1 概述概述 2.2 业务理解业务理解 2.3 数据理解数据理解 2.4 数据准备数据准备 2.5 建模建模 2.6 评估评估 2.7 部署部署 2.1 概述 (1)l成功的数据挖掘是让数据有商业价值,数据挖掘分析师需要知道什么对商业有价值,并且知道为了获得巨大收益如何整理数据。为了成功运用数据挖掘,对数据挖掘技术层面的理解至关重要,尤其是应该了解如何将数据变成有用信息的过程。l本章主要介绍跨行业标准流程CRISP-DM(cross-industry standard process for data mining)。该模型将一个数据挖掘项
2、目的生命周期分为业务理解、数据理解、数据准备、建模、评估和部署等6个阶段,这个流程为我们提供了一个数据挖掘所需步骤的完整概括。2.1 概述 (2)l业务理解(Business Understanding)l数据理解(Data Understanding)l数据准备(Data Preparation)l建模(Modeling)l评估(Evaluation)l部署(Deployment)商业数据挖掘案例某一家银行存在一个业务难题,他们的特别商业产品家庭抵押贷款额度,不能吸引好的客户,家庭抵押贷款业务量低。为此,美国消费者资产协会决定与Hyperparallel 公司合作,采取数据挖掘方法来解决这个
3、问题。根据CRISP-DM建模体系,第一阶段是业务理解。从这个案例来看,主要的业务问题是解决家庭抵押贷款的业务量。从业务角度上看,是否存在一些客户群体对家庭抵押贷款这项业务感兴趣,而这些客户群体又有什么共同的特征,客户什么时候最可能需要这种贷款等等。根据一般常识和商业顾问、领域专家的意见,他们认为可能使用家庭贷款业务的人群有两种:一种是有孩子上大学的家长,想通过家庭抵押贷款支付学费,另一种是高收入但收入不稳定的人,想通过家庭抵押贷款事、使其收入削峰填谷。经过上述的业务理解后,需要进行数据理解。首先要收集数据挖掘过程所需要的数据。多年来,美国银行一直将数百万的零售客户数据存储在一个巨大的关系数据
4、库中。关系数据库中的数据共有42个字段,每个记录保存了客户的详细信息。收集到原始数据后,需要根据问题识别数据有用的特征,检验数据的质量,对缺失的字段、数值型变量的取值范围等质量问题进行检验并作处理。然后,对这些数据进行筛选,转换,调整,规范化后,输入到公司数据仓库中。美国银行利用这个系统,能参透与银行保持联系的客户的所有关系。数据库中数据的属性汇集成客户独一无二的特征,然后采用Hyperparallel 公司的数据挖掘工具进行分析。经过数据挖掘工具的决策树功能,按照现有银行划分客户的规则,将客户分成两类,即可能或者不可能对提供家庭抵押贷款做出反应。经过了大量的有购买产品和没有购买产品的客户数据
5、,决策树最终获得判定不同类型客户之间差别的规则。一旦发现规则,利用得到的模型可以给每个潜在客户记录增加一个属性,即好的潜在客户标志,就是由数据挖掘模型生成的。接着使用模式的查找工具,确定客户什么时候最有可能需要这种贷款。最后,使用聚类工具将具有相似属性的客户分成不同的组。在某一点上,数据挖掘工具发现了14个客户簇,其中很多簇似乎没有什么特别的发现。但是,有一个簇具有两个令人费解的特点:一是这个簇的39%的人不同时拥有企业和个人账户,二是这个簇中的客户占到家庭抵押贷款可能响应者的四分之一。这些数据提示好奇的数据挖掘者,上述簇中的客户有可能使用家庭抵押贷款来从事商业活动。利用数据挖掘的结果,美国消
6、费协会资产协会和银行的零售分支机构联合组织市场调查、与客户面谈。市场调查的结果证实了贷款收入将被用于从事商业活动。尽管市场调查存在一些缺点,例如响应者并不能代表全部的人口,有些客户并非诚实对待调查等等,但是与现有客户和以前的客户进行面谈的时候,也可以深入了解其他方式无法得到的情况。对由数据挖掘产生的结果进行评估之后,美国银行制定部署运用方案,并且按照方案采取了相应的措施,最终,家庭抵押贷款的响应率从0.7%上升到了7%。资料来源:(美) Michael J.A. Berry (美) Gordon S.Linoff 著. 数据挖掘技术:市场营销、销售与客户关系管理领域应用.机械工业出版社.200
7、6.7 2.2 业务理解l业务理解是数据挖掘的第一个阶段,从业务的角度了解项目的要求和最终目的是什么,并将这些目的与数据挖掘的定义以及结果结合起来 。具体任务包括:(1) 业务梳理(2) 业务描述(3) 业务特征研究(4) 业务关联分析2.3 数据理解 (1)l数据理解阶段是从收集数据开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的自己去形成隐含信息的假设。其任务包括:(1) 数据收集(2) 数据描述(3) 数据探索(4) 数据质量检测2.3 数据理解 (2)(1) 数据收集l在收集数据之前,需要根据业务问题明确数据挖掘过程需要哪些信息,
8、哪些变量是必需的,哪些变量与数据挖掘目标不相关,然后根据选择的标准收集数据,检查是否所有的信息都确实可以利用来实现数据挖掘的目标。(2) 数据描述l描述数据主要是熟悉数据,理解数据的内涵,检验数据的“总的”或者“表面的”特征。例如从商业的角度理解每个变量及其值的含义,变量的含义是否始终一致,变量是否与具体的数据挖掘目标相关联等。2.3 数据理解 (3)(3) 数据探索l探索数据主要是详细分析引人注目的变量特征,识别潜在的特征,思考和评估在描述数据过程中的信息和发现,提出假设并确定方案,阐明数据挖掘的目标。l例如,电信公司想挖掘出移动业务之间的关联规则,那么,在描述数据后,根据数据的特征,选择各
9、种可能相关的业务进行挖掘,对于显而易见的规则,则可以不作考虑。比如说开通上网功能的客户中绝大部分客户也开通了飞信业务,则在探索数据时,不需要考虑这两个业务之间的关联。(4) 数据质量检测l检验数据质量,列举有关问题。例如数据是否完整、正确,是否存在缺失值,数值型变量的范围是否落在允许的范围内,变量的含义与变量值是否一致等质量问题。2.4 数据准备 (1)l数据准备阶段的工作是对可用的原始数据进行一系列的组织以及清洗等预处理,使之达到建模需求,而这些数据将是模型工具的输入值。l数据准备阶段的任务有可能执行多次,并且没有任何规定的顺序。这个阶段其任务包括:(1) 数据筛选(2) 数据清理(3) 数
10、据构建(4) 数据整理合并(5) 规范化数据(6) 准备建模数据集(7) 选择建模技术和训练模型(1) 数据筛选l数据筛选的任务是确定数据挖掘分析过程中所必须的数据,即选择有用的特征和记录。u在选择数据的时候,首先要考虑的问题是数据要符合解决企业问题的需要。u再者,由于用于建模的数据应尽可能地完整,数据量尽可能多。u当开发预测模型时,资料中也应该包括想要的输出。2.4 数据准备 (2)(2) 数据清洗l数据挖掘过程是否成功,得出的结果模型是否可靠,取决于数据质量的好坏。清理数据的任务恰恰是清理数据中包含的噪声和与数据挖掘主题明显无关的数据,从而提高数据的质量。清理数据通常包括:u填补空缺的数据
11、值。例如忽略有空缺值的记录;人工填写空缺值;使用一个全局变量填写空缺值;使用属性的均值填写空缺值。u清理噪声数据。对于噪声数据有以下几种处理方法:一是分箱,二是聚类方法,通过聚类发现孤立点。三是计算机与人工相结合的方法,四是回归分析,建立回归方程。u解决不一致问题。数据的不一致主要表现在数据的单位、命名、结构、含义不一致。可以通过对数据的统一调整进行解决。2.4 数据准备 (3)(3) 数据构建l数据构建包括建设性的数据准备工作,例如属性构造,多维数据组织(聚集),数据泛化处理。u属性构造是指构造新的属性并添加到属性集中,以帮助提高数据挖掘的过程。u多维数据组织(聚集)是指对数据进行汇总和聚集
12、,采用切片、旋转等操作将原始数据按照多维立体形式组织成为不同层次、不同粒度、不同维度的聚集。u数据泛化处理是指使用高层次的概念替换低层次的概念。例如短信业务替换各种不同种类的短信业务,使用国家替换城市。2.4 数据准备 (4)(4) 数据整合l数据整合的主要任务是将来自多数据源(例如数据库、文件等)的相关数据组合到一起,即把不同来源、格式、特点性质的数据在逻辑上或者物理上有机地集合在一起,使之更加有利于数据挖掘过程的实现。(5) 数据规范化l规格化数据就是将有关属性数据按比例缩放,使之落入一个特定的小范围内,以消除数值型数据因大小不一而造成的数据挖掘结果的误差。常用的规格化数据方法有三种:u最
13、大最小规格化uz-score规格化u小数定标规格化2.4 数据准备 (5)2.4 数据准备 (6)(6) 准备建模数据集l数据准备是在数据建模前对数据的最后一步进行处理,对数据进行上述处理后,还不能直接用于数据建模,还需要考虑到数据的稀疏程度。通常,对于稀疏的数据,最好选用15%30%的比例来建模,例如:在建立欺诈检测模型时,欺诈记录的数据占比例很小。如果直接用这样的数据进行建模,那么,成功预测没有欺诈的可能性将会很高。但是这样得到的模型用处不大甚至完全无用。l为了评估模型,一般将建模数据集分成三个部分,即训练集、测试集和评估集。将数据的训练集作为最初用于建立模型的数据,用测试集和评估集来精化
14、模型和评估模型。2.5 建模 (1)2.5.1 成功建立预测模型的注意要点2.5.2 如何建立有效的预测模型2.5 建模 (2)l一个模型的好坏依赖于所选择的算法和使用的工具。一些工具可以生成许多不同的模型,而且可以自动从中选出最好的模型。l可以选择多种不同的数据挖掘技术,每一种技术都有它的优缺点。实际应用时,需要根据数据挖掘的目的以及数据的特点选择数据挖掘的算法。l数据挖掘中的建模是针对问题的特定对象,为了特定的数据挖掘目的,做出假设,运用适当的数据挖掘工具和其他科学工具建立模型,利用模型解释特定的现象和预测对象的未来状况。2.5.1 成功建立预测模型的注意要点 (1)对于预测模型而言,当预
15、言与结果相一致时,才能说明预言是有效的然而,要成功建立预测模型,需要注意以下三点:(1)预测模型的时间范围l在建立模型的过程中,首先需要训练模型,即用历史数据构建模型,进行预测,然后将模型应用于新的数据中从而生成结果,这个过程称为得分,它是用最新的数据来预测未来的结果。具体如图所示:2.5.1 成功建立预测模型的注意要点 (2)(2)模型的使用有效期l在建立预测模型的时候,还需要考虑模型的使用有效期问题,即模型使用有效期和模型预测有效期。u模型使用有效期是指在业务环境、技术手段、客户基础等相对稳定的条件下,可以继续使用之前建立的预测模型。但是随着时间的推移,这些条件可能会发生变化,因此,必须用
16、新的数据构建新的模型,而不能用之前建立的模型进行预测。 u模型预测有效期是指预测结果应该在特定的时间内才有效。例如电信行业中预测某个特定季度或者特定月份的客户流失率。在这种情况下,需要对不同季度或者月份使用不同的预测。2.5.1 成功建立预测模型的注意要点 (3)(3)建立预测模型的假设l为什么可以用预测模型来预测现实生活中特定对象的未来状况?l原因是预测模型的成功应用依赖于三个基本假设:u假设1:历史是未来的写照u假设2:数据是可以获得的u假设3:数据中包含我们的预期目标2.5.2 如何建立有效的预测模型 (1)l建立预测模型最重要的目标是保持模型稳定,有效模型的建立需要考虑以下因素:(1)
17、 预测建模的第一项任务就是搜集足够预先分类好的数据,将模型集分为三部分:训练集、测试集、评估集,并理解模型在各个子集上的效果。(2) 对于类别不平衡的数据,通过抽样来控制模型集的密度,即不同分布的类别比例。(3) 注意观察所用数据的输入和输出时间范围,所有输入都必须出现在输出之前,保留一个执行期间是明智的选择。(4) 在模型集中使用多重时间窗口有助于确保模型稳定、并在时间上易于转换。(5) 大多数建模过程需要建立多个模型,并对多个模型的效果进行比较,以选用效果最好的模型进行预测,或者对多个模型进行组合,以得到性能更优的集成分类模型。(6) 对不同的模型集、模型参数以及时间范围进行试验,有助于建
18、立更好更稳定的模型。2.5.2 如何建立有效的预测模型 (2)l在了解以上因素的基础上,需要掌握建立有效预测模型的基本步骤:(1) 用训练集的数据进行训练建立模型。这步产生的结果是找出数据中所包含的预测模式。(2) 利用测试集,对模型进行修正。其目的是为了防止模型对训练集的模式记忆太深,出现过度拟合现象,以使模型更具一般性,并且能够很好地适应未知数据。(3) 对模型的效果进行评价。这个过程需要用到评估集,这部分数据也是模型集的一部分。它是在建模和测试修正过程中尚未用到的那部分数据集。检测模型的性能可以通过判错矩阵和增益表(lift chart)或累计增益图(cumulative gain ch
19、art)来评价。2.5.2 如何建立有效的预测模型 (3) 实际值实际值Y YN N预测值预测值Y Y2%2%4%4%N N12%12%82%82%实际值实际值Y YN N预测值预测值Y Y7%7%40%40%N N3%3%50%50%a) 判错矩阵l判错矩阵表示了一个模型与事实发生冲突的可能性。从判错矩阵中可以看出预测模型预测正确的比例和预测错误的比例,使我们认识到模型的执行效果,理解模型的结果。l 表2-1表示的是判错矩阵。究竟哪个模型是最优的模型,还要视业务问题而定。 表2-1 判错矩阵2.5.2 如何建立有效的预测模型 (4)b)累计增益图l累计增益图是一种常用的用于评估模型执行效果的
20、图表。它的横轴和纵轴都是百分比构成。横轴表示资料得分从小到大排序以后,按十分位累计资料百分比。累计增益图的纵轴表示这部分资料在总资料中的比例。l下图表示的是不同模型产生的累计增益图表。建模曲线和对角线包围的面积越大,说明模型的执行效果越好。2.6 评估l评估是将模型输出的结果与现实生活中发生的结果进行对比,进一步评估模型。l要保证预测结果的有效性,对预测模型进行分析与评价时,应遵循如下原则:u合理性u预测能力u稳定性l在评估结果之后,需要回顾检讨探测的过程,从而决定后续的步骤与调整。经过对模型的评估,回顾整个探测的过程,查找建模结果中与现实生活中发生结果的差距,检查探测过程的可能出现的错误,决
21、定后续的数据挖掘的步骤并做出相应的调整。2.7 部署l模型的作用是从数据中找到知识,获得的知识需要以便于用户使用的方式重新组织和展现。构建模型并不是项目的结束,在模型建立并验证之后,决策者可以把模型预测的结果作为参考,提出解决业务问题的方案,做出部署。其任务包括:u计划部署u计划监控与维护u制作最终报告u项目回顾和检讨无论做什么类型的数据挖掘工作,保持开放的思维特别重要。以下几点值得特别注意。(1) 业务的理解永远是第一位的!数据挖掘的对象是某一专业领域中积累的数据,挖掘的结果最终要应用于该专业。因此数据挖掘的过程离不开应用领域的专业知识。“Business First, technique
22、second”是数据挖掘应用的特点。(2) 与行业专家沟通。每个行业都有其特殊性,行业专家的指点有助于正确理解业务流程、形成正确的挖掘思路;同时数据挖掘的最好结果是对行业有用又出乎行业人士意料之外的知识,这就需要行业专家加以判断。“验证后的模型(结论)请交给业务人员做第二次验证!”(3) 倾听顾客的声音。只有真正理解顾客的需求,目标定位才会准确,这一点不仅对数据挖掘领域有用,也是所有咨询行业的真谛。(4) 数据会说话。专家与顾客会告诉你过去的行业经验与他们的需求,而数据却会真正反映过去一段时间的经历。垃圾进,垃圾出!数据质量是成功实施数据挖掘的基础;数据挖掘之初加深对数据的理解及初步探索,对完成数据挖掘工作具有不可替代的重要作用;变量选择或构造不当,不仅会影响建模效果,有时还会多走弯路,因此在变量内涵理解方面值得多下功夫。(5) “一个模型不代表任何意义”,“多个角度挖掘数据!”(6) “数据挖掘是一门艺术”。数据挖掘经验谈l作业,P31:2.2,2.3,2.5