《数据挖掘的实施过程.ppt》由会员分享,可在线阅读,更多相关《数据挖掘的实施过程.ppt(101页珍藏版)》请在三一办公上搜索。
1、第五章数据挖掘的实施过程,第5章,前面介绍了数据挖掘的基本方法。在本章中我们进一步说明数据挖掘的实施过程。,5.1 数据挖掘过程模型5A,数据挖掘是一个过程,它是从大量数据中抽取出有价值的信息或知识以提供决策依据。由于每一种数据挖掘方法(算法及技术要求)都有其自身的特点且实现步骤与具体应用问题有密切相关性,因此成功应用数据挖掘技术以达到目标的过程本身就是一件很复杂的事情。,5.1 数据挖掘过程模型5A,一般来说,数据挖掘项目要经历的过程包括问题的理解、数据的理解收集和准备、建立数据挖掘模型、评价所建的模型、将建立的模型投入应用等一系列任务。这里,数据挖掘过程的系统化、工程化方法学和支持系统(软
2、件或工程)对解决应用问题起着至关重要的作用。,5.1 数据挖掘过程模型5A,为了抽象系统化方法,人们提出了一些数据挖掘过程的参考模型或标准:SPSS提出的5A(Assess、Access、Analyze、Act、Automate);SAS提出的SEMMA(采样Sample,探索 Explore,修正Modify,建模Model,评估Assess)数据挖掘特别兴趣小组提出的“数据挖掘 交叉行业标准过程”CRISP-DM(Cross-Industry Standard Process for Data Mining)。,5.1 数据挖掘过程模型5A,在这些模型中,5A模型强调的是支持数据挖掘过程的
3、工具应具备的功能和能力,它是对支持数据挖掘工具的定义。SEMMA强调的是结合SAS公司的挖掘工具进行应用开发的方法。CRISP-DM则从进行数据挖掘方法学的角度强调实施数据挖掘项目的方法和步骤,并独立于每种具体数据挖掘算法和数据挖掘系统。,5.1 数据挖掘过程模型5A,5A模型认为任何数据挖掘方法学都由5个基本元素组成,即Assess、Access、Analyze、Act、Automate。Assess:正确、彻底的评价任务的需求及数据。Access:方便、快速的存取任务所涉及的数据。Analyze:适当、完备的分析技术和工具。Act:具有推荐性、有说服力的演示。用大量的列表和图形或者通过办公
4、软件来演示数据挖掘软件的能力。软件应该具备快速回答用户提问的控制性和灵活性,这样才便于用户更好、更快地做决策。Automate:为用户提供最易于使用、最方 便的自动化软件。,5.1 数据挖掘过程模型5A,针对着5个过程,5A描述了各元素在数据挖掘技术应用中所需完成的任务和应该提供的支持功能。(1)Assess Assess是指要正确地理解和设置数据,一旦充分了解了数据的上下文后,就可以正确地收集它并在其上做需要的决策。实现Assess的软件技术方案可以不同,但问题含义相同。a.将技术与组织的目标、策略和步骤结合起来。b.拥有世界范围的咨询和培训,目的是交付高级分析工具给分析员后,能快速实现数据
5、挖掘及其应用。,5.1 数据挖掘过程模型5A,(2)Access Access是指数据集合(DB、DW、DM)应该完全符合评价的要求和质量。若数据集合不充分,须补充附加的数据。选用的数据挖掘软件必须在所要求的数据上灵活地工作,并满足下列存取准则。易于存取和连接各种数据源,包括数据表、公司数据库、数据仓库和其它必要的外部数据库。能直接从ASCII正文、数据表、数据库文件读入数据。能处理大量(GB以上)的数据文件。,5.1 数据挖掘过程模型5A,(3)Analyze Analyze要求分析工具具备两类分析方法和工具:发现工具和验证工具。验证工具检验发现工具所产生的结果是否合理。发现型方法和工具包括
6、基因遗传算法、规则推导、模糊逻辑、数据可视化、聚类算法、因素分析、神经网络、决策树等。验证方法和工具包括回归、逻辑回归、判别分析、预测建模等。理想的数据挖掘软件应该具备这两类分析方法和工具,同时应该包括下列分析特性。,5.1 数据挖掘过程模型5A,统计过程、范围和深度较强,应包括预测、分段、分类等。集成商业和统计图形功能、具备多种可选的2D/3D图类,能用数据定点模式显示和跟踪等。辅助分析的模版、过程导引、示范、在线帮助等,能帮助分析员快速选择和获得结果。数据、文件、中间结果管理功能。能合并和分离文件、选择数据子集、处理数据缺值、净化、改善数据完整性、支持IF-THEN-ELSE条件操作。数据
7、转换功能。有一组完备的转换函数支持变量/特征和条件的计算,可以重复计算、编辑原来的变量/特征。,5.1 数据挖掘过程模型5A,可裁减的工作环境。有脚本/宏语言支持的可重复任务的自动化、批处理及其菜单按钮功能,以支持一般用户快速使用。灵活的动态输出。表结果可以转动和轮换,易于观察数据全貌和用鼠标重新组织表数据,以便于清晰的提交、观察、探索数据结果并做进一步的特殊分析。基于线性回归和ANOVA的预测性建模,具有相关性、分类分析、预测等基本分析功能。插件/模块功能。可以提供特殊的功能模块,以支持特定的分析。,5.1 数据挖掘过程模型5A,(4)Act 用大量的列表和图形或者通过办公软件来演示数据挖掘
8、软件的能力。软件应该具备快速回答用户提问的控制性和灵活性,这样才便于用户更好、更快地做决策。数据挖掘软件应该提供下面的演示特性。l完好的集成图形功能,以提供专业级的演示。lOLE支持,以易于嵌入图表节省报告时间。lINTERNET特性,以易于图表的网上传输和本地察看。l演示模版特性,以节省编辑时间。l特殊查询功能,以利于快速提供附加的分析能力来响应用户的提问。l报告注解功能,以加入注解到报告中。,5.1 数据挖掘过程模型5A,(5)Automate Automate是指面向用户的操作尽可能完善和自动化软件的应用过程。吸取专业分析决策人员及多数用户的意见和见解,以最快的方式显示分析结果,以标准的
9、接口、按钮式的功能/菜单、丰富的帮助、可选的附加分析将软件呈现给用户。为此,软件应提供以下自动化功能:,5.1 数据挖掘过程模型5A,lOLE自动化开发者的机制,允许用户在通用代码级(VB、EXCEL、ACCESS、PB等)使用软件。l内建编程语言/脚本/宏,使用户可以方便的创建自己的应用。l制作能力,能编写产生日常报告的命令行文件。,5.2数据挖掘过程模型CRISP-DM,CRISP-DM模型是由几家相关开发和应用行业的跨国公司和集团所支持(并由欧洲委员会部分支持)的一个特别兴趣小组在1997年7月到1999年4月间研究后提出的。这几家公司分别是数据仓库提供商NCR在丹麦的SEC公司,德国的
10、汽车、航天航空、电信和咨询业公司DAIMLER-BENZ AG,英国的数据挖掘系统开发商ISL(CLEMENTINE的研发商,1998年其成为SPSS的子公司)以及荷兰最大的银行、保险业公司OHRA。,5.2数据挖掘过程模型CRISP-DM,由于其直接动机是将数据挖掘技术转化为商业应用,所提出的过程模型均在项目中进行实际实践和验证,因此具有一定的代表性。CRISP-DM模型采用分层方法将一个数据挖掘项目的生存周期定义为6个阶段(PHASE)和4个层次(LEVEL)。,5.2数据挖掘过程模型CRISP-DM,CRISP-DM模型6个阶段为:BUSINESS UNDERSTANDING、DATA
11、UNDERSTANDING、DATA PREPARATION、MODELING、EVALUATION和DEPLOYMENT 阶段间的顺序并不严格,比如商业理解和数据理解之间常常需要反复,数据准备和数据模型建立也常常需要反复。阶段间有循环,比如在对模型进行评价后,如果不满意,可能需要重新对商业问题进行理解,重新开始建模。一个阶段的任务完成后,如果需要继续扩展挖掘的范围,则需要重新开始循环。,5.2数据挖掘过程模型CRISP-DM,CRISP-DM模型4个层次是:阶段划分(PHASE)定义通用任务(GENERIC TASK)定义专用任务(SPECIALIZED TASK)处理实例(PROCESS
12、INSTANCE)每个PHASE由若干GENERIC TASK组成,每个GENERIC TASK又需要实施若干SPECIALIZED TASK,每个SPECIALIZED TASK由若干PROCESS INSTANCE来完成。,5.2数据挖掘过程模型CRISP-DM,其中,上两层独立于具体数据挖掘方法,即是一般数据挖掘项目均需实施的步骤(这解决了“WHAT TO DO?”的问题)。这两层的任务将结合具体数据挖掘项目的“上下文”(CONTEXT)映射到下两层的具体任务和过程。项目的“上下文”是指项目开发中密切相关、需要综合考虑的一些关键问题,如应用领域、数据挖掘问题类型、技术难点、工具及其提供的
13、技术等。下两层注重解决如何完成每个阶段所要完成的任务和任务的输出所要求的必要映射活动(这用于解决“HOW TO DO”的问题)。,5.2数据挖掘过程模型CRISP-DM,CRISP-DM6个阶段的含义是:(1)BUSINESS UNDERSTANDING 在开始阶段,专注于从商业的角度理解项目目标和需求,然后将这种知识转换成一种数据挖掘的问题定义,并设计出达到目标的一个初步计划。,5.2数据挖掘过程模型CRISP-DM,(2)DATA UNDERSTANDING 在数据理解阶段,先收集初步的数据,然后进行熟悉数据的各种活动,包括识别数据的质量问题、找到对数据的基本观察或假设隐含的信息来检测出感
14、兴趣的数据子集。,5.2数据挖掘过程模型CRISP-DM,(3)DATA PREPARATION 数据预处理阶段覆盖了从数据构造到最终数据集合(将要输入建模工具的数据)的所有活动。数据预处理任务很可能要执行多次,并且没有任何规定的顺序。任务包括表、记录属性的选择以及为了适合建模工具的要求对数据进行的转换和净化。,5.2数据挖掘过程模型CRISP-DM,(4)MODELING 在建模阶段,可以选择和应用各种建模技术将其参数校正到优化值。,5.2数据挖掘过程模型CRISP-DM,(5)EVALUATION 从数据分析的观点看:在开始进入这个阶段时已经建立了看上去是高质量的模型。但在最终扩展模型之前
15、,要更彻底地评价模型,对所建模型再次考察其执行的步骤并确信其正确地达到了商业目标。这里,一个关键的目的是确定是否有某些重要的商业问题还没有充分地考虑。在这个阶段的结尾,应该获得使用数据挖掘结果的判定。,5.2数据挖掘过程模型CRISP-DM,(6)DEPLOYMENT 创建完模型并不意味着项目结束。所获得的知识要用一种用户可以使用的方式来组织和表示。根据要求,扩展阶段可以简单到只生成一份报告,或复杂到实现一个可重复的数据挖掘过程。在许多情况下,这将由客户而不是分析员来实施。所以分析员来实施扩展将达不到预期的扩展效果,因此在这之前,客户理解和利用所建模型所要实施的动作很重要。,5.3 数据挖掘过
16、程中的相关问题,TWO CROWS公司的数据挖掘过程模型同CRISP-DM模型很类似,并且比较简洁,其基本数据挖掘步骤包括:l 定义商业问题;l建立数据挖掘仓库;l 分析数据;l 准备数据;l 建立模型;l 评价模型;l 实施。下面结合这个数据挖掘过程模型说明在数据挖掘过程中的相关问题。,5.3.1 定义商业问题,我们的最终目的是希望从技术和商业角度为公司建立一个能够理解和实施数据挖掘的工作环境。数据挖掘的成功,并不在于特定工具和算法的选择,而是一个合适的环境。一个企业的执行能力越强,数据挖掘的能力就越大。,5.3.1 定义商业问题,企业所处的商业环境往往在战略上、顾客定位、数据仓库建立、市场
17、定位、生命周期、分析技术等方面各不相同,成功的基础必须是基于对数据挖掘与商业规律良好结合的环境,建立自己的挖掘平台。在开始数据挖掘之前,最重要的是要了解数据和相关的业务问题。比如要分析电信领域的客户呼叫行为,需要了解电信的业务构成、业务运营以及其它诸多的行业知识。,5.3.1 定义商业问题,要想充分发挥数据挖掘的价值,必须对目标有一个清晰明确的定义,了解数据和相关的业务问题是决定到底想干什么的前提。数据挖掘对系统分析/开发人员提出了更高的要求,它要求分析/开发人员具有比较宽广的基础知识和行业背景。,商业理解体系的核心语义层,业务数据库,商业理解体系的核心语义层,数据源,终端用户,商业元语,查询
18、面板,数据源,5.3.2 建立数据挖掘库,建立数据挖掘仓库、分析数据、选择变量构成了数据预处理的核心,这三步比其它所有的步骤加在一起所花的时间和精力还多。数据准备工作大概要花去整个数据挖掘项目的50%90%的时间和精力。,5.3.2 建立数据挖掘库,我们应该把要挖掘的数据都收集到一个数据库中(或者存放在数据仓库中,通常是以关系表的方式存储)。当然,这并不是说一定要使用一个数据库管理系统。根据要挖掘的数据量的大小、数据的复杂程度、使用方式的不同,有时一个简单的平面文件或电子表格就足够了。,5.3.2 建立数据挖掘库,数据挖掘系统可以作为一个独立的系统存在。对于一个大型的企业将数据挖掘系统建立在数
19、据仓库的基础上是非常合理的想法,因为数据仓库已经为数据挖掘累积了大量的历史数据,要将这些数据充分发挥作用,就需要一个良好的数据挖掘系统。,5.3.2 建立数据挖掘库,但是,一般我们并不直接在公司的数据仓库上进行数据挖掘。原因有以下几点:1)数据仓库中的数据量很大,许多数据并不 是数据挖掘问题所关心的。2)数据挖掘需要的信息涉及的方面很广,这 些信息可能存放在数据仓库的许多表中,如果直接在数据仓库中挖掘,将使数据 的访问性能受到影响。3)数据挖掘需要反复进行,不断地对模型 进行优化。,5.3.2 建立数据挖掘库,4)在数据挖掘过程中需要对变量进行转化,比如神经网络只能处理数值型的变量,对于非数值
20、型的变量需要转化。而数据仓库不支持更新操作。5)多个数据挖掘的主题可能同步进行,如果直接在数据仓库中进行,数据仓库需要增加相应地控制机制。6)数据仓库系统还有其它工作,比如定期地数据刷新、对OLAP系统的支持等。,5.3.2 建立数据挖掘库,因此有必要从数据仓库中抽取出需要的数据单独存放在数据挖掘库中,这样可以达到以下目的。l数据量大大地减小了:l多个数据挖掘主题可以并行地进行:l多个数据挖掘主题在物理上分开,对数 据的更新互不影响;l数据挖掘的结果可以回写进数据仓库,供OLAP工具展现使用。,5.3.2 建立数据挖掘库,如果数据仓库允许建立一个在逻辑上独立的数据库并且在计算资源上也足够,那么
21、在它上面进行数据挖掘也是可以的。建立数据挖掘库可以分成下面几个部分:l 数据收集;l 对数据进行描述;l 选择数据;l 数据质量评估和数据清理;l 对数据进行合并和整合;l 构建元数据;l 将数据加载到数据挖掘库;l 维护数据挖掘库。,5.3.2 建立数据挖掘库,这些步骤并不一定要按步骤执行,而应该按需要进行。比如在收集数据时就开始构建元数据,并随着工作的进行不断的对其进行修改。在数据整合和数据质量评估过程中发现问题可能需要修改最初的数据选择。,5.3.2 建立数据挖掘库,1.数据收集 首先,确定要挖掘的数据源。在数据仓库中已经提供了丰富的数据,但是还需要一些外部的数据,比如人口统计或天气数据
22、等。对于一些有偿数据,甚至需要向专门提供数据服务的公司购买。我们可以用一个数据搜集报告把所需的各种不同的数据源的属性列出来。此报告至少应包含如下的内容:,5.3.2 建立数据挖掘库,l数据源;l数据的拥有者;l负责维护此数据的人/组织;l设计该数据库的DBA;l如果数据需要购买,则需要说明费用;l数据使用的存储方式,如ORACLE数据库,平面文件;l数据中包含的表,字段,记录的数目;l数据的大小;l数据的物理存储介质,如CD-ROM,磁带,磁盘阵列等;l安全需求;l数据在使用上的限制;l数据是否涉及用户的隐私问题。,5.3.2 建立数据挖掘库,2.数据描述数据描述报告中应包含如下内容:l 字段
23、/列的数目;l 字段是空(缺值)的数目/百分比;l 字段名;,5.3.2 建立数据挖掘库,对于对每个字段,我们通常需要记录:l 数据类型;l 数据定义;l 数据描述;l 计量单位;l 所有不同值的个数;l 值的列表;l 值的范围;l 空值的百分比;l 收集信息;l 时间频度;l 特别时间数据;l 主键/外键关系。,5.3.2 建立数据挖掘库,3.数据选择 接下来要选择用于数据挖掘的数据。这与对数据进行采样和选择预测变量是不同的,这里只是粗略的把冗余或无关的数据除去或由于资源的限制、费用的限制、数据使用的限制和质量问题而必须做出的选择。,5.3.2 建立数据挖掘库,4.数据质量评估和数据清理 要
24、想得到好的模型必须用好数据。数据质量评估就是要确定数据的哪些性质会最终影响模型的质量。我们不仅要保证数据值的正确性和一致性,还要保证这些值是按同样的方法记录的同一件事情。,5.3.2 建立数据挖掘库,数据域中可能包括了不正确的值。比如,身份证号码被粗心的数据录入人员录入了年龄。即使单个域中包含的数据是正确的,但这些域组合起来时也可能就出现错误的记录,如小学生的年龄是90。有时域中的值为空。当从多个不同的源整合数据的时候,一定要注意不同源之间数据的一致性。这些工作看起来和数据仓库的数据清洗转换工作很相似。,5.3.2 建立数据挖掘库,缺值是一个非常有害的问题,并且在实际情况中常常出现。比如在网上
25、调查或者问卷调查中,填写人会漏填甚至不填某些选项。如果有一个数据域缺值就把这个记录删除掉,那么最后可能得到一个很小的数据集合。如果可用的数据集合太小,则这个集合就不能代表整体的特征,因此在这样的数据集合上进行分析的结果与实际情况有较大的出入。,5.3.2 建立数据挖掘库,我们应当考虑一些合适的方法进行弥补,可能的方法有:a.据其它字段来推测缺失字段,比如通过身份证计算出客户的性别、年龄信息,从而填补这两个字段数据的缺失。如果客户的身份证有误,这个方法就失效了。b.用非空值的数据通过计算后代替空值数据。我们通过计算收入水平的非空数据的平均值来取代空值数据。c.使用非空值的数据的统计特征来填充空值
26、数据。问卷中非空字段包含35%男性和65%女性,在为性别字段缺失的记录添值时,按照这个比例随机进行赋值。,5.3.2 建立数据挖掘库,d.以缺值的字段为预测目标,用数据挖掘技术建立一个预测模型,通过非空的记录对其进行训练和评价,然后按照这个模型的预测结果添值。这种方法比较好,因为使用数据本身的特征来填写数据,但是,这将花费较多的时间。,5.3.2 建立数据挖掘库,e.利用以往的经验,行业规则或者挖掘得到的规则对空值进行填充。比如在宣传化妆品的过程中,会对问卷回应的大部分顾客是女性,男性仅占很少的比例,比如10%,我们可以根据这个特征对空值进行填充。,5.3.2 建立数据挖掘库,5.合并和整合
27、进行数据挖掘的数据来自于不同的内部和外部数据源,并且数据源之间的数据常常存在冲突和不一致。不同的数据库间在数据定义和使用上存在巨大的差距。有些不一致问题是容易解决的,然而有些则非常棘手。同一个名字的字段被用在不同的数据项上具有不同的含义,或同一个数据项用了不同的名字。在数据计量上还有单位不统一的问题,比如人民币和港元之间不能做运算。关于数据整合和集成的问题,我们在数据仓库中已经进行了详细的说明。,5.3.2 建立数据挖掘库,6.构建元数据 元数据就是描述数据的数据。数据收集报告和数据描述报告是建立元数据的基础和重要组成部分。我们需要利用挖掘工具提供的元数据管理工具或者自己设计一个元数据库,为分
28、析数据以及建立模型提供辅助信息。,5.3.2 建立数据挖掘库,7.加载数据 大多数情况下,用于挖掘的数据应该放到独立的挖掘库中。如果数据量大并且复杂,那么数据挖掘库通常是一个RDBMS。如果数据量很少,使用一个简单的平面文件即可。经过前面所有的搜集、整理之后,现在把这些数据加载过来。,5.3.2 建立数据挖掘库,8.维护数据挖掘库 挖掘库一旦建好,就需要对其进行维护。维护工作包括:l定期进行数据备份;l 监视挖掘库的性能;l 维护元数据;l根据需要不断的增加存储空间,提供硬 件的性能。对放在RDBMS内的复杂挖掘库来说,维护它需要计算机专业人员来完成。,5.3.3 分析数据/变量,分析数据的目
29、的是找到对预测输出影响最大的字段,并决定是否需要增加导出 字段。如果数据集包含成百上千的字段,那么浏览分析这些数据将是一件非常耗时和累人的事情。这时,我们需要一个具有好的界面和功能强大的工具库软件来协助完成这些事情。此步骤可划分成4个部分:l选择变量;l选择记录;l 创建新变量;l 转换变量。,5.3.3 分析数据/变量,1 选择变量 理想情况下,我们可以选择全部变量,把它们输入到数据挖掘工具中,让数据挖掘工具来选择哪些是最好的预测变量。实际上这样做并不是很好,一方面随着变量个数的增加,模型的建立时间也随之上升;,5.3.3 分析数据/变量,1 选择变量 另一方面盲目的把所有的变量都加进去会导
30、致建立错误的模型。比如,建立预测模型的一个常见错误就是把一个依赖于目标变量的变量作为预测变量,像用变量“出生年份”来“预测”目标变量年龄,其结果将导致目标变量“年龄”直接同预测变量“出生年份”相关,而其它的因素将被排除,这显然同预测的初衷是不符合的。,5.3.3 分析数据/变量,我们在利用分析工具进行挖掘前,需要完成以下工作。l去除同目标变量具有强相关性的变量l去除毫无关系的变量 这样既可以节约进行数据挖掘的时间,又可以避免降低其它重要变量对目标变量的影响力。,5.3.3 分析数据/变量,2 选择记录 选择记录有两重含义:a.在数据量不大的时候,可以用所有的数据行来建立模型。如果数据量非常巨大
31、,使用所有的数据行来建立模型要花费很长时间,要么买一台计算能力非常强大的机器。因此,数据量特别大就需要进行数据抽样。如果数据抽样做得足够仔细,保证抽样是按真正的随机来进行的,采样对大部分商业问题来说都不会丢失信息。我们可以用所有的数据建立一个模型,还可以根据不同的采样方法建立几个模型,然后评价这几个模型并选择一个最好的。通常认为后种方法得到的模型更准确。,5.3.3 分析数据/变量,b.在进行挖掘前,我们需要删除明显的异常数据。然而在某些情况下,这些看来异常的数据可能包含了要建立模型的重要信息。因此,对于数据是否异常,必须按照实际的业务逻辑和商业逻辑来判断。,5.3.3 分析数据/变量,3 创
32、建新变量 很多情况下,我们需要从原始数据中衍生一些新的变量作为预测变量。创建新变量通常有两种方法。a.将变量利用加、减、比率等计算组合起来可能会比这些变量自身影响力更大。比如,用负债占收入百分比来预测信用风险,比直接用负债值和收入值做预测变量更准确一些,也更容易理解。再如,预测一个客户是否可能成为大客户,使用它这几个月来的通话费用的增长额或者增长率,可能比直接使用这几个月的话费对目标量影响更大。,5.3.3 分析数据/变量,b.一些变量如果扩大它的范围,可能成为一个非常好的预测变量。比如,预测客户是否为有价值客户,可以使用一段时间内话费变化情况代替某一个月的话费情况。我们需要创建哪些新变量不是
33、主观臆想的结果,而需要研究商业问题,甚至要向该方面的专家请教。是否能够创建合适的变量,对于模型的准确性影响很大。,5.3.3 分析数据/变量,4 转换变量。不同的算法可能对变量的要求不同,所以在进行挖掘之前,我们需要根据选择的算法,决定对数据进行哪些转换工作。比如神经网络要求所有的变量都在01之间,因此在这些数据被提交到算法之前必须先对不在0,1内的变量进行映射。类似一些决策树算法不接受数值型变量作为输入,在使用它们之前也要把这些数值映射到“高,中,低”等。使用的转换方式在一定程度上会影响模型的准确度。,5.3.3 分析数据/变量,现在的一些比较先进的数据挖掘工具已经能够自动对变量进行必要的转
34、换工作。但是,目标变量的转化工作通常还是需要用户自己来完成。比如使用神经网络的方法,需要将目标变量映射到01之间。,5.3.4 模型训练方法,建立模型是一个反复的过程。我们需要仔细考察不同的模型来判断哪个模型对具体的商业问题最有用。我们在寻找好模型的过程中,可能会得到新的启发,在这些启发的作用下可能会修改数据,甚至改变最初对问题的定义和理解。在数据挖掘中不要害怕反复,因为每一次反复是向更完善的模型又进了一步。,5.3.4 模型训练方法,我们首先需要决定预测的类型是对事物进行分类,还是对事物进行回归预测。然后对于预测选择数学模型。选择什么样的模型,决定了我们需对数据做哪些预处理工作。如神经网络需
35、要做数据转换,有些数据挖掘工具可能对输入数据的格式有特定的限制等。所有的数据准备好之后才可以开始训练模型。,5.3.4 模型训练方法,为了保证得到的模型具有较好的准确度和健壮性,需要先用一部分数据建立模型,然后再用剩下的数据来测试这个得到的模型。有时还需要第3个数据集,称为验证集。因为测试集可能受模型特性的影响,还需要一个独立的数据集来验证模型的准确性。,5.3.4 模型训练方法,训练和测试数据挖掘模型至少要把数据分成两个部分:一个用于模型训练,另一个用于模型测试。如果使用相同的训练和测试集,那么模型的准确度就很难使人信服。用训练集把模型建立出来之后,可以先在测试集数据上做实验,此模型在测试集
36、上的预测准确度就是一个很好的指导数据,它表示将来与数据集和测试集类似的数据用此模型预测时正确的百分比。但这并不能保证模型的正确性,它只是说明在相似的数据集合的情况下用此模型会得出相似的结果。,5.3.4 模型训练方法,常用的验证方法包括简单验证,交叉验证和N维交叉验证。1.简单验证 简单验证是最基本的测试方法。它从原始数据集合中拿出一定百分比的数据作为测试数据,这个百分比大概在5%33%之间。注意:在把数据集合分成几部分时,一定要保证选择的随机性,这样才能使分开的各部分数据的性质是一致的。,5.3.4 模型训练方法,先用数据集合的主体把模型建立起来,然后用此模型来预测测试集中的数据。出现错误的
37、预测与预测总数之间的比称为错误率。对于分类问题,我们可以简单的下结论:“对”与“错”,此时错误率很容易计算。回归问题不能使用简单的“对”或“错”来衡量,但可以用方差来描述准确的程度。比如,用3年内预计的客户增长数量同3年内实际的数据进行比较。,5.3.4 模型训练方法,在一次模型的建立过程中,这种最简单的验证通常要执行几十次。例如,在训练神经网络时,几乎每一个训练周期都要在测试集上运行一次,不断的训练测试,直到在测试集上的准确率不再提高为止。,5.3.4 模型训练方法,2 交叉验证 简单验证适合在挖掘数据充沛的时候使用。如果数据不是很多,可能无法再把一部分数据放到一边不用,这样会使得数据的特征
38、丢失。交叉验证提供了一种使用全部数据的方法。首先把原始数据随机平分成两份,一部分做训练集,另一部分做测试集计算错误率,再把两部分数据交换再计算一次错误率。最后再用所有的数据建立一个模型,把上面得到的两个错误率进行平均做为最后模型的错误率。,5.3.4 模型训练方法,3.N-维交叉验证 N-维交叉验证是更通用的算法。它先把数据随机份成不相交的N份,比如把数据分成10份。先把第一份拿出来放在一边用做模型测试,把其它9份合在一起来建立模型,然后把这个用90%的数据建立起来的模型用第一份数据做测试。这个过程对每一份数据都重复进行一次,得到10个不同的错误率。最后把所有数据放在一起建立一个模型,模型的错
39、误率为上面10个错误率的平均。,5.3.4 模型训练方法,我们可以依据得到的模型和对模型的预期结果修改参数,再用同样的算法建立新的模型,甚至可以采用其它的算法建立模型。在数据挖掘中,不同的商业问题采用哪种模型效果更好,在没有行业经验的情况下,最好用不同的方法(参数或算法)建立几个模型,从中选择最好的。,5.3.4 模型训练方法,图9-19展示了一个多种算法结果的比较。图的横坐标是指选择的客户占客户群体的比例,纵坐标是指选中大客户的比例(假定大客户在客户群体中占10)。不同的曲线代表不同算法的结果。从图中可以看出,选择10的客户时,神经网络的正确率为90;回归算法的正确率是85;决策树的正确率是
40、70;随机抽样的正确率为10,因此神经网络算法的效果较好。从图9-19还可以看出,随着选择客户的比例增大,算法的效果逐渐下降。原因是在选择客户的初期,算法已经把绝大部分的大客户选择出来了。从本图可以充分的看出,使用模型进行选择和利用随机选择,其效果相差极大。,5.3.4 模型训练方法,5.3.5 数据挖掘模型的评价方法,在模型建立好之后必须评价其结果,并解释模型的含义和价值,只有这样才能将模型最终应用到商业环境中。从测试集中得到的准确率只对建立模型的数据有意义。在实际应用中,随着应用数据的不同,模型的准确率肯定会变化。更重要的是准确度自身并不是选择最好模型的正确评价方法。比如,模型A可能在某些
41、不太重要的问题上正确率高于模型B,此时我们不能简单地判断模型A比模型B好。需要进一步了解错误的类型和由此带来的相关效益/损失的多少。,5.3.5 数据挖掘模型的评价方法,(1)无序矩阵 对分类问题来说,无序矩阵是理解结果非常好的工具。用无序矩阵将预测的客户类型结果与实际的情况进行对比,得到的结果如表9-1所示。它不仅说明了模型预测的准确情况,也展现了模型问题的所在。,5.3.5 数据挖掘模型的评价方法,(1)无序矩阵表的理解:共有80名客户,实际有32个高价值客户,其中20个被正确预测,另外12个高价值客户被预测成了非高价值客户。实际有48个非高价值客户,其中28个被正确预测,另外20个被错误
42、预测成了高价值客户。显然模型总体准确度是60。无序矩阵比简单的说总体准确度是60体现了更多的信息。,5.3.5 数据挖掘模型的评价方法,(1)无序矩阵 在实际应用中,如果每种不同的预测错误所需付出的代价也不同,那么考虑代价最小的模型(而不一定是错误率最小的模型)就是所要选择的模型。如果每个准确的预测会带来¥10的收益,错误的预测A(非高价值客户预测成高价值客户)要付出¥5的代价,B(高价值客户预测成非高价值客户)要付出¥10的代价,整个模型的价值是:(10*20)-(5*20)+(10*28)-(10*12)=$260,5.3.5 数据挖掘模型的评价方法,(1)无序矩阵 考察下面的无序矩阵,虽
43、然准确度降低到57.5%(46/80),但价值却升高了。(10*8)-(5*32)+(10*38)-(10*2)=$280 这就是我们前面提到的正确率最高的模型不一定就是实际问题中最优的模型。,5.3.5 数据挖掘模型的评价方法,(2)收益表 通过无序矩阵确定最优的模型后还需要确定模型实施的范围。随着模型实施范围的变化,其产生的效果也将发生变化。因为模型实施的范围变大意味着需要更多的投入来实施,而其产生的效益随着范围的扩大可能很缓慢地增长。我们可以采用收益表来确定模型的最佳实施范围。针对不同的问题,收益表有两种形式:响应率变化曲线和投资回报率变化曲线。,5.3.5 数据挖掘模型的评价方法,(2
44、)收益表 图9-20显示了通过邮件推销商品客户响应率的变化情况。变化的比率称为lift。例如,随机抽取的方法选择10的客户的响应率是 10,而通过模型选取10的客户的响应率是 30,则lift的值为3。我们可以根据图中的结果,确定对客户进行推销的比例。比如规定lift值应高于2.5,则推销客户占总客户的比例可以设为15。,5.3.5 数据挖掘模型的评价方法,(2)收益表 收益表的另一种形式是投资回报率变化曲线(这里定义ROI利润与为此付出开销的比值)。图9-21是一个描述模型投资回报率的图表。当选取比例超过80时,ROI变成了负数,ROI最高是在横坐标为20时。而采用随机选择的方法,将使得RO
45、I始终为负值。我们可以根据图来确定模型实施的范围,选择ROI指数最高的位置作为模型实施的比例,也可以规定一个ROI的取值来确定模型实施的范围。,ROI,5.3.5 数据挖掘模型的评价方法,(2)收益表 我们也可以直接看利润的变化情况(利润为收入与投资的差值)。利润随选择比例的变化曲线如图9-22所示。理想情况下应该按照利润表行事,但很多情况下计算利润表非常复杂。,利润,5.3.5 数据挖掘模型的评价方法,(3)外部验证 无论用模拟的方法计算出来的模型的准确率有多高,都不能保证此模型在面对现实世界中真实的数据时能取得好的效果。经验证有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立
46、中隐含着各种假设。,5.3.5 数据挖掘模型的评价方法,例如,在建立用户购买模式的模型时,可能没有考虑通货膨胀的影响,但实施模型时通货膨胀率突然由3%增加为17%,这显然会对人们的购买意向产生重大影响。因此,再用原来的模型来预测客户购买情况必然会出现重大失误。直接在现实世界中测试模式很重要。我们可以先在小范围内应用模型取得测试数据,满意之后再向大范围推广,这是一种谨慎可行的方法。,5.3.6 数据挖掘的实施和维护,模型建立并经验证之后,有两种主要的使用方法。第一种是将模型的结果提供给分析人员作参考,由分析人员通过观察和分析这个模型之后提出行动方案建议。另一种使用模型的方法是把此模型应用到不同的
47、数据集上。模型可以用来标识一个事物的类别,给客户的价值、信用度打分等,然后使用OLAP工具做进一步的分析。,5.3.6 数据挖掘的实施和维护,在应用了模型之后,还要不断监控,因为事物在不断发展变化,很可能过一段时间之后模型就不再起作用或者效果变差。销售人员都知道,人们的购买方式随着社会的发展而变化。因此随着使用时间的增加,要不断地对模型做重新测试,有时甚至需要重新建立模型。,5.3.7 模型实例,利用SAS数据挖掘工具建立模型。这个模型由若干个模块组成。按照箭头所制的顺序,第一模块是进行数据挖掘的数据源,也就是准备好的挖掘数据。如果数据集合很大,则需要在这个模块中设定数据抽样的方法。模块“Da
48、ta Partition”对挖掘数据进行划分,一般SAS使用3:3:4的划分比例。前30%的数据用于确定模型的参数,接着的30%用于细化模型的参数,最后40%用于验证模型。,5.3.7 模型实例,模块“Replacement”对数据集合中不满足神经网络和回归算法需要的变量进行必要的转化工作。由于神经网络和回归算法需要限制变量的个数,模块“Variable Selection”负责对数据集合中的变量进行选择。接下来的3个模块分别是决策树、神经网络和回归算法模块。模块“Sorce”输出模型本身。在SAS挖掘工具中,模型是一段SAS系统支持的程序代码。我们可以利用这段程序将模型应用到实际的环境中。,
49、5.3.8 数据挖掘需要的人员,数据挖掘过程的分步实现,不同的步会需要是有不同专长的人员,他们大体可以分为三类。业务分析人员:要求精通业务,能够解释业务对象,并根据各业务对象确定出用于数据定义和挖掘算法的业务需求。数据分析人员:精通数据分析技术,并对统计学有较熟练的掌握,有能力把业务需求转化为数据挖掘的各步操作,并为每步操作选择合适的技术。数据管理人员:精通数据管理技术,并从数据库或数据仓库中收集数据。,5.3.8 数据挖掘需要的人员,从上可见,数据挖掘是一个多种专家合作的过程,也是一个在资金上和技术上高投入的过程。这一过程要反复进行,在反复过程中,不断地趋近事物的本质,不断地优化问题的解决方
50、案。,实施数据挖掘项目考虑的问题,实施数据挖掘项目应从以下三方面加以考虑:一是用数据挖掘解决什么样的商业问题;二是为进行数据挖掘所做的数据准备;三是数据挖掘的各种分析算法。,实施数据挖掘项目考虑的问题,数据挖掘的分析算法主要来自于以下两个方面:统计分析和人工智能(机器学习、模式识别等)。数据挖掘研究人员和数据挖掘软件供应商,在这一方面所做的主要工作是优化现有的一些算法,以适应大数据量。另外需要强调的是,任何一种数据挖掘的算法,不管是统计分析方法、神经元网络、各种树分析方法,还是遗传算法,没有一种算法是万能的。不同的商业问题,需要用不同的方法去解决。即使对于同一个商业问题,可能有多种算法,这个时