Référence de l'API « Multiverse Singularity » d' Machine Learning
Qiskit Functions — des outils prêts à l'emploi développés par des organisations partenaires — permettent d'abstraire certaines étapes du processus de développement logiciel afin de simplifier et d'accélérer la découverte d'algorithmes et le développement d'applications à grande échelle. Cliquez ici pour consulter le guide de cette fonction Qiskit.
Guide des fonctions Qiskit de Singularity Machine Learning
Approche axée sur l'action
Cette fonction repose sur une approche axée sur les actions. Vous pouvez le considérer comme un environnement virtuel dans lequel vous utilisez des actions pour effectuer des tâches ou modifier son état. Actuellement, il propose les actions suivantes : list, create, delete fit,, predict, fit_predict, et create_fit_predict. L'exemple suivant illustre cette create_fit_predict action.
list
Cette list action récupère tous les classificateurs enregistrés au *.pkl.tar format dans le répertoire de données partagé. Vous pouvez également accéder au contenu de ce répertoire en utilisant la catalog.files() méthode. En général, l'action « Liste » recherche les fichiers portant cette *.pkl.tar extension dans le répertoire de données partagées et les affiche sous forme de liste.
- Entrées :
action
Type: `str`
Le nom de l'action parmi create, list, fit, predict, fit_predict, create_fit_predict et delete.
Obligatoire : oui
- Utilisation :
job = singularity.run(action="list")create
Cette create action crée un classificateur du type quantum_classifier spécifié à l'aide des paramètres fournis, puis l'enregistre dans le répertoire de données partagées.
Cette fonction ne prend actuellement en charge que le format QuantumEnhancedEnsembleClassifier.
- Entrées :
action
Type: `str`
Le nom de l'action parmi create, list, fit, predict, fit_predict, create_fit_predict et delete.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur quantique, par exemple, spam_classifier.
- Obligatoire : oui
instance
Type: `str`
IBM par exemple.
- Obligatoire : oui
backend_name
Type: `str`
Valeur par défaut: `None`
IBM ressource informatique. La valeur par défaut est None, ce qui signifie que le backend ayant le moins de tâches en attente sera utilisé.
- Obligatoire : Non
quantum_classifier
Type: `str`
Le type du classificateur quantique, par exemple, QuantumEnhancedEnsembleClassifier.
- Obligatoire : Non
num_learners
Type: `int`
Valeur par défaut: 10
Le nombre d'apprenants dans le groupe.
- Obligatoire : Non
learners_types
Type: `list`
Valeur par défaut: `[DecisionTreeClassifier]`
Types d'apprenants. Parmi les types pris en charge, on trouve : DecisionTreeClassifier, GaussianNB, KNeighborsClassifier MLPClassifier,, et LogisticRegression. Vous trouverez plus de détails à ce sujet dans la documentation de scikit-learn.
- Obligatoire : Non
learners_proportions
Type: `list`
Valeur par défaut: `[1.0]`
Proportion de chaque type d'apprenant dans l'ensemble.
- Obligatoire : Non
learners_options
Type: `list`
Valeur par défaut: `[{`max_depth`: 3, `splitter`: `random`, `class_weight`: None}]`
Options pour chaque type d'apprenant au sein de l'ensemble. Pour obtenir la liste complète des options correspondant au(x) type(s) d'apprenant(s) choisi(s), consultez la documentation de scikit-learn.
- Obligatoire : Non
regularization_type
Type: `str` or `list`
Valeur par défaut: `onsite`
Type(s) de régularisation à utiliser : onsite ou alpha. onsite détermine le paramètre « onsite »; des valeurs plus élevées entraînent des ensembles plus clairsemés. alpha régle le compromis entre les termes d'interaction et les termes locaux, les valeurs plus faibles conduisant à des ensembles plus clairsemés. Si une liste est fournie, des modèles seront entraînés pour chaque type et celui qui obtient les meilleurs résultats sera sélectionné.
- Obligatoire : Non
regularization
Type: `str` or `float` or `list`
Valeur par défaut: `0.01`
Valeur de régularisation. Comprise entre 0 et +inf si _type_regularisation est égal à onsite. Comprise entre 0 et 1 si _type_regularisation est égal à alpha. Si la valeur est définie sur auto, la régularisation automatique est utilisée : le paramètre de régularisation optimal est déterminé par une recherche binaire, en tenant compte du rapport souhaité entre le nombre de classificateurs sélectionnés et le nombre total de classificateurs (regularization_desired_ratio) ainsi que de la limite supérieure du paramètre de régularisation (regularization_upper_bound). Si une liste est fournie, les modèles seront entraînés pour chaque valeur et celui qui présente les meilleures performances sera sélectionné.
- Obligatoire : Non
regularization_desired_ratio
Type: `float` or `list`
Valeur par défaut: `0.75`
Rapport(s) souhaité(s) entre le nombre de classificateurs sélectionnés et le nombre total de classificateurs pour l'autorégularisation. Si une liste est fournie, les modèles seront entraînés pour chaque rapport et celui qui obtient les meilleurs résultats sera sélectionné.
- Obligatoire : Non
regularization_upper_bound
Type: `float` or `list`
Valeur par défaut: 200
Limite(s) supérieure(s) du paramètre de régularisation en cas d'utilisation de l'autorégularisation. Si une liste est fournie, les modèles seront entraînés pour chaque limite supérieure et celui qui obtient les meilleurs résultats sera sélectionné.
- Obligatoire : Non
weight_update_method
Type: `str`
Valeur par défaut: `logarithmic`
Méthode de mise à jour des pondérations des échantillons parmi logarithmic et quadratic.
- Obligatoire : Non
sample_scaling
Type: `boolean`
Valeur par défaut: False`
Faut-il appliquer une mise à l'échelle de l'échantillon?
- Obligatoire : Non
prediction_scaling
Type: `float`
Valeur par défaut: `None`
Facteur d'échelle pour les prévisions.
- Obligatoire : Non
optimizer_options
Type: `dict`
Options de l'optimiseur QAOA.
Nom | Type | Description | Obligatoire | Par défaut |
|---|---|---|---|---|
num_solutions | integer | Le nombre de solutions | Non | 1024 |
reps | integer | Le nombre de répétitions | Non | 4 |
sparsify | float | Le seuil de raréfaction | Non | 0.001 |
theta | float | La valeur initiale de θ, un paramètre variationnel de l'algorithme QAOA | Non | None |
simulator | boolean | Faut-il utiliser un simulateur ou un QPU? | Non | False |
classical_optimizer | str | Nom de l'optimiseur classique pour le QAOA. Tous les solveurs proposés par SciPy, et répertoriés ici sont utilisables. Vous devrez effectuer les réglages classical_optimizer_options nécessaires | Non | COBYLA |
classical_optimizer_options | dictionary | Options classiques de l'optimiseur. Pour obtenir la liste complète des options disponibles, consultez la documentation de l' SciPy | Non | {"maxiter": 60} |
optimization_level | integer | La profondeur du circuit QAOA | Non | 3 |
num_transpiler_runs | integer | Nombre d'exécutions du transpileur | Non | 30 |
pass_manager_options | dictionary | Options pour la création d'un gestionnaire de passes prédéfini | Non | {"approximation_degree": 1.0} |
estimator_options | dictionary | Options de l'estimateur. Pour obtenir la liste complète des options disponibles, consultez la documentation client d' Qiskit Runtime | Non | None |
sampler_options | dictionary | Options de l'échantillonneur. Pour obtenir la liste complète des options disponibles, consultez la documentation du client « Qiskit Runtime ». | Non | None |
- Les valeurs par défaut
estimator_optionssont :
Nom | Type | Valeur |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 2 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"enable": True} |
resilience_options | dictionary | {"zne_mitigation": False, "zne": {"amplifier": "pea", "noise_factors": [1.0, 1.3, 1.6], "extrapolator": ["linear", "polynomial_degree_2", "exponential"],}} |
- Les valeurs par défaut
sampler_optionssont :
Nom | Type | Valeur |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 1 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"enable": True} |
- Obligatoire : Non
voting
Type: `str`
Valeur par défaut: `hard`
Utilisez le vote majoritaire (hard) ou la moyenne des probabilités (soft) pour agréger les prédictions/probabilités des apprenants.
- Obligatoire : Non
prob_threshold
Type: `float`
Valeur par défaut: `0.5`
Seuil de probabilité optimal.
- Obligatoire : Non
random_state
Type: `int`
Valeur par défaut: `None`
Maîtriser le caractère aléatoire pour garantir la reproductibilité.
- Obligatoire : Non
- Utilisation :
job = singularity.run(
action="create",
name="classifier_name", # specify your custom name for the classifier here
num_learners=10,
regularization=0.01,
optimizer_options={"simulator": True},
)-
Validations :
name:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Il ne doit pas y avoir de classificateur portant le même nom dans le répertoire de données partagé.
delete
Cette delete action supprime un classificateur du répertoire de données partagé.
- Entrées :
action
Type: `str`
le nom de l'action. Doit être delete.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur à supprimer.
- Obligatoire : oui
- Utilisation :
job = singularity.run(
action="delete",
name="classifier_name", # specify the name of the classifier to delete here
)-
Validations :
name:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Un classificateur portant le même nom devrait déjà exister dans le répertoire de données partagées.
fit
Cette fit action entraîne un classificateur à l'aide des données d'entraînement fournies.
- Entrées :
action
Type: `str`
Nom de l'action. Doit être fit.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur à entraîner.
- Obligatoire : oui
X
Type: `array` or `list` or `str`
Les données d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
y
Type: `array` or `list` or `str`
Les valeurs cibles d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
fit_params
Type: `dict`
Paramètres supplémentaires à transmettre à la fit méthode du classificateur. Voir le glossaire ci-dessous.
- Obligatoire : Non
Nom | Type | Description | Obligatoire | Par défaut |
|---|---|---|---|---|
validation_data | tuple | Les données de validation et les étiquettes. | Non | None |
pos_label | integer ou str | L'étiquette de classe à associer à 1. | Non | None |
optimization_data | str | Ensemble de données sur lequel optimiser l'ensemble. Peut être l'un des éléments suivants : train, validation, both. | Non | train |
- Utilisation :
job = singularity.run(
action="fit",
name="classifier_name", # specify the name of the classifier to train here
X=X_train, # or "X_train.npy" if you uploaded it in the shared data directory
y=y_train, # or "y_train.npy" if you uploaded it in the shared data directory
fit_params={}, # define the fit parameters here
)-
Validations :
name:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Un classificateur portant le même nom devrait déjà exister dans le répertoire de données partagées.
predict
Cette predict action sert à obtenir des prédictions « dures » et « souples » (probabilités).
- Entrées :
action
Type: `str`
Nom de l'action. Doit être predict.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur à utiliser.
- Obligatoire : oui
X
Type: `array` or `list` or `str`
Les données de test. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
options["out"]
Type: `str`
Le nom du fichier JSON de sortie dans lequel enregistrer les prédictions dans le répertoire de données partagé. Si cette information n'est pas fournie, les prévisions sont incluses dans le résultat de la tâche.
- Obligatoire : Non
- Utilisation :
job = singularity.run(
action="predict",
name="classifier_name", # specify the name of the classifier to use here
X=X_test, # or "X_test.npy" if you uploaded it to the shared data directory
options={
"out": "output.json",
},
)-
Validations :
name:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Un classificateur portant le même nom devrait déjà exister dans le répertoire de données partagées.
options["out"]:- Le nom de fichier doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Il doit avoir l'extension
.json.
fit_predict
Cette fit_predict action entraîne un classificateur à l'aide des données d'apprentissage, puis l'utilise pour obtenir des prédictions fermes et approximatives (probabilités).
- Entrées :
action
Type: `str`
Nom de l'action. Doit être fit_predict.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur à utiliser.
- Obligatoire : oui
X_train
Type: `array` or `list` or `str`
Les données d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
y_train
Type: `array` or `list` or `str`
Les valeurs cibles d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
X_test
Type: `array` or `list` or `str`
Les données de test. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
fit_params
Type: `dict`
Paramètres supplémentaires à transmettre à la fit méthode du classificateur.
- Obligatoire : Non
options["out"]
Type: `str`
Le nom du fichier JSON de sortie dans lequel enregistrer les prédictions dans le répertoire de données partagé. Si cette information n'est pas fournie, les prévisions sont incluses dans le résultat de la tâche.
- Obligatoire : Non
- Utilisation :
job = singularity.run(
action="fit_predict",
name="classifier_name", # specify the name of the classifier to use here
X_train=X_train, # or "X_train.npy" if you uploaded it in the shared data directory
y_train=y_train, # or "y_train.npy" if you uploaded it in the shared data directory
X_test=X_test, # or "X_test.npy" if you uploaded it in the shared data directory
fit_params={}, # define the fit parameters here
options={
"out": "output.json",
},
)-
Validations :
-
name:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Un classificateur portant le même nom devrait déjà exister dans le répertoire de données partagées.
-
options["out"]:- Le nom de fichier doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Il doit avoir l'extension
.json.
-
create_fit_predict
Cette create_fit_predict action crée un classificateur, l'entraîne à l'aide des données d'entraînement fournies, puis l'utilise pour obtenir des prédictions « hard » et « soft » (probabilités).
Consultez un exemple de cette create_fit_predict action dans le guide.
- Entrées :
action
Type: `str`
Le nom de l'action parmi create, list, fit, predict, fit_predict, create_fit_predict et delete.
- Obligatoire : oui
name
Type: `str`
Le nom du classificateur à utiliser.
- Obligatoire : oui
quantum_classifier
Type: `str`
Valeur par défaut: `QuantumEnhancedEnsembleClassifier`
Le type du classificateur, par exemple, QuantumEnhancedEnsembleClassifier.
- Obligatoire : Non
X_train
Type: `array` or `list` or `str`
Les données d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
y_train
Type: `array` or `list` or `str`
Les valeurs cibles d'entraînement. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
X_test
Type: `array` or `list` or `str`
Les données de test. Il peut s'agir d'un tableau de type NumPy, d'une liste ou d'une chaîne de caractères faisant référence à un nom de fichier dans le répertoire de données partagées.
- Obligatoire : oui
fit_params
Type: `dict`
Paramètres supplémentaires à transmettre à la fit méthode du classificateur.
- Obligatoire : Non
options["save"]
Type: `bool`
Valeur par défaut: `True`
Indique s'il faut enregistrer le classificateur entraîné dans le répertoire de données partagé.
- Obligatoire : Non
options["out"]
Type: `str`
Le nom du fichier JSON de sortie dans lequel enregistrer les prédictions dans le répertoire de données partagé. Si cette information n'est pas fournie, les prévisions sont incluses dans le résultat de la tâche.
- Obligatoire : Non
- Utilisation :
job = singularity.run(
action="create_fit_predict",
name="classifier_name", # specify your custom name for the classifier here
num_learners=10,
regularization=0.01,
optimizer_options={"simulator": True},
X_train=X_train, # or "X_train.npy" if you uploaded it in the shared data directory
y_train=y_train, # or "y_train.npy" if you uploaded it in the shared data directory
X_test=X_test, # or "X_test.npy" if you uploaded it in the shared data directory
fit_params={}, # define the fit parameters here
options={
"save": True,
"out": "output.json",
},
)-
Validations :
-
name:- Si
options["save"]est défini surTrue:- Le nom doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Il ne doit pas y avoir de classificateur portant le même nom dans le répertoire de données partagé.
- Si
-
options["out"]:- Le nom de fichier doit être unique et comporter au maximum 64 caractères.
- Il ne peut contenir que des caractères alphanumériques et des traits de soulignement.
- Il doit commencer par une lettre et ne peut pas se terminer par un trait de soulignement.
- Il doit avoir l'extension
.json.
-