本机 Python API
您可以从脚本中调用本机 Python API ,以与 SPSS Modeler进行交互。
支持以下 API。
要查看示例,您可以在 此处 下载可用流,并将其导入 SPSS Modeler (从项目中,单击 新建资产,选择 SPSS Modeler,然后选择 本地文件)。 然后打开流中的 "扩展" 节点属性以查看示例语法。
用于数据模型的 API
modelerpy.isComputeDataModelOnly()您可以使用此 API 来检查当前运行是计算输出数据还是仅计算输出数据模型。 当它返回
true时,脚本 不得 执行依赖于输入或输出数据的任何任务,否则运行将失败。modelerpy.getDataModel()此 API 联系 SPSS Modeler 以获取输入数据集的数据模型。 返回值是
class DataModel的实例,用于描述输入数据集的元数据,包括字段计数,字段名称,字段存储类型等。modelerpy.setOutputDataModel(dataModel)此 API 将类
DataModel的实例发送回 SPSS Modeler,并且必须在脚本将数据集传递到 SPSS Modeler之前调用此 API。 SPSS Modeler 将使用此DataModel实例中描述的元数据来处理 SPSS Modeler 端的数据。
用于建模的 API
modelerpy.saveModel(model, name='model', compress=False)此 API 将 Python 模型变换为 SPSS Modeler 模型,然后由 SPSS Modeler保存。 在构建 Python 模型时,应该从建模节点调用此 API。 调用此 API 后,会将保存的模型复制到生成的模型块。
modelerpy.loadModel(name='model')此 API 将装入 SPSS Modeler 保存的模型,并为保存的模型创建 Python 对象。 从模型块调用此 API 以装入保存的模型进行进一步处理,例如评分。
输入/输出数据集的 API
modelerpy.readPandasDataframe()此 API 将数据集从 SPSS Modeler 读取到 Python。 返回值为 Python Pandas DataFrame (二维数据结构,例如二维数组或包含行和列的表)。
modelerpy.writePandasDataframe(df)此 API 将 Python Pandas DataFrame 从 Python 写入 SPSS Modeler。
软件包的 API
modelerpy.installPackage(package)此 API 从
pypi.org中拉取软件包并将其安装。modelerpy.uninstallPackage(package)此 API 将卸载已安装的软件包。
用于元数据的 API
下列与元数据相关的类应与modelerpy.getDataModel 和 modelerpy.setOutputDataModel配合使用。modelerpy.DataModel此 API 是元数据的主条目类。 它包含
class Field的实例数组,并包含以下方法modelerpy.DataModel.getFields此方法返回
class Field实例的数组。modelerpy.DataModel.addField此方法将
Field的实例添加到元数据数组。modelerpy.FieldField类是存储实际元数据信息的位置,包括字段名称,存储和度量。modelerpy.Field.getName此方法返回字段的名称。
modelerpy.Field.getStorage此方法返回字段的存储。 有效存储器包括:
integer,real,string,date,time和timestamp。modelerpy.Field.getMeasure此方法返回字段的测量。 有效度量包括:
discrete,flag,nominal,ordinal和continuous。
modelerpy.Field数组调用 modelerpy.DataModel 构造函数来构造 DataModel 对象。 modelerpy.Field 构造函数接受字段名,字段存储和字段测量作为其输入参数 (字段存储和字段测量是必需的; 字段测量是可选的)。dataModel = modelerpy.DataModel([
# %FieldName%, %StorageType%, %MeasurementType%
modelerpy.Field(‘StringField’, ‘string’, ‘nominal’),
modelerpy.Field(‘FloatField’, ‘real’, ‘continuous’),
modelerpy.Field(‘IntegerField’, ‘integer’, ‘ordinal’),
modelerpy.Field(‘BooleanField’, ‘integer’, ‘flag’),
modelerpy.Field(‘DatetimeField’, ‘timestamp’, ‘continuous’),
modelerpy.Field(‘TimeField’, ‘time’, ‘continuous’),
modelerpy.Field(‘DateField’, ‘date’, ‘continuous’),
])
# StorageType could be: integer, real, string, date, time, timestamp
# MeasurementType could be: discrete, flag, nominal, ordinal, continuous
outputDataModel = modelerDataModel
outputDataModel.addField(modelerpy.Field(field_outlier, "real", measure="flag"))
outputDataModel.addField(modelerpy.Field(field_dist_hp, "real", measure="continuous"))