本机 Python API
您可以从脚本中调用本机 Python API ,以与 IBM® SPSS® Modeler进行交互。
支持以下 API。
要查看示例,您可以下载 样本流 并将其导入 IBM SPSS Modeler。
用于数据模型的 API
modelerpy.isComputeDataModelOnly()您可以使用此 API 来检查当前运行是计算输出数据还是仅计算输出数据模型。 当它返回
true时,脚本 不得 执行依赖于输入或输出数据的任何任务,否则运行将失败。modelerpy.getDataModel()此 API 联系 IBM SPSS Modeler 以获取输入数据集的数据模型。 返回值是
class DataModel的实例,用于描述输入数据集的元数据,包括字段计数,字段名称,字段存储类型等。modelerpy.setOutputDataModel(dataModel)此 API 将类
DataModel的实例发送回 IBM SPSS Modeler,并且必须在脚本将数据集传递到 IBM SPSS Modeler之前调用此 API。 IBM SPSS Modeler 将使用此DataModel实例中描述的元数据来处理 IBM SPSS Modeler 端上的数据。
用于建模的 API
modelerpy.saveModel(model, name='model')此 API 将 Python 模型变换为 IBM SPSS Modeler 模型,然后由 IBM SPSS Modeler保存。 在构建 Python 模型时,应该从建模节点调用此 API。 调用此 API 后,会将保存的模型复制到生成的模型块。
modelerpy.loadModel(name='model')此 API 将装入 IBM SPSS Modeler 已保存的模型,并为已保存的模型创建 Python 对象。 从模型块调用此 API 以装入保存的模型进行进一步处理,例如评分。
输入/输出数据集的 API
modelerpy.readPandasDataframe()此 API 将数据集从 IBM SPSS Modeler 读取到 Python。 返回值为 Python Pandas DataFrame (二维数据结构,例如二维数组或包含行和列的表)。
modelerpy.writePandasDataframe(df)此 API 将 Python Pandas DataFrame 从 Python 写入 IBM 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"))