ネイティブ 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に送り返します。この API は、スクリプトがデータ・セットを IBM SPSS Modelerに渡す前に呼び出す必要があります。 IBM SPSS Modeler は、この DataModel インスタンスに記述されているメタデータを使用して、 IBM SPSS Modeler 側のデータを処理します。

モデリングのための API

  • modelerpy.saveModel(model, name='model')

    この API は、 Python モデルを IBM SPSS Modeler モデルに変換します。このモデルは、 IBM SPSS Modelerによって保存されます。 この API は、 Python モデルの作成時にモデル作成ノードから呼び出す必要があります。 この API を呼び出すと、保存されたモデルが、生成されたモデル・ナゲットにコピーされます。

  • modelerpy.loadModel(name='model')

    この API は、 IBM SPSS Modeler 保存済みモデルをロードし、保存済みモデルの Python オブジェクトを作成します。 モデル・ナゲットからこの API を呼び出して、スコアリングなどの以降の処理のために保存されたモデルをロードします。

入出力データ・セットの API

  • modelerpy.readPandasDataframe()

    この API は、 IBM SPSS Modeler から Pythonにデータ・セットを読み取ります。 戻り値は、 Python Pandas DataFrame (2 次元配列に類似した 2 次元データ構造、または行と列を持つ表) です。

  • 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.Field

      Field クラスは、フィールド名、ストレージ、測定値などの実際のメタデータ情報が保管される場所です。

    • modelerpy.Field.getName

      このメソッドは、フィールドの名前を返します。

    • modelerpy.Field.getStorage

      このメソッドは、フィールドのストレージを返します。 有効なストレージには、 integerrealstringdatetime、および timestampが含まれます。

    • modelerpy.Field.getMeasure

      このメソッドは、フィールドの測定値を返します。 有効な測定値は、 discreteflagnominalordinal、および 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"))