IBM SPSS Modeler 简介html
做为 IBM 分析与预测解决方案的重要组成部分,IBM SPSS Modeler 是一组数据挖掘工具,经过这些工具能够采用商业技术快速创建预测性模型,并将其应用于商业活动,从而改进决策过程。随着于 2010 年其新版本 14.1 的发布,名字也由 PASW Modeler 改名为如今的 IBM SPSS Modeler 。node
SPSS Modeler 提供了各类借助机器学习、人工智能和统计学的建模方法。经过建模选项板中的方法,您能够根据数据生成新的信息以及开发预测模型。每种方法各有所长,同时适用于解决特定类型的问题。算法
初次上手数据库
典型的 SPSS Modeler 界面以下:网络
图 1. SPSS Modeler 界面
dom
接下来将详细介绍其基本概念及操做。机器学习
基本概念:节点ide
节点表明要对数据执行的操做。工具
例如,假定您须要打开某个数据源、添加新字段、根据新字段中的值选择记录,而后在表中显示结果。在这种状况下,您的数据流应由如下四个节点组成:学习
表 1. 节点示例
![]() |
变量文件节点,设置此节点后能够读取数据源中的数据。 |
![]() |
导出节点,用于向数据集中添加计算的新字段。 |
![]() |
选择节点,用于设置选择标准,以从数据流中排除某些记录。 |
![]() |
表节点,用于在屏幕上显示操做结果。 |
基本概念:数据流
SPSS Modeler 进行的数据挖掘重点关注经过一系列节点运行数据的过程,咱们将这一过程称为数据流。也能够说 SPSS Modeler 是以数据流为驱动的产品。这一系列节点表明要对数据执行的操做,而节点之间的连接指示数据的流动方向。如,上面提到的四个节点能够建立以下数据流:
图 2. 数据流示例
一般,SPSS Modeler 将数据以一条条记录的形式读入,而后经过对数据进行一系列操做,最后将其发送至某个地方(能够是模型,或某种格式的数据输出)。使用 SPSS Modeler 处理数据的三个步骤:
在 SPSS Modeler 中,能够经过打开新的数据流来一次处理多个数据流。会话期间,能够在 SPSS Modeler 窗口右上角的流管理器中管理打开的多个数据流。
图 3. 流管理器
节点选项板
节点选项板位于流工做区下方窗口的底部。
图 4. 节点选项板
每一个选项板选项卡均包含一组不一样的流操做阶段中使用的相关节点,如:
随着对 SPSS Modeler 的熟悉,您能够在收藏夹自定义经常使用的选项板内容。
使用节点和流
要将节点添加到工做区,请在节点选项板中双击图标或将其拖放到工做区。已添加到流工做区的节点在链接以前不会造成数据流,能够将各个图标链接以建立一个表示数据流动的流,节点之间的链接指示数据从一项操做流向下一项操做的方向。
SPSS Modeler 中最多见的鼠标用法以下所示:
建立了流之后,能够对流进行保存、添加注解,将其添加到工程。从文件主菜单中,选择流属性还能够为流设置各类选项,如优化、日期和时间设置、参数和脚本。使用流属性对话框中的消息选项卡,能够轻松查看有关运行、优化和模型构建和评估所用时间等流操做有关的消息,流操做的错误消息也将在这里报告。
SPSS Modeler 管理器
可使用流选项卡打开、重命名、保存和删除在会话中建立的多个流。
图 5. 流管理器
输出选项卡中包含由 SPSS Modeler 中的流操做生成的输出或图形文件。您能够显示、保存、重命名和关闭此选项上列出的表格、图形和报告。
图 6. 输出文件管理器
模型选项卡是管理器选项卡中功能最强大的选项卡。该选项卡中包含全部模型块,如当前会话中生成的模型,经过 PMML 导入的模型等。这些模型能够直接从模型选项卡上浏览或将其添加到工做区的流中进行数据分析。
图 7. 模型管理器
窗口右侧底部是工程工具,用于建立和管理数据挖掘工程(与数据挖掘任务相关的文件组)。有两种方式可查看您在 SPSS Modeler 中建立的工程 - 类视图或 CRISP-DM 视图。
依据跨行业数据挖掘过程标准 CRISP-DM选项卡提供了一种组织工程的方式。不管是有经验的数据挖掘人员仍是新手,使用 CRISP-DM 工具都会使您事半功倍。
图 8. 工程工具 -CRISP-DM 视图
类选项卡提供了一种在 SPSS Modeler 中按类别(按照所建立对象的类别)组织您工做的方式。此视图在获取数据、流、模型的详尽目录时十分有用。
图 9. 工程工具 - 类视图
建模简介
模型是一组规则、公式或方程式,能够用它们根据一组输入或变量来预测输出。例如,一家财务机构可根据对过往申请人的已知信息,使用模型预测贷款申请人可能存在优良仍是不良风险。预测结果是预测性分析的中心目标,了解建模过程是使用 SPSS Modeler 的关键。
图 10. 简单的决策树模型
本示例使用 CHAID(卡方自动交互效应检测)模型,经过一系列决策规则对记录进行分类(并预测用户响应),例如:
若是收入 = 中等 而且卡 <5 则 ->“优良” |
本示例旨在介绍使用 SPSS Modeler 进行数据挖掘的基本流程,其中大部分概念可普遍应用于 SPSS Modeler 中的其余建模类型。
不管要了解哪一种模型,均须要首先了解进入该模型的数据。此示例中的数据包含有关银行客户的信息。其中使用了下列字段:
表 2. 数据字段
字段名 | 描述 |
---|---|
Credit_rating | 信用评价:0= 不良,1= 优良,9= 丢失值 |
年龄 | 客户年龄 |
收入 | 收入水平:1= 低,2= 中,3= 高 |
Credit_cards | 持有的信用卡数量:1= 少于五张,2= 五张或更多 |
教育 | 教育程度:1= 高中,2= 大学 |
Car_loans | 贷款的汽车数量:1= 没有或一辆,2= 超过两辆 |
银行可维护银行贷款客户的历史信息,包括客户是正常还贷(信用评价 = 优良)仍是在拖欠贷款(信用评价 = 不良)。银行但愿使用现有的数据创建一个模型,容许他们预测将来贷款申请人拖欠贷款的可能性。使用决策树模型,您可分析这两组客户的特征,并预测不良客户拖欠贷款的可能性。
构建流
本示例使用了名为 modelingintro.str的流,数据文件是 tree_credit.sav。(与示例一块儿使用的数据文件和样本流安装在产品安装目录下的 Demos 文件夹中。)
咱们来看一下流:
图 11. ‘打开’对话框
在本例中,咱们使用 CHAID 建模节点。CHAID,或卡方自动交互效应检测,是一种经过使用称做卡方统计量的特定统计类型识别决策树中的最优分割来构建决策树的分类方法。
要构建流以建立模型,至少须要三个元素:
该流中还包含表节点和分析节点,当建立模型块并将其添加到流之后,可以使用这两个节点查看评分结果以评估模型。
图 12. 流 modelingintro.str
Statistics 文件源节点从 tree_credit.sav 数据文件读取 SPSS Statistics 格式数据,该文件安装在 Demos 文件夹中。(名为 $CLEO_DEMOS 的特殊变量用于引用安装目录位于 Demos 目录下的文件。这样,不管当前的安装文件夹或版本是什么,都可以确保路径有效。如在本例中能够写做:$CLEO_DEMOS/tree_credit.sav,与图中全路径效果是同样的。)
图 13. 源节点
类型节点指定每一个字段的测量级别。测量级别是一种指示字段中数据类型的类别。咱们的源数据文件使用三种不一样的测量级别:
连续字段(Continuous,例如年龄字段)包含连续的数字值,而名义字段(Nominal,例如信用评价字段)有两个或多个不一样值,如不良、优良或无信用历史。有序字段(Ordinal,例如收入水平字段)用于描述具备顺序固定的不一样值的数据,在本例中为低、中和高。
对于每一个字段,类型节点还指定角色,以指示每一个字段在建模中扮演的部分。字段信用评价(Credit rating)指示指定的客户是否拖欠贷款,这是要预测的目标字段,将其角色设置为目标。对于其余字段,将角色设置为输入。输入字段也称为预测变量,即建模算法用来预测目标字段值的字段。
CHAID建模节点生成模型。在建模节点的字段选项卡中,已选中使用预约义角色,这意味着将使用在类型节点中指定的目标字段和输入字段。能够在此处更改字段角色,但在本例中不作任何更改。
图 14. CHAID 模型节点 - 字段页
单击‘构建选项’选项卡。
图 15. CHAID 模型节点 - 构建选项页 - 目标项
此处包含的选项能够用于指定要构建的模型类型。因为咱们想要一个全新的模型,所以使用默认选项构建新模型。咱们还要求它为单个标准决策树模型,而且不使用任何加强,所以保留默认目标选项构建单个树。还能够选择启动交互会话对模型进行手动的微调,本示例只使用默认设置来生成模型。
对于此示例,咱们但愿保持树的结构简单,所以经过增长用于父节点和子节点的最小记录数限制树的增加。
图 16. CHAID 模型节点 - 构建选项页 - 中止规则项
咱们可使用全部其余默认选项,而后单击运行以建立模型。(或者,也能够右键单击该节点而后选择运行,或选择节点并从工具主菜单中选择运行。)
浏览模型
等一小段时间当流执行完成后,模型块将被添加到应用程序窗口右上角的模型选项板中,它还会被自动链接在流工做区中,并带有指向建立它的建模节点的连接。要查看模型的详细信息,右键单击模型块并选择浏览(在模型选项板上)或编辑(在工做区上)。
图 17. 包含模型块的流 modelingintro.str
对于 CHAID 模型块,模型选项卡以规则集的形式显示详细信息,规则集其实是可根据不一样输入字段的值将各个记录分配给相应子节点的一组规则。
图 18. CHAID 模型块 - 模型页
对于每一个决策树终端节点 -- 意味着那些树节点没有再进一步拆分 -- 返回优良或不良的预测值。对于落在该节点内的记录,全部个案中的预测均由模式或最多见的响应决定。
在规则集的右侧,模型选项卡显示预测变量重要性图表,该图表显示评估模型时每一个预测变量的相对重要性。经过这一点,咱们看到收入水平 (Income level)在此个案中最显著,而其余惟一显著的因子是信用卡数量(Number of credit cards)。
图 19. CHAID 模型块 - 变量重要性
模型块中的查看器选项卡以树的形式显示相同的模型,每一个决策点上都有一个节点。可以使用工具栏上的缩放控件放大特定节点,或缩小节点以查看更完整的树。
图 20. CHAID 模型块 - 查看器页
查看树的上部分,第一个节点(节点 0)为咱们提供数据集中全部记录的摘要。数据集中超过 40% 的个案分类为不良风险。这是至关高的比例,所以让咱们看看树可否提示哪些因素起决定做用。咱们能够看到第一个分割是根据收入水平产生的。收入水平位于低类别的记录被指定到节点 2,能够看到此类别包含贷款拖欠的百分比最高 --82%。所以咱们认为此类别的客户都具备高风险。可是要注意的是,此类别中有 16% 客户实际上没有拖欠,所以说预测并不是始终准确。事实上没有模型可以精确预测全部的结果,但好的模型可以根据可用数据预测出最接近的结果。
一样,若是咱们查看高收入客户(节点 1),咱们看到绝大部分 (89%) 是优良风险。可是在这个类别中 10 位客户也有 1 位会拖欠。还能继续精炼贷款标准以便将此处的风险最小化吗?咱们继续看,接下来模型根据客户持有的信用卡数量,将这些客户分红两个子类别(节点 4 和节点 5)。对于高收入客户,若是咱们只向那些信用卡少于 5 张的客户贷款,则能够将咱们的成功率从 89% 提升到 97%-- 很明显是一个更满意的结果。
图 21. CHAID 模型块 - 高收入客户
回过头来看看中等收入类别(节点 3)中的那些客户是什么状况呢?他们更加均匀地划分为优良和不良评价。子类别(节点 6 和 7)此次仍然能帮助咱们。若是只向那些信用卡少于 5 张的中等收入客户贷款,可将优良评价的百分比从 58% 提升到 85%-- 显著的改进。
图 22. CHAID 模型块 - 中等收入客户
至此,咱们了解到输入此模型的每项记录都将被分配到一个特定节点,而且根据该节点最多见的结果分配在优良或不良中二选一的预测值。
为各个客户记录分配预测值的过程称为评分 (Scoring)。由于咱们已经知道原始记录中每一个客户的状况,经过对这些原始记录进行评分并与实际值相比较,能够评估该模型的准确度。让咱们看看如何作到这一点。
评估模型
要评估模型的准确度,须要对一些记录(这里咱们用原始记录)进行评分,并将模型预测的结果与实际结果进行比较。
图 23. 包含输出的流 modelingintro.str
要查看分数或预测值,请将表节点链接到模型块,双击表节点,而后单击运行。
能够从表中看到,模型建立了一个名为 $R-Credit rating 的字段,用来显示预测值。咱们能够将这些值与原始信用评价字段进行比较。
图 24. CHAID 模型输出表格
在 SPSS Modeler 中,在评分过程当中生成的字段的名称基于目标字段,再加上标准前缀,例如 $R- 表示预测值,$RC- 表示置信度值。不一样的模型类型使用不一样的前缀集。置信度值(confidence value)是模型本身作的评估,尺度从 0.0 到 1.0,表示每一个预测值的精确程度。
与预期的同样,预测值与大多数(并不是所有)记录的实际值相匹配。缘由是每一个 CHAID 终端节点均包含混合值,而预期值与大部分结果相匹配,对于该节点中的其余结果,该预期值是错误的。(还记得节点 2 中 16% 的少部分低收入客户实际上是没有拖欠的吗?)若要避免出现此状况,可继续将树分割为更小的分支,直到每一个节点都不含混合值 (100%) 为止—即所有为优良或不良。可是,这样的模型会很是复杂,而且不易推广到其余数据集。
要查看具体有多少预测值正确,咱们可通读表格,并数一数预测字段 $R-Credit rating的值匹配信用评价的值的记录数量。幸运的是,咱们有更简单的方式 -- 使用分析节点,它将帮助咱们自动进行此项操做:将模型块链接到分析节点,双击分析节点,而后单击运行。
分析代表,2464 个记录中有 1960 个记录(约 80%)的模型预测值与实际值相匹配。
图 25. CHAID 模型分析结果
注意咱们用来评分的记录和评估模型的记录是同一批数据。在真实状况中,可以使用分区(partition)节点将数据分割为两个样本分别用于培训模型和评估模型。经过使用一个样本生成模型并使用另外一个样本对模型进行检验,您可更有意义地评估将模型推广到其余数据集的状况。
这一阶段咱们经过分析节点能够针对已知道其实际结果的记录来检验模型。下一阶段将介绍如何使用模型对咱们不知道结果的记录进行评分。例如,当前不是银行客户可是可作为促销对象的人群。
对记录评分
如今,咱们要查看如何对不一样的记录集进行评分。这是进行建模的目标:研究已知道结果的记录,以找出模式可让您预测未知结果记录的结果。
图 26. 包含评分数据的流 modelingintro.str
咱们能够更新 Statistics 文件源节点使它指向其余数据文件,也能够添加一个新的源节点,用它读取要评分的数据。不管采用哪一种方式,新数据集必须包含建模所使用的全部输入字段(年龄、收入水平、教育等),但不包含目标字段信用评价。运行表节点便可获得结果,咱们就不在这里执行了。
另外,也能够将模型块添加到包含输入字段的任何流中。不管数据源是文件仍是数据库,只要字段名和类型与模型使用的相匹配,源类型都可有可无。还能够将模型块保存为单独的文件、或将模型导出为 PMML 格式以用于其余支持此格式的应用程序,或将模型存储到 IBM SPSS Collaboration and Deployment Services 存储库中,这样能够在企业范围对模型进行部署、评分和管理。不管使用何种基础结构,模型自身都按相同的方式工做。
摘要
本示例演示建立、评估模型以及对模型评分的基本步骤。
自动建模
对客户响应建模(自动分类器)
经过自动分类器(Auto Classifier node )节点,您能够为标志字段(例如某个客户是否极可能拖欠贷款或者是否会对特定的报价作出响应)或名义(集合)字段目标自动建立和比较多个不一样模型。在本例中,咱们将使用标志(是或否)字段。在一个相对简单的流中,节点生成一组候选模型并对它们进行排序,选择最有效的模型而后将它们合并为一个汇总(总体)模型。此方法将自动化操做的方便性与组合多个模型的优点融为一体,一般能产生单一模型所不能带来的更为准确的预测。
本示例以某虚构的公司为例,该公司但愿经过为每一个客户提供最合适的报价以获取更丰厚的收益。此方法突出了自动操做的优点。咱们使用安装在 streams 目录下 Demo 文件夹中的流 pm_binaryclassifier.str,所使用的数据文件为 pm_customer_train1.sav。
图 27. 流 pm_binaryclassifier.str
历史数据
文件 pm_customer_train1.sav的历史数据包含过去的营销活动中为特定客户提供的报价,由 campaign字段的值表示,其中值为 Premium account的记录数最多。campaign 字段的值在数据中实际编码为整数(例如 2 = Premium account)。稍后,您可为这些值定义标签以产生更有意义的输出。
图 28. 数据样本
此外,其中还有字段表示每位客户的相关人口统计和财务信息。这些字段可用于构建或训练一个模型,经过基于收入、年龄或每个月交易次数等特征来预测单个用户或用户群的响应几率。
构建流
添加使用 pm_customer_train1.sav的 Statistics 文件源节点,该文件位于 SPSS Modeler 安装程序的 Demos 文件夹中。(您能够在文件路径中指定 $CLEO_DEMOS/ 做为引用此文件夹的快捷方式。请注意,路径中必须使用正斜线而非反斜线,如图所示。)
图 29. 源节点
添加类型节点,而后选择响应(response)做为目标字段(设置其角色为目标)。将此字段的测量设置为标志。
对于如下字段,将角色设置为无:customer_id、campaign、response_date、purchase、purchase_date、product_id、Rowid和 X_random。由于这些字段(如用户 ID)对于构建模型实际上是无心义的,把角色设置为无之后,构建模型时将自动忽略这些字段。
单击类型节点的读取值按钮以确保值得到实例化。
常见问题:当您在运行流的时候出现如下错误时,能够在类型节点中(流中没有类型节点时请先手动添加一个)单击读取值而后再运行流:
咱们的源数据包含四项不一样活动的信息,每一个活动针对不一样类型的客户。这些活动在数据中编码为整数,为了方便记住每一个整数所表明的账户类型,让咱们为每一个整数都定义一个标签。
在活动(campaign)字段的行上,单击值列中的条目。从下拉列表选择指定。
图 30. 类型节点
在标签列中,键入活动字段四个值中每一个值将显示的标签。单击肯定。
图 31. 类型节点 - 指定标签
如今咱们可在输出窗口中显示标签而非仅仅是整数了。
图 32. 输出标签的表格
尽管数据包含有关四项不一样活动的信息,但每一次的分析应集中关注其中一项活动。因为 Premium account 活动(在数据中编码为 campaign=2)中的记录数最多,所以可使用选择节点实现仅在流中包含这些记录。
图 33. 选择节点
生成和比较模型
附加一个自动分类器节点,而后选择整体精确性做为对模型进行排序的度量。
将要使用的模型数设置为 3。这意味着在执行节点时将只选择三个最佳模型。
图 34. 自动分类器节点 - 模型页
在专家选项卡上,可从最多 11 种不一样模型算法中进行选择。
取消选择判别式和 SVM模型类型。(这些模型须要花费更多时间培训这些数据,所以取消选中它们将能够加快示例的执行速度。若是您不介意稍等一下,也能够保留它们的选中状态。)因为在模型选项卡上将要使用的模型数设置为 3,所以节点将计算所选择九个算法的准确性,而后选择三个最准确的算法来构建一个模型块。
图 35. 自动分类器节点 - 专家页
在设置选项卡上,选择总体方法为置信度加权投票。此选项将肯定如何为每条记录生成一个评分。
使用简单投票方式时,若三个模型中有两个模型均预测是,则是将以 2 比 1 的投票结果取胜。在使用置信度加权投票方式时,将基于各预测的置信度值进行加权投票。所以,若是一个预测否的模型的置信度比两个预测是的模型合在一块儿的置信度还高的话,则否取胜。
图 36. 自动分类器节点 - 设置页
单击运行。
几分钟后(实际状况中,因为大型数据集每每须要建立数百个模型,这可能会花费数小时或更长的时间),构建生成的模型块将放到工做区和窗口右上角的模型选项板中。您可浏览模型块,或以多种其余方式将其保存或部署。
咱们从工做区打开模型块,它将列出在运行期间所建立的每一个模型的详细信息。若是须要进一步探索任何单独的模型,可在模型列中双击此模型块图标,以浏览单独模型结果,甚至能够用它们生成建模节点、模型块或评估图表。在图形列中,能够双击缩略图生成标准大小的图形进行直观的显示。
图 37. 自动分类器模型块 - 模型页
默认状况下,模型会基于整体精确性排序,这是咱们在自动分类器节点模型选项卡中选择的度量。根据这一度量,C51 模型的精确性最高,但 C&R 树和 CHAID 模型的精确性与之相差不大。您能够经过单击其余列的标题对该列进行排序,或者也能够从工具栏的排序方式下拉列表中选择所需的度量。
基于这些结果,咱们决定使用全部三个最准确的模型。经过结合多个模型的预测,能够避免单个模型的局限性,从而使总体准确性更高。在是否使用列中,选择 C51, C&R 树和 CHAID 模型。
在模型块后附加一个分析节点(位于下方输出选项板)。右键单击分析节点,而后选择运行以运行流。
由总体模型生成的汇总得分将显示在名为 $XF-response 的字段中。当根据训练数据评分时,预测值与实际响应(如原始响应字段中的记录所示)匹配的整体精确性为 92.82%。尽管这不如本例中三个模型的最高精确性高(C51 为 92.86%),但它们之间的差距小得能够忽略不计。通常来讲,总体模型应用到训练数据以外的数据集时,一般比单个模型效果更好。
图 38. 自动分类器模型块的分析结果
摘要
综上所述,咱们使用自动分类器节点比较了多种不一样的模型,而后使用三个最准确的模型并将它们做为一个总体自动分类器模型块添加到流中。
小结
本文从 IBM SPSS Modeler 基本概念开始详细介绍其基本操做,经过典型的数据挖掘算法介绍使用 SPSS Modeler 进行数据挖掘的基本流程,以及 SPSS Modeler 强大的自动建模功能。
本文所展现的只是 SPSS Modeler 很基础的一小部分使用。随着用户使用的加深,将会了解到 SPSS Modeler 更为强大的功能,如 ADP(自动数据准备)、数据库建模等等。
spss modeler:http://bigdata.evget.com/product/168.html
spss statistics:http://bigdata.evget.com/product/330.html