Native Python -APIs
Sie können native Python -APIs aus Ihren Scripts aufrufen, um mit SPSS Modelerzu interagieren.
Die folgenden APIs werden unterstützt.
Um ein Beispiel zu sehen, können Sie den Beispielstream herunterladenpython-extension-str.zip und importieren Sie es inSPSS Modeler (im Vermögenswerte auf . Öffnen Sie anschließend die Eigenschaften des Erweiterungsknotens im Ablauf, um die Beispielsyntax anzuzeigen.
APIs für Datenmodelle
modelerpy.isComputeDataModelOnly()
Sie können diese API verwenden, um zu prüfen, ob eine aktuelle Ausführung die Ausgabedaten oder nur das Ausgabedatenmodell berechnet. Wenn
zurückgegeben wird, darf Ihr Script keine Task ausführen, die von Eingabe-oder Ausgabedaten abhängig ist. Andernfalls schlägt die Ausführung fehl.true
modelerpy.getDataModel()
Diese API kontaktiert SPSS Modeler , um das Datenmodell für ein Eingabedataset abzurufen. Der Rückgabewert ist eine Instanz von
, die Metadaten des Eingabedatasets beschreibt, einschließlich Feldanzahl, Feldname, Feldspeichertyp usw.class DataModel
modelerpy.setOutputDataModel(dataModel)
Diese API sendet eine Instanz einer Klasse
zurück an SPSS Modelerund muss aufgerufen werden, bevor Ihr Script ein Dataset an SPSS Modelerübergibt. SPSS Modeler verwendet die in dieserDataModel
-Instanz beschriebenen Metadaten, um Ihre Daten auf der Seite SPSS Modeler zu verarbeiten.DataModel
APIs für die Modellierung
modelerpy.saveModel(model, name='model')
Diese API transformiert ein Python -Modell in ein SPSS Modeler -Modell, das dann von SPSS Modeler gespeichert wird. Das gespeicherte Modell wird in ein generiertes Modellnugget kopiert. Rufen Sie diese API von einem Modellierungsknoten aus auf, wenn ein Python -Modell erstellt wird.
modelerpy.loadModel(name='model')
Diese API lädt ein gespeichertes SPSS Modeler -Modell und erstellt ein Python -Objekt für das gespeicherte Modell. Rufen Sie diese API über das Modellnugget auf, um das gespeicherte Modell zur weiteren Verarbeitung, wie z. B. Scoring, zu laden.
APIs für Ein-/Ausgabedatasets
modelerpy.readPandasDataframe()
Diese API liest ein Dataset aus SPSS Modeler in Python. Der Rückgabewert ist ein Python Pandas DataFrame (eine zweidimensionale Datenstruktur wie ein zweidimensionales Array oder eine Tabelle mit Zeilen und Spalten).
modelerpy.writePandasDataframe(df)
Diese API schreibt einen Python Pandas DataFrame von Python in SPSS Modeler.
APIs für Pakete
modelerpy.installPackage(package)
Diese API extrahiert ein Paket aus
und installiert es.pypi.org
modelerpy.uninstallPackage(package)
Diese API deinstalliert ein installiertes Paket.
modelerpy.listPackages()
Diese API stellt eine Liste aller installierten Pakete bereit.
APIs für Metadaten
Verwenden Sie die folgenden metadatenbezogenen Klassen mitmodelerpy.getDataModel
und modelerpy.setOutputDataModel
.modelerpy.DataModel
Diese API ist die Haupteintragsklasse für die Metadaten. Es enthält ein Array von Instanzen von
und enthält die folgenden Methoden:class Field
modelerpy.DataModel.getFields
Diese Methode gibt das Array der
-Instanzen zurück.class Field
modelerpy.DataModel.addField
Diese Methode fügt eine Instanz von
zum Metadatenarray hinzu.Field
modelerpy.Field
In der Klasse
werden die tatsächlichen Metadateninformationen gespeichert, einschließlich Feldname, Speicher und Messung.Field
modelerpy.Field.getName
Diese Methode gibt den Namen des Felds zurück.
modelerpy.Field.getStorage
Diese Methode gibt die Speicherung des Felds zurück. Gültiger Speicher:
,integer
,real
,string
,date
undtime
.timestamp
modelerpy.Field.getMeasure
Diese Methode gibt die Messung des Felds zurück. Gültige Messungen sind:
,discrete
,flag
,nominal
undordinal
.continuous
DataModel
-Objekt, indem er den Konstruktor modelerpy.DataModel
mit einem Array von modelerpy.Field
aufruft. Der Konstruktor modelerpy.Field
akzeptiert Feldnamen, Feldspeicher und Feldmessung als Eingabeparameter (Feldspeicher und Feldmessung sind erforderlich; Feldmessung ist optional).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"))