概述 (TMS BEGIN 命令)
TMS BEGIN 命令指示要导出到具有 IBM® SPSS® Statistics 扩展的 PMML 3.1 格式文件的变换块的开始。 可以将导出的变换 (使用 TMS MERGE) 与 PMML 模型文件合并,以便包含创建模型中使用的变量所需的原始数据的任何变换。 合并后的 PMML 文件可用于使用评分函数对数据进行评分。 (有关评分函数的更多信息,请参阅 评分表达式。) 当您使用包含变换的模型文件对数据进行评分时,这些变换将在评分之前应用于数据。 这些变换作为内部评分过程的一部分执行,对活动数据集没有任何影响。 TMS END 命令用于结束块。
从活动数据集的角度来看, TMS BEGIN-TMS END 块中的变换与 TMS 块外的变换没有区别 -- 它们处于暂挂状态,将使用读取活动数据集的下一个命令来执行。 TMS 块中的变换表达式中使用的源变量必须存在于活动数据集中。 在典型场景中,您将对用于构建关联模型的原始数据集运行 TMS BEGIN-TMS END 命令语法,假定它包含在任何变换表达式中使用的源变量。
TMS 块中的命令分类为属于以下四种类型之一: 导出,容许,无效以及导致隐式 TMS END的命令。
已导出。 这些是生成导出到 PMML 的命令。 此类别中的命令包含受支持的变换,例如 RECODE。 许多变换是使用 COMPUTE 命令中包含的函数来表示的。 对于有限的一组此类函数,支持导出到 PMML。 本主题末尾提供了生成导出到 PMML 的一组命令以及一组受支持的函数。
已使用。 这些命令可以包含在 TMS BEGIN-TMS END 块中,以正常方式执行,但不会生成对 PMML 的导出。 示例包括 NUMERIC, STRING, USE, INCLUDE和 INSERT。 对于 INCLUDE 或 INSERT,将从插入的文件中导出受支持的变换到 PMML。
无效。 这些命令无法在 TMS 块中处理,并且将导致错误。 本主题末尾提供了无效命令的列表。
隐式 TMS END。 这些命令以正常方式执行,但会导致当前块的隐式结束,这将导致写入输出 PMML 文件。 在其中一个命令未导出到输出 PMML 文件之后发生的变换 (在当前块中)。 此类别中的命令包括所有统计过程 (例如, ANOVA 和 REGRESSION) 以及 EXECUTE 命令。 ADD FILES MATCH
FILES 和 COMPARE DATASETS 属于此类别以及导致其他数据集变为活动状态的任何命令,例如 DATASET
ACTIVATE, GET和 GET DATA。
基本规范
TMS BEGIN 的基本指定项是命令名,后跟包含 OUTFILE 指定项的 DESTINATION 子命令。
语法规则
- 需要
DESTINATION子命令。 - 如果多次指定了
DESTINATION子命令,那么会发生错误。 - 如果多次指定
OUTFILE关键字,那么会发生错误。 - 语法图表中显示的等号 (=) 是必需的。
- 子命令名称和关键字必须拼写完整。
操作
- 执行
TMS BEGIN命令后,它将保持有效,直到会话结束,直到TMS END命令显式结束,或者直到迂到隐式结束TMS块的命令 (例如,任何统计过程) 为止。 - 在
TMS块中不允许使用TMS命令 (例如,TMS MERGE)。 TMS BEGIN验证为目标文件指定的路径是否有效。 如果路径无效,那么将以正常方式处理块中的命令,但不会导出 PMML。- 以下条件将导致写入目标文件: 执行导致块隐式结束的命令;
TMS块以TMS END显式结束; 当前会话在块结束之前结束 (显式或隐式结束)。 直到写入目标文件之后,该文件才可用于其他命令。 如果以隐式方式结束块,那么TMS END无效。 - 如果不支持块中的变换,那么会发生错误。 未执行包含无效变换的命令。 此类型的错误不会导致
TMS块的隐式结束,并且不会影响写入目标文件的时间。 - 目标文件中变换的顺序可能不是在
TMS块中指定这些变换的顺序。 - 以正常方式处理
TMS块中指定的变换,即暂挂,并使用读取活动数据集的下一个命令来执行。
导出的命令
以下命令生成到 PMML 的导出: ADD VALUE LABELS, COMPUTE, DO REPEAT, MISSING VALUES,
RECODE, VALUE LABELS, VARIABLE LABELS, VARIABLE LEVEL。
- 对于
COMPUTE,目标变量必须是尚未赋值或尚未在关联的TMS块中使用的变量。 例如,以下内容无效:COMPUTE var = var + 1. - 对于
RECODE,支持除CONVERT以外的所有输入和输出关键字。 此外,必须始终对INTO尚未赋值或尚未在关联TMS块中使用的变量进行重新编码。 对要评分的数据集执行重新编码变换时,结果取决于数据集中是否存在目标变量。 如果目标变量已存在,那么不会更改在重新编码的值规范中未提及的值 (源变量的值) 的个案。 如果目标变量尚不存在,那么将对未提及值的个案指定系统缺失值。
命令无效
以下命令在 TMS 块中无效: AGGREGATE, BREAK,
COUNT, DO IF - END IF, ELSE, ELSE IF, END CASE, END FILE, FILE TYPE
- END FILE TYPE, FILTER, IF INPUT PROGRAM - END INPUT PROGRAM, KEYED
DATA LIST, LEAVE, LOOP - END LOOP, N OF CASES, POINT, RECORD TYPE,
REPEATING DATA, REREAD, SAMPLE, SELECT IF, VECTOR, WEIGHT, WRITE。
支持将以下函数,操作和系统变量与 TMS 块中的 COMPUTE 命令配合使用。 在一些情况下 (例如, CHAR.SUBSTR) ,存在多种表单 (参数数量不同) ,但仅支持单一表单。 受支持的表单中提供的参数包括:
- + 添加
- -减法
- * 乘法
- /分部
- ** 指数
- & 逻辑与
- | 逻辑 OR
- 逻辑非 (~ L)
- = 等于
- ~ = 不等于
- < 小于
- 大于≤小于或等于
- > = 大于或等于
- 绝对值
- CDF.NORMAL
- CDFNORM
- CHAR.CONCAT
- CHAR.LENGTH
- CHAR.SUBSTR(strexpr , pos)
- CONCAT
- EXP
- IDF.NORMAL
- LG10
- 长度
- LN
- LOWER
- LTRIM (strexpr)
- MAX
- 平均值
- 最小值
- MOD
- PDF.NORMAL
- 研发
- RTRIM (strexpr)
- 标准差
- SQRT
- SUBSTR (strexpr , pos)
- 总数
- SYSMIS
- TRUNC
- UpCase
- 值
- 相差
注
- 建议在
TMS块中使用CHAR.CONCAT,CHAR.LENGTH和CHAR.SUBSTR来代替CONCAT,LENGTH和SUBSTR。 - 评分不支持
MAX和MIN函数的字符串自变量。