2020/3/6数据挖掘原理与SPSSClementine应用宝典元昌安主编邓松李文敬刘海涛编著电子工业出版社2020/3/622020/3/63本章包括:数据挖掘项目实施步骤123数据挖掘项目周期•单击此处添加段落文字内容•单击此处添加段落文字内容•单击此处添加段落文字内容•单击此处添加段落文字内容•单击此处添加段落文字内容•单击此处添加段落文字内容建立项目和报告处理缺失值导入和导出PMML模型3452020/3/623.1数据挖掘项目实施步骤23.1.1一般实施步骤一般而言,数据挖掘项目要经历的过程包括:问题理解和提出、数据准备、数据整理、建立模型、评价和解释等一系列任务,其流程如图23-1所示。2020/3/623.1.2企业解决方案23.1.2.1SEMMA模式2020/3/623.1.2.2SPSS-5A模型2020/3/6723.1.3标准过程模型•商业理解•数据理解•数据准备•建立模型•模型评估•模型发布2020/3/623.2数据挖掘项目周期2020/3/623.3建立项目和报告23.3.1项目概述表面上,Clementine项目只是一种组织输出的简单方式,但实际上它能做更多的工作,主要包括以下工作:(1)注释项目文件中的每个对象。(2)使用CRISP-DM方法指导数据挖掘工作。项目还包含CRISP-DM帮助系统,该系统针对使用CRISP-DM进行的数据挖掘提供详细信息以及现实示例。(3)将非Clementine项目添加到Clementine项目,如用于展现数据挖掘目标的PowerPoint幻灯片或与计划使用的算法相关的文档等。(4)根据注解生成全面更新报告和简单更新报告。为了便于在局域网上发布,可以用HTML的形式生成这些报告。2020/3/623.3.1.1CRISP-DM视图2020/3/623.3.1.2类视图2020/3/623.3.2建立项目23.3.2.1新建项目在Clementine窗口中新建项目非常简单。可以从构建新项目开始(如果没有项目打开),也可以关闭现有项目并重新开始。从流工作区菜单中,选择“文件”→“工程”→“新建工程...”命令。2020/3/623.3.2.2添加到项目创建或打开项目后,便可以使用多种方法来添加对象,如数据流、节点和报告等。(1)用管理器添加对象使用Clementine窗口右上角的管理器,可以添加流或输出。从其中一个管理器选项卡中选择一个对象(如表或流)。右键单击,然后选择“添加到工程”命令。如果以前保存过该对象,则会自动将它添加到适当的对象文件夹(在类视图中)或默认的阶段文件夹(在CRISP-DM视图中)。或者,可以将对象从管理器拖放到项目工作区中。将项目添加到项目工程中,如图23-7从项目管理器中加入项目项到工程中所示。2020/3/6(2)从工作区添加节点可以使用“保存”对话框从流工作区添加单个节点。在工作区中选择一个节点。单击右键,然后选择“保存节点”命令;或者,从菜单中选择“编辑”→“节点”→“保存节点...”命令。在“保存”对话框中,选中“将文件添加到工程”命令。为节点创建名称,然后单击“保存”命令。从流工作区中加入节点的主要操作对话框如图23-8从流工作区中加入节点所示,这样会保存文件并将其添加到项目中,同时节点会被添加到类视图中的Nodes文件夹以及CRISP-DM视图中的默认阶段文件夹。2020/3/6(3)添加外部文件将外部文件添加到项目的一般步骤如下:Step1.将文件从桌面上直接拖到项目中;或右键单击CRISP-DM视图或类视图中的目标文件夹。Step2.从菜单中,选择“添加到文件夹”命令。Step3.在对话框中选择一个文件,然后单击“打开”命令。这将会在Clementine项目内添加对所选对象的引用。2020/3/623.3.2.3设置项目属性可以使用项目属性对话框来自定义项目的内容和文档。要访问项目属性,一般执行以下操作:Step1.右键单击项目工具中的根文件夹,然后选择“工程属性”命令;或者右键单击项目工具中的非根文件夹,然后选择“工程”→“工程属性”命令。工程选项卡对话框如图23-9工程选项卡对话框所示。Step2.单击“工程”选项卡以指定项目的相关信息。2020/3/6在工程选项卡中包含下列信息,如图23-9工程选项卡对话框所示。创建时间:显示项目的创建时间(此项内容不可编辑)。摘要:可以输入将在项目报告中显示的数据挖掘项目的摘要。内容:列出项目文件引用的组成文件的类型和数量(此项内容不可编辑)。将未保存的对象保另存为单选项:指定是应将未保存的对象保存到本地文件系统还是存储在PredictiveEnterpriseRepository中。载入项目时更新对象引用复选框:选中此选项可更新项目对其组成文件的引用。2020/3/623.3.2.4注解项目项目工具提供了多种方式来注解数据挖掘工作。项目级注解常用于跟踪宏观目标和决策,而文件夹或节点注解提供其他详细信息。“注解”选项卡提供了足够空间记录项目级详细信息,比如具有不可恢复丢失数据的数据排除、数据探索过程中形成的可能假设等。2020/3/623.3.2.5对象属性可以查看对象属性并选择是否在项目报告中纳入单个对象。要访问对象属性,需要执行以下操作:Step1.右键单击项目窗口中的对象。Step2.从菜单中,选择“对象属性”命令。对象属性的设置,如图23-12对象属性对话框所示。2020/3/62023.3.2.6关闭项目关闭项目文件的操作步骤一般如下:Step1.从“文件”菜单中,选择关闭项目。Step2.如果系统询问是关闭所有与项目关联的文件还是让其保持打开,请单击“保持打开”命令,将关闭工程文件(.cpj)本身而让所有关联文件(如流、节点或图形等)保持打开。2020/3/623.3.3建立报告项目最有用的一项功能是能够根据项目项和注解生成报告。可以直接生成若干种文件类型的报告,也可以直接输出到屏幕窗口以便立即查看。从输出窗口中,可以打印、保存或查看Web浏览器中的报告。还可以将保存的报告分发给组织中的其他人。2020/3/623.3.3.1设置报告选项2020/3/623.3.3.2生成报告2020/3/623.3.3.2保存和输出报告在屏幕上生成的报告显示在新输出窗口中,此报告中包括的所有图形都会显示为内嵌图像。保存报告的一般步骤如下:Step1.从“文件”菜单中,选择“保存”命令。Step2.指定文件名。导出报告的一般步骤如下:Step1.从“文件”菜单中,选择导出以及要导出为的文件类型。Step2.指定文件名。可以将报告导出为如下类型的文件:HTML文本MicrosoftWordMicrosoftExcelMicrosoftPowerPoint2020/3/623.4处理缺失值23.4.1指定缺失值用户可以用类型节点或者来源节点的类型选项卡来指定某个特定的值为缺失值,也可以决定是否把系统的缺失值或空白看作空格。在“缺失”栏上,从下拉菜单中选择“指定…”来打开一个对话框,然后确定缺失值选项。如图23-16确定连续变量的缺失值所示。2020/3/6图23-16确定连续变量的缺失值2020/3/623.4.2处理缺失值用户应根据所从事的专业领域知识来确定如何处理缺失值。为了减少训练时间以及提高精度,可能需要除去数据集中的空值。此外,空值的出现还可能会带来新的业务机会或其他灵感。在Clementine中有许多技巧来处理缺失值,可以根据数据的以下特征来选择最佳方法:数据集的大小包含空值的字段数缺失信息量一旦分析了上述因素,就可以选择下述两种方法来处理:忽略带有缺失值的字段或记录可以使用各种方法归因、替换或强制赋值缺失值2020/3/623.4.2.1处理带缺失值的记录如果大部分缺失值都集中在少量记录中,只需排除这些记录即可。例如,银行通常会保存详细而完整的贷款客户的记录。但是,如果银行在审批内部职员的贷款时管制不严,则所收集的员工贷款数据可能会存在空白字段。此种情况下,有两种方法可以处理缺失值:可以使用选择节点删除员工记录。如果数据集很大,使用者可以在一个选择节点上,使用@BLANK和@NULL函数来剔除带有空格的所有记录。2020/3/623.4.2.2处理带缺失值的字段如大部分缺失值都集中在少量字段中,可通过字段而不是记录查找这些缺失值。确定要采用的方法时,还应考虑带有缺失值的字段类型。数值字段对于数值字段类型(如范围),应在构建模型前清除所有非数字值,因为如果数值字段中包含空值,很多模型将无效。分类字段对于分类字段(如集合和标志),虽然不必更改缺失值,但更改后可以提高模型的精度。2020/3/6要筛选或删除带有大量缺失值的字段,可以采用以下几种方法:使用数据审核节点根据质量过滤字段。可以使用特征选择节点来筛选缺失值超过指定百分比的字段,并根据相对于特定目标的重要性来对字段进行排序。除删除字段以外,还可以使用类型节点将字段方向设置为无。此操作可将字段保留在数据集中,但不会对其进行建模操作。2020/3/623.4.2.3归因或填充缺失值在仅有少量缺失值的情况下,可以用插入值来替换空值。下列方法可用于输入缺失值:替换为固定值(可以选用字段平均值、范围中间值或者指定的常数)。替换为基于正态分布或均匀分布产生的随机值。用于指定定制表达式。例如,可以使用设置全局量节点创建的全局变量进行替换。基于C&RT算法替换为模型预测的值。对于使用此方法输入的每个字段,都会有一个单独的C&RT模型,还有一个填充节点会使用该模型预测的值替换空白值和Null值。然后使用过滤节点删除该模型生成的预测字段。如果还要为特定字段强制赋值,则可以使用类型节点来确保字段类型仅包含合法值,然后将需要替换空值字段的检查列设置为强制。2020/3/623.4.3用CLEM函数处理缺失值表达式操作语言CLEM全名为ClementineLanguageforExpressionManipulation,是在Clementine中执行函数运算时的专用语法,用于分析和操纵在Clementine流中流动的数据,是一个功能强大的语言。2020/3/6有多个CLEM函数可用于处理缺失值。选择节点和填充节点中经常会用以下函数来删除或填充缺失值:count_nulls(LIST)@BLANK(FIELD)@NULL(FIELD)undef@函数可以与@FIELD函数一起使用,来识别一个或多个字段中是否存在空值或非Null值。当出现空值或非Null值时,一般会对此类字段进行标记,也可以用替换值填充或者在各种其他操作中使用此类字段。如下所示,可以计算字段列表中的非Null值的数量:count_nulls([‘cardtenure’‘card2tenure’‘card3tenure'])如果要使用接受输入类型的字段列表的函数,则可以使用特定的@FIELDS_BETWEEN和@FIELDS_MATCHING函数,如下所示:count_nulls(@FIELDS_MATCHING(‘card*'))在选择字段中用填充节点把缺失值替换成0,如图23-18用填充节点将选定字段中的非Null值替换为0所示。2020/3/623.5导入和导出PMML模型PMML(predictivemodelmarkuplanguage,称为预测模型标记语言)是一个XML基础的标准,以XML文件类型定义DTD形式,用于描述数据挖掘和统计模型,包括模型的输入、用于为数据挖掘准备数据的变换、以及定义模型自身的参数。Clementine可导入和导出PMML模型,使其能够与其他支持此格式的应用程序(例如,SPSS、SPSSCategorize)共享模型。2020/3/623.5.1支持PMML的模型类型23.5.1.1PMML3.1导入Clementine可以导入并评分由SPSS所有