如何通过IBM SPSS Modeler对数据进行处理和建模

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过IBM SPSS Modeler对数据进行处理和建模相关的知识,希望对你有一定的参考价值。

一、获取数据

1、打开 IBM SPSS Modeler 客户端,点击左下角的 Server 按钮,选择要连接的 Modeler Server,这里需要说明的就是如果 SDAP 装在和 Modeler Client 在一台机器,那么就选择 Local Server;

如果不在同一台机器,而是和单独的 Modeler Server 装在一台机器,就选在添加按钮,输入机器的主机名或者 IP 地址,设置登录的用户名和密码,点击完成按钮,如图 7 所示:

2、连接上 Modeler Server 之后,在源选项双击数据库节点,然后就可以添加数据库源节点到数据流工作区,双击节点,在数据项选择添加一个数据库连接,然后 Modeler Client 会将 Modeler Server 所在机器的所有 ODBC 查询出来,找到需要连接的数据库连接信息,输入用户名和密码后,点击连接按钮,选择完成然后进入选择表,这里以 SQL Server 为例,如图 8 所示:

3、点击完成按钮后,在表名列点击选择按钮,选择表名,这里以 dbo.Modeler_Drug1 为例,如图 9 所示:

4、选择表后,节点自动读取表结构。

用同样的方法再添加两个数据库节点,选择 ODBC 为 DB2 和 Oracle, 输入用户名和密码之后,就可以选择要读取数据的表名了。这样就完成了用 Modeler Client 读取数据库数据的操作,然后要进行的就是对数据的处理。

首先利用 Modeler 的 Merge 节点对 DB2 和 Oracle 中的两张表的数据进行合并,处理后的结果是得到的数据一部分来自 DB2 数据库,一部分来自 Oracle 数据库。对于来自 Oracle 数据库的数据,取 3 个字段的值:

对于来自 DB2 数据库的数据,取 4 个字段:

二、数据处理

1、双击记录选项中的 Merge 节点,然后将 DB2 和 Oracle 两个节点与之连接,双击 Merge 节点,可以看到处理后的数据包括来自 DB2 和 Oracle 的 7 个字段:

2、然后需要通过 Modeler 的 Append 节点将 Merge 后的数据追加到来自 SQL Server 数据库的数据。双击记录选项中的 Append 节点,在流工作区中将 Merge 节点和 SQL Server 数据源节点与之连接,这样得到的就是来自三个数据库的数据了。

还可以通过 Modeler 的其他节点对数据进行进一步的处理,比如通过选择节点,可以设置条件来选择需要的数据,或者通过排序节点对某几个列进行排序等等。

三、建模

1、最后要做的就是对处理过的数据进行建模了,首先需要设定一个 Target 列,也就是需要预测的列。

通过 Modeler 的 Type 节点设置 Target 列,在字段选项双击 Type 节点,在流工作区中将 Append 节点与之连接,双击 Type 节点,修改 Drug 列的角色为 Target,其他默认为 Input 。

2、然后就是选择要使用的模型了,这里以神经网络为例,在模型选择中双击神经网络节点,在流工作区中将 Type 节点与之连接,打开神经网络节点,可以看到是通过所有的角色为 Input 的列来预测觉得为 Target 的列,当然可以在这里修改 Input 和 Target,将年龄的角色从 Input 修改为 Target 。

3、点击运行按钮,生成一个新的模型块,该模型块会被自动连接在流工作区,并带有指向创建它的建模节点的链接。要查看模型的详细信息,右键单击模型块并选择浏览(在模型选项板上)或编辑(在工作区上)。

4、双击打开生成的模型块,可以看到哪些值对预测结果的影响最大,线条宽深说明影响越大。

参考技术A 进行数据处理和建模,你首先需要了解你的目的。你为什么要进行建模。
了解清楚目的后,再确定用什么方法进行处理和建模。
在确定方法的基础上,你再衡量数据是否足够和足以支持。

数据挖掘的关键是对业务理解,也就是对你的目的,对你的数据有足够的认识本回答被提问者和网友采纳
参考技术B 由于目前企业客户的业务量和数据量都在不断的提高,随着企业的发展,很多企业的数据存储都不局限于同一个数据库上,如果要对这些存储在不同数据库上的数据进行处理和建模,就需要将这些存储在不同数据库之间的数据进行有效的整合,本文将介绍通过 IBM SPSS Modeler 如何对不同数据库之间的数据进行整合,然后进行建模处理。
IBM SPSS Modeler 介绍
IBM SPSS Modeler 是 IBM 在分析与预测领域解决方案的重要组成部分,它是一组数据挖掘工具,通过这些工具可以采用商业技术快速建立预测性模型, 并将其应用于商业活动,从而改进决策过程。Modeler 的界面
图 1. IBM SPSS Modeler 界面

IBM SPSS Modeler 通过节点对数据进行处理,然后将这些节点连接起来,就形成了对数据处理的一系列过程,我们将这一过程称为数据流。也可以说 IBM SPSS Modeler 是以数据流为驱动的产品,这一系列节点代表要对数据执行的操作,而节点之间的链接指示数据的流动方向。IBM SPSSModeler 将节点分为如下几种类型:
源:此类节点可将数据导入 IBM SPSS Modeler,如数据库、IBM SPSS Analytic Server 数据源、文本文件、SPSS Statistics 数据文件、Excel、XML 等。
记录选项:此类节点可对数据记录执行操作,如选择、排序、抽样、合并和追加等。
字段选项:此类节点可对数据字段执行操作,如过滤、导出新字段和确定给定字段的测量级别等。
图形:此类节点可在建模前后以图表形式显示数据。图形包括散点图、直方图、网络节点和评估图表等。
建模:此类节点可使用 IBM SPSS Modeler 中提供的建模算法,如神经网络、决策树、贝叶斯网络、聚类算法、支持向量机、和数据排序等。
输出:节点生成数据、图表和可在 IBM SPSS Modeler 中查看的模型等多种输出结果。
导出:节点生成可在外部应用程序(如 IBM SPSS Data Collection、数据库、XML、IBM SPSSAnalytic Server 数据 或 Excel)中查看的多种输出。
IBM SPSS Statistics:节点将 IBM SPSS Statistics 数据导入或导出为 SPSS Statistics 数据,以及运行 SPSS Statistics 提供的功能。
IBM SPSS SDAP 介绍
1. SDAP 的安装
IBM® SPSS® Data Access Pack(简称 SDAP)是在 Modeler 的安装盘附带的 ODBC 驱动程序,运行 setup.exe 文件以启动驱动程序安装,并选择所有相关的驱动程序即可。安装的 SDAP 必须和你使用的 Modeler Server 在同一台机器,也就是说如果你使用本地的 Modeler Server, 那么就安装在 Modeler Client 所在的机器,如果使用的 Modeler Server 和 Modeler Client 不在同一台机器,那么就需要安装在 Modeler Server 所在的机器。
图 2. SDAP 的安装

2. 创建 ODBC
这里以 Windows 7 为例,装好 SDAP 驱动后,从“开始”菜单中选择所有程序,选择管理工具,选择数据源 (ODBC),在打开 的对话框中选择系统 DSN 选项卡,然后单击添加,在打开的对话了狂选择要添加的数据库的驱动
图 3. 选择驱动

点击完成按钮后,配置数据库的信息,对于不同的数据需要输入不同的信息,本文将以主流的 IBM DB2、Oracle 和 SQL Server 为例。如图 4 所示:
图 4. 创建 DB2 ODBC

在“ODBC DB2 Wire Protocol 驱动程序设置”对话框中需要指定如下内容:
数据源名称(指定一个 ODBC 的名字);
IP 地址,指定 DB2(Oracle,SQL Server) RDBMS 所在服务器的主机名或者 IP 地址;
TCP 端口 ( 对于 DB2,默认是 50000,Oracle 是 1521,SQL Server 是 1433);
数据库的名称(指定需要连接的数据库);
点击“测试连接”后,输入要连接数据库的用户名和密码,然后单击确定按钮。此时会显示“连接已建立!”的消息,说明配置成功。
对于 Oracle 数据库来说,
图 5. 创建 Oracle ODBC

对于 SQL Server 数据库

打开 IBM SPSS Modeler 客户端,点击左下角的 Server 按钮,选择要连接的 Modeler Server,这里需要说明的就是如果你的 SDAP 装在和 Modeler Client 在一台机器,那么就选择 Local Server, 如果不在同一台机器,而是和单独的 Modeler Server 装在一台机器,就选在添加按钮,输入机器的主机名或者 IP 地址,设置登录的用户名和密码,点击完成按钮

连接上 Modeler Server 之后,在源选项双击数据库节点,然后就可以添加数据库源节点到数据流工作区,双击节点,在数据项选择添加一个数据库连接,然后 Modeler Client 会将 Modeler Server 所在机器的所有 ODBC 查询出来,找到需要连接的数据库连接信息,输入用户名和密码后,点击连接按钮,选择完成然后进入选择表,这里以 SQL Server 为例

点击完成按钮后,在表名列点击选择按钮,选择表名,这里我们以 dbo.Modeler_Drug1 为例,

选择表后,节点自动读取表结构

用同样的方法再添加两个数据库节点,选择 ODBC 为 DB2 和 Oracle, 输入用户名和密码之后,就可以选择要读取数据的表名了。这样就完成了用 Modeler Client 读取数据库数据的操作,然后要进行的就是对数据的处理。

首先我们利用 Modeler 的 Merge 节点对 DB2 和 Oracle 中的两张表的数据进行合并,处理后的结果是我们得到的数据一部分来自 DB2 数据库,一部分来自 Oracle 数据库。对于来自 Oracle 数据库的数据,我们取 3 个字段的值

对于来自 DB2 数据库的数据,我们取 4 个字段

双击记录选项中的 Merge 节点,然后将 DB2 和 Oracle 两个节点与之连接,双击 Merge 节点,可以看到处理后的数据包括来自 DB2 和 Oracle 的 7 个字段

然后我们需要通过 Modeler 的 Append 节点将 Merge 后的数据追加到来自 SQL Server 数据库的数据。双击记录选项中的 Append 节点,在流工作区中将 Merge 节点和 SQL Server 数据源节点与之连接,这样得到的就是来自三个数据库的数据了。
我们还可以通过 Modeler 的其他节点对数据进行进一步的处理,比如通过选择节点,可以设置条件来选择我们需要的数据,或者通过排序节点对某几个列进行排序等等,这里就不详细介绍了。

3.建模

最后要做的就是对处理过的数据进行建模了,首先我们需要设定一个 Target 列,也就是需要预测的列。我们通过 Modeler 的 Type 节点设置 Target 列,在字段选项双击 Type 节点,在流工作区中将 Append 节点与之连接,双击 Type 节点,修改 Drug 列的角色为 Target,其他默认为 Input
然后就是选择我们要使用的模型了,这里以神经网络为例,在模型选择中双击神经网络节点,在流工作区中将 Type 节点与之连接,打开神经网络节点,可以看到我们是通过所有的角色为 Input 的列来预测觉得为 Target 的列,当然我们可以在这里修改 Input 和 Target,我们将年龄的角色从 Input 修改为 Target
点击运行按钮,生成一个新的模型块,该模型块会被自动连接在流工作区,并带有指向创建它的建模节点的链接。要查看模型的详细信息,右键单击模型块并选择浏览(在模型选项板上)或编辑(在工作区上)
双击打开生成的模型块,可以看到哪些值对预测结果的影响最大,线条宽深说明影响越大
4.模型评估

建模完成后,需要评估模型的准确度,就是对一些记录进行评分,我们这里用原始数据进行评估,并将模型预测的结果与实际结果进行比较。
要查看分数或预测值,如上图将表节点连接到模型块,双击表节点,然后单击运行。可以从表中看到,模型创建了两个名为 $N-Age 和 $N-Drug 的字段,用来显示预测值。
参考技术C 由于目前企业客户的业务量和数据量都在不断的提高,随着企业的发展,很多企业的数据存储都不局限于同一个数据库上,如果要对这些存储在不同数据库上的数据进行处理和建模,就需要将这些存储在不同数据库之间的数据进行有效的整合,本文将介绍通过 IBM SPSS Modeler 如何对不同数据库之间的数据进行整合,然后进行建模处理。
IBM SPSS Modeler 介绍
IBM SPSS Modeler 是 IBM 在分析与预测领域解决方案的重要组成部分,它是一组数据挖掘工具,通过这些工具可以采用商业技术快速建立预测性模型, 并将其应用于商业活动,从而改进决策过程。Modeler 的界面
图 1. IBM SPSS Modeler 界面

IBM SPSS Modeler 通过节点对数据进行处理,然后将这些节点连接起来,就形成了对数据处理的一系列过程,我们将这一过程称为数据流。也可以说 IBM SPSS Modeler 是以数据流为驱动的产品,这一系列节点代表要对数据执行的操作,而节点之间的链接指示数据的流动方向。IBM SPSSModeler 将节点分为如下几种类型:
源:此类节点可将数据导入 IBM SPSS Modeler,如数据库、IBM SPSS Analytic Server 数据源、文本文件、SPSS Statistics 数据文件、Excel、XML 等。
记录选项:此类节点可对数据记录执行操作,如选择、排序、抽样、合并和追加等。
字段选项:此类节点可对数据字段执行操作,如过滤、导出新字段和确定给定字段的测量级别等。
图形:此类节点可在建模前后以图表形式显示数据。图形包括散点图、直方图、网络节点和评估图表等。
建模:此类节点可使用 IBM SPSS Modeler 中提供的建模算法,如神经网络、决策树、贝叶斯网络、聚类算法、支持向量机、和数据排序等。
输出:节点生成数据、图表和可在 IBM SPSS Modeler 中查看的模型等多种输出结果。
导出:节点生成可在外部应用程序(如 IBM SPSS Data Collection、数据库、XML、IBM SPSSAnalytic Server 数据 或 Excel)中查看的多种输出。
IBM SPSS Statistics:节点将 IBM SPSS Statistics 数据导入或导出为 SPSS Statistics 数据,以及运行 SPSS Statistics 提供的功能。
IBM SPSS SDAP 介绍
1. SDAP 的安装
IBM® SPSS® Data Access Pack(简称 SDAP)是在 Modeler 的安装盘附带的 ODBC 驱动程序,运行 setup.exe 文件以启动驱动程序安装,并选择所有相关的驱动程序即可。安装的 SDAP 必须和你使用的 Modeler Server 在同一台机器,也就是说如果你使用本地的 Modeler Server, 那么就安装在 Modeler Client 所在的机器,如果使用的 Modeler Server 和 Modeler Client 不在同一台机器,那么就需要安装在 Modeler Server 所在的机器。
图 2. SDAP 的安装

2. 创建 ODBC
这里以 Windows 7 为例,装好 SDAP 驱动后,从“开始”菜单中选择所有程序,选择管理工具,选择数据源 (ODBC),在打开 的对话框中选择系统 DSN 选项卡,然后单击添加,在打开的对话了狂选择要添加的数据库的驱动
图 3. 选择驱动

点击完成按钮后,配置数据库的信息,对于不同的数据需要输入不同的信息,本文将以主流的 IBM DB2、Oracle 和 SQL Server 为例。如图 4 所示:
图 4. 创建 DB2 ODBC

在“ODBC DB2 Wire Protocol 驱动程序设置”对话框中需要指定如下内容:
数据源名称(指定一个 ODBC 的名字);
IP 地址,指定 DB2(Oracle,SQL Server) RDBMS 所在服务器的主机名或者 IP 地址;
TCP 端口 ( 对于 DB2,默认是 50000,Oracle 是 1521,SQL Server 是 1433);
数据库的名称(指定需要连接的数据库);
点击“测试连接”后,输入要连接数据库的用户名和密码,然后单击确定按钮。此时会显示“连接已建立!”的消息,说明配置成功。
对于 Oracle 数据库来说,
图 5. 创建 Oracle ODBC

对于 SQL Server 数据库

打开 IBM SPSS Modeler 客户端,点击左下角的 Server 按钮,选择要连接的 Modeler Server,这里需要说明的就是如果你的 SDAP 装在和 Modeler Client 在一台机器,那么就选择 Local Server, 如果不在同一台机器,而是和单独的 Modeler Server 装在一台机器,就选在添加按钮,输入机器的主机名或者 IP 地址,设置登录的用户名和密码,点击完成按钮

连接上 Modeler Server 之后,在源选项双击数据库节点,然后就可以添加数据库源节点到数据流工作区,双击节点,在数据项选择添加一个数据库连接,然后 Modeler Client 会将 Modeler Server 所在机器的所有 ODBC 查询出来,找到需要连接的数据库连接信息,输入用户名和密码后,点击连接按钮,选择完成然后进入选择表,这里以 SQL Server 为例

点击完成按钮后,在表名列点击选择按钮,选择表名,这里我们以 dbo.Modeler_Drug1 为例,

选择表后,节点自动读取表结构

用同样的方法再添加两个数据库节点,选择 ODBC 为 DB2 和 Oracle, 输入用户名和密码之后,就可以选择要读取数据的表名了。这样就完成了用 Modeler Client 读取数据库数据的操作,然后要进行的就是对数据的处理。

首先我们利用 Modeler 的 Merge 节点对 DB2 和 Oracle 中的两张表的数据进行合并,处理后的结果是我们得到的数据一部分来自 DB2 数据库,一部分来自 Oracle 数据库。对于来自 Oracle 数据库的数据,我们取 3 个字段的值

对于来自 DB2 数据库的数据,我们取 4 个字段

双击记录选项中的 Merge 节点,然后将 DB2 和 Oracle 两个节点与之连接,双击 Merge 节点,可以看到处理后的数据包括来自 DB2 和 Oracle 的 7 个字段

然后我们需要通过 Modeler 的 Append 节点将 Merge 后的数据追加到来自 SQL Server 数据库的数据。双击记录选项中的 Append 节点,在流工作区中将 Merge 节点和 SQL Server 数据源节点与之连接,这样得到的就是来自三个数据库的数据了。
我们还可以通过 Modeler 的其他节点对数据进行进一步的处理,比如通过选择节点,可以设置条件来选择我们需要的数据,或者通过排序节点对某几个列进行排序等等,这里就不详细介绍了。

3.建模

最后要做的就是对处理过的数据进行建模了,首先我们需要设定一个 Target 列,也就是需要预测的列。我们通过 Modeler 的 Type 节点设置 Target 列,在字段选项双击 Type 节点,在流工作区中将 Append 节点与之连接,双击 Type 节点,修改 Drug 列的角色为 Target,其他默认为 Input
然后就是选择我们要使用的模型了,这里以神经网络为例,在模型选择中双击神经网络节点,在流工作区中将 Type 节点与之连接,打开神经网络节点,可以看到我们是通过所有的角色为 Input 的列来预测觉得为 Target 的列,当然我们可以在这里修改 Input 和 Target,我们将年龄的角色从 Input 修改为 Target
点击运行按钮,生成一个新的模型块,该模型块会被自动连接在流工作区,并带有指向创建它的建模节点的链接。要查看模型的详细信息,右键单击模型块并选择浏览(在模型选项板上)或编辑(在工作区上)
双击打开生成的模型块,可以看到哪些值对预测结果的影响最大,线条宽深说明影响越大
4.模型评估

建模完成后,需要评估模型的准确度,就是对一些记录进行评分,我们这里用原始数据进行评估,并将模型预测的结果与实际结果进行比较。
要查看分数或预测值,如上图将表节点连接到模型块,双击表节点,然后单击运行。可以从表中看到,模型创建了两个名为 $N-Age 和 $N-Drug 的字段,用来显示预测值。

模型自动化运行利器——IBM SPSS Modeler Batch

技术分享

背景介绍

很多用户都会关注一个问题,就是模型创建完成之后,如何自动化运行模型,因为不可能每次要运行都要打开SPSS Modeler客户端,点击“运行”,那么今天这篇文章就给大家介绍下通过IBM SPSS Modeler Batch批处理模式实现自动化运行模型的过程。

IBM SPSS Modeler Batch可以实现不需要打开IBM SPSS Modeler客户端,不需要用户干预就可以自动地周期性地运行任务, 需要注意的是,IBM SPSS Modeler Batch必须是有购买IBM SPSS Modeler Server才能够附带有的功能。

批处理模式简介

适用于批处理模式的任务包括:

  • 在后台运行比较耗时的建模训练;

  • 在计划的时间(例如在夜间,此时计算机上的任务运行不影响白天的服务器资源占用)运行预测任务;

  • 针对大量数据运行数据预处理(例如在后台或夜间运行);

  • 运行定期的计划任务,例如每周/月报告;

在批处理模式下工作

在批处理模式下工作通过包括:

  • 使用clemb命令以批处理模式调用IBM SPSS Modeler

  • 连接到服务器

  • 加载现有的流或脚本文件

  • 执行流或脚本

实例介绍

3.使用Windows操作系统的计划任务程序调用druglearn.bat文件。

以下介绍最常用的连接IBM SPSS Modeler服务器,调用.str流文件自动执行的实现步骤。

1.使用IBM SPSS Modeler 创建了流文件 druglearn.str,并保存在C:\wing目录下。

技术分享

该数据流文件中,源是数据库,最终分析结果是导出到Excel文件。

2.编写batch文件,先打开文本编辑器,输入以下内容,并以 .bat为后缀保存起来。

clemb -hostname myserver -port 80 -username dminer -password 1234 -stream"C:\wing\druglearn.str"-P:databasenode.datasource={"POC",sa,123456,true} -execute -logreport32.log

以下对每个参数进行解释:

  • clemb是调用命令;

  • server是连接的IBM SPSS Modeler服务器名称

  • port是连接的IBM SPSS Modeler服务器端口号

  • username是登陆IBM SPSS Modeler服务器用户名

  • password是登陆IBM SPSS Modeler服务器密码

  • stream是指向要调用的流文件(包括路径和流文件名称)

  • P:databasenode.datasource是流文件中,源节点数据库连接所需要的信息,包括ODBC连接配置的名称、数据库用户名、数据库登陆密码

  • excute是表示执行

  • log表示输出日志文件到report32.log

在每个参数前面,都以符号“-”分隔。

在触发器面板上,设置为每周六晚上22:00执行,如下图

技术分享

在操作面板上,选择刚才保存好的druglearn.bat文件。

技术分享

确定后则完成了设置计划任务。

其它参数内容

IBM SPSS Modeler Batch所使用的参数可以非常灵活,除了我们实例中用到的命令参数,还可以是流文件中自定义的参数,想了解更多内容,可在网站上下载试用IBM SPSS Modeler并查看相关的用户手册。

以上是关于如何通过IBM SPSS Modeler对数据进行处理和建模的主要内容,如果未能解决你的问题,请参考以下文章

ibm spss modeler 14.0 可以建模,但是导出到表后显示内部错误:模型初始化失败

数据挖掘工具Modeler有哪些重要资源?如何操作?

模型自动化运行利器——IBM SPSS Modeler Batch

采用SPSS Modeler的Web复杂网络对所有腧穴进行分析

SPSS-SPSS Modeler

SPSS学习系列之SPSS Modeler的功能特性(图文详解)