È possibile richiamare le API Python native dagli script per interagire con SPSS Modeler.
Sono supportate le seguenti API.
Per vedere un esempio, puoi scaricare il flusso di esempiopython-extension-str.zip e importarlo inSPSS Modeler (nel Risorse scheda, fare clic . Quindi, aprire le proprietà del nodo Estensione nel flusso per visualizzare la sintassi di esempio.
API per modelli di dati
modelerpy.isComputeDataModelOnly()
È possibile utilizzare questa API per controllare se un'esecuzione corrente deve calcolare i dati di output o solo il modello di dati di output. Quando restituisce
true
, lo script non deve eseguire alcuna attività che dipende dai dati di input o output, altrimenti l'esecuzione non riesce.modelerpy.getDataModel()
Questa API contatta SPSS Modeler per ottenere il modello di dati per un dataset di input. Il valore di ritorno è un'istanza di
class DataModel
, che descrive i metadati del dataset di input, incluso il conteggio dei campi, il nome del campo, il tipo di archiviazione del campo e così via.modelerpy.setOutputDataModel(dataModel)
Questa API invia nuovamente un'istanza di una classe
DataModel
a SPSS Modelere deve essere richiamata prima che lo script trasmetta un dataset a SPSS Modeler. SPSS Modeler utilizza i metadati descritti in questaDataModel
istanza per gestire i dati sul lato SPSS Modeler .
API per la modellazione
modelerpy.saveModel(model, name='model')
Questa API trasforma un modello di Python in un modello SPSS Modeler , che SPSS Modeler salva. Il modello salvato viene copiato in un nugget del modello generato. Richiama questa API da un nodo di modellazione quando viene creato un modello Python .
modelerpy.loadModel(name='model')
Questa API carica un modello salvato SPSS Modeler e crea un oggetto Python per il modello salvato. Richiamare questa API dall'insieme di modelli per caricare il modello salvato per un'ulteriore elaborazione, ad esempio il calcolo del punteggio.
API per dataset di input/output
modelerpy.readPandasDataframe()
Questa API legge un dataset da SPSS Modeler a Python. Il valore di ritorno è un Python Pandas DataFrame (una struttura di dati bidimensionale, come un array bidimensionale o una tabella con righe e colonne).
modelerpy.writePandasDataframe(df)
Questa API scrive un Python Pandas DataFrame da Python a SPSS Modeler.
API per pacchetti
modelerpy.installPackage(package)
Questa API estrae un package da
pypi.org
e lo installa.modelerpy.uninstallPackage(package)
Questa API disinstalla un package installato.
modelerpy.listPackages()
Questa API fornisce un elenco di tutti i package installati.
API per metadati
Utilizzare le seguenti classi correlate ai metadati conmodelerpy.getDataModel
e modelerpy.setOutputDataModel
.modelerpy.DataModel
Questa API è la classe di voci principale per i metadati. Contiene un array di istanze di
class Field
e include i seguenti metodimodelerpy.DataModel.getFields
Questo metodo restituisce l'array di istanze
class Field
.modelerpy.DataModel.addField
Questo metodo aggiunge un'istanza di
Field
all'array di metadati.modelerpy.Field
La classe
Field
è il punto in cui vengono memorizzate le informazioni sui metadati effettivi, inclusi il nome del campo, l'archiviazione e la misurazione,modelerpy.Field.getName
Questo metodo restituisce il nome del campo.
modelerpy.Field.getStorage
Questo metodo restituisce la memorizzazione del campo. La memoria valida include:
integer
,real
,string
,date
,time
etimestamp
.modelerpy.Field.getMeasure
Questo metodo restituisce la misurazione del campo. Le misurazioni valide includono
discrete
,flag
,nominal
,ordinal
econtinuous
.
DataModel
richiamando il costruttore modelerpy.DataModel
con un array di modelerpy.Field
. Il costruttore modelerpy.Field
accetta il nome campo, l'archiviazione campo e la misurazione campo come parametri di input (l'archiviazione campo e la misurazione campo sono obbligatorie; la misurazione campo è facoltativa).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"))