Vous pouvez appeler des API Python natives à partir de vos scripts pour interagir avec SPSS Modeler.
Les API suivantes sont prises en charge.
Pour voir un exemple, vous pouvez télécharger l'exemple de fluxpython-extension-str.zip et importez-le dansSPSS Modeler (dans le Actifs onglet, cliquez sur . Ouvrez ensuite les propriétés du noeud Extension dans le flux pour afficher un exemple de syntaxe.
API pour les modèles de données
modelerpy.isComputeDataModelOnly()
Vous pouvez utiliser cette API pour vérifier si une exécution en cours consiste à calculer les données de sortie ou uniquement à calculer le modèle de données de sortie. Lorsqu'il renvoie
true
, votre script ne doit pas effectuer de tâche qui dépend des données d'entrée ou de sortie, sinon l'exécution échoue.modelerpy.getDataModel()
Cette API contacte SPSS Modeler pour obtenir le modèle de données d'un jeu de données d'entrée. La valeur renvoyée est une instance de
class DataModel
, qui décrit les métadonnées du jeu de données d'entrée, y compris le nombre de champs, le nom de champ, le type de stockage de champ, etc.modelerpy.setOutputDataModel(dataModel)
Cette API renvoie une instance d'une classe
DataModel
à SPSS Modeleret doit être appelée avant que votre script ne transmette un jeu de données à SPSS Modeler. SPSS Modeler utilise les métadonnées décrites dans cette instanceDataModel
pour traiter vos données côté SPSS Modeler .
API de modélisation
modelerpy.saveModel(model, name='model')
Cette API transforme un modèle Python en modèle SPSS Modeler , qui est ensuite enregistré dans SPSS Modeler . Le modèle enregistré est copié dans un nugget de modèle généré. Appelez cette API à partir d'un noeud de modélisation lorsqu'un modèle Python est généré.
modelerpy.loadModel(name='model')
Cette API charge un modèle sauvegardé SPSS Modeler et crée un objet Python pour le modèle sauvegardé. Appelez cette API à partir du nugget de modèle pour charger le modèle enregistré en vue d'un traitement ultérieur, tel que le scoring.
API pour les jeux de données d'entrée-sortie
modelerpy.readPandasDataframe()
Cette API lit un jeu de données de SPSS Modeler dans Python. La valeur renvoyée est un Python Pandas DataFrame (une structure de données bidimensionnelle, comme un tableau bidimensionnel, ou une table avec des lignes et des colonnes).
modelerpy.writePandasDataframe(df)
Cette API écrit un objet Python Pandas DataFrame à partir de Python dans SPSS Modeler.
API pour les packages
modelerpy.installPackage(package)
Cette API extrait un package de
pypi.org
et l'installe.modelerpy.uninstallPackage(package)
Cette API désinstalle un package installé.
modelerpy.listPackages()
Cette API fournit une liste de tous les packages installés.
API pour les métadonnées
Utilisez les classes associées aux métadonnées suivantes avecmodelerpy.getDataModel
et modelerpy.setOutputDataModel
.modelerpy.DataModel
Cette API est la classe d'entrée principale des métadonnées. Il contient un tableau d'instances de
class Field
et inclut les méthodes suivantes:modelerpy.DataModel.getFields
Cette méthode renvoie le tableau des instances
class Field
.modelerpy.DataModel.addField
Cette méthode ajoute une instance de
Field
au tableau de métadonnées.modelerpy.Field
La classe
Field
est l'endroit où sont stockées les informations de métadonnées réelles, y compris le nom de champ, le stockage et la mesure,modelerpy.Field.getName
Cette méthode renvoie le nom de la zone.
modelerpy.Field.getStorage
Cette méthode renvoie le stockage du champ. Le stockage valide inclut:
integer
,real
,string
,date
,time
ettimestamp
.modelerpy.Field.getMeasure
Cette méthode renvoie la mesure du champ. Les mesures valides sont les suivantes:
discrete
,flag
,nominal
,ordinal
etcontinuous
.
DataModel
en appelant le constructeur modelerpy.DataModel
avec un tableau modelerpy.Field
. Le constructeur modelerpy.Field
accepte le nom de champ, le stockage de champ et la mesure de champ comme paramètres d'entrée (le stockage de champ et la mesure de champ sont obligatoires ; la mesure de champ est facultative).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"))