概述 (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 的导出。 示例包括 NUMERICSTRINGUSEINCLUDEINSERT。 对于 INCLUDEINSERT,将从插入的文件中导出受支持的变换到 PMML。

无效。 这些命令无法在 TMS 块中处理,并且将导致错误。 本主题末尾提供了无效命令的列表。

隐式 TMS END。 这些命令以正常方式执行,但会导致当前块的隐式结束,这将导致写入输出 PMML 文件。 在其中一个命令未导出到输出 PMML 文件之后发生的变换 (在当前块中)。 此类别中的命令包括所有统计过程 (例如, ANOVAREGRESSION) 以及 EXECUTE 命令。 ADD FILES MATCH FILESCOMPARE DATASETS 属于此类别以及导致其他数据集变为活动状态的任何命令,例如 DATASET ACTIVATEGETGET 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.CONCATCHAR.LENGTHCHAR.SUBSTR 来代替 CONCATLENGTHSUBSTR
  • 评分不支持 MAXMIN 函数的字符串自变量。