Skip to main content
IBM Quantum Platform

Référence de l'API « Multiverse Singularity » d' Machine Learning

  • Qiskit Functions

    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.


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.

Note

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_solutionsintegerLe nombre de solutionsNon1024
repsintegerLe nombre de répétitionsNon4
sparsifyfloatLe seuil de raréfactionNon0.001
thetafloatLa valeur initiale de θ, un paramètre variationnel de l'algorithme QAOANonNone
simulatorbooleanFaut-il utiliser un simulateur ou un QPU?NonFalse
classical_optimizerstrNom 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écessairesNonCOBYLA
classical_optimizer_optionsdictionaryOptions classiques de l'optimiseur. Pour obtenir la liste complète des options disponibles, consultez la documentation de l' SciPyNon{"maxiter": 60}
optimization_levelintegerLa profondeur du circuit QAOANon3
num_transpiler_runsintegerNombre d'exécutions du transpileurNon30
pass_manager_optionsdictionaryOptions pour la création d'un gestionnaire de passes prédéfiniNon{"approximation_degree": 1.0}
estimator_optionsdictionaryOptions de l'estimateur. Pour obtenir la liste complète des options disponibles, consultez la documentation client d' Qiskit RuntimeNonNone
sampler_optionsdictionaryOptions de l'échantillonneur. Pour obtenir la liste complète des options disponibles, consultez la documentation du client « Qiskit Runtime ».NonNone
  • Les valeurs par défaut estimator_options sont :
Nom
Type
Valeur
default_shotsinteger1024
resilience_levelinteger2
twirlingdictionary{"enable_gates": True}
dynamical_decouplingdictionary{"enable": True}
resilience_optionsdictionary{"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_options sont :
Nom
Type
Valeur
default_shotsinteger1024
resilience_levelinteger1
twirlingdictionary{"enable_gates": True}
dynamical_decouplingdictionary{"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_datatupleLes données de validation et les étiquettes.NonNone
pos_labelinteger ou strL'étiquette de classe à associer à 1.NonNone
optimization_datastrEnsemble de données sur lequel optimiser l'ensemble. Peut être l'un des éléments suivants : train, validation, both.Nontrain
  • 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 sur True:
        • 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é.
    • 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 .
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.