Skip to main content
IBM Quantum Platform

Referencia de la API de Multiverse Singularity Machine Learning

  • Qiskit Functions

    Qiskit Functions — Herramientas preconfiguradas creadas por organizaciones asociadas — que abstraen partes del flujo de trabajo de desarrollo de software para simplificar y acelerar el descubrimiento de algoritmos y el desarrollo de aplicaciones a escala industrial. Haz clic aquí para ver la guía de esta función de Qiskit.


Enfoque basado en la acción

La función utiliza un enfoque basado en acciones. Puedes imaginártelo como un entorno virtual en el que utilizas acciones para realizar tareas o modificar su estado. Actualmente, ofrece las siguientes acciones: list, create, delete fit,, predict, fit_predict, y create_fit_predict. El siguiente ejemplo muestra cómo funciona la create_fit_predict acción.

list

La list acción recupera todos los clasificadores almacenados en *.pkl.tar formato del directorio de datos compartido. También puedes acceder al contenido de este directorio utilizando el catalog.files() método. En general, la acción «Lista» busca archivos con esa *.pkl.tar extensión en el directorio de datos compartidos y los muestra en formato de lista.

  • Entradas:

action

Tipo: `str`

El nombre de la acción entre create, list, fit, predict fit_predict,, create_fit_predict y delete. Obligatorio: Sí

  • Uso:
job = singularity.run(action="list")

create

La create acción crea un clasificador del tipo quantum_classifier especificado utilizando los parámetros proporcionados y lo guarda en el directorio de datos compartidos.

Note

Actualmente, la función solo admite el QuantumEnhancedEnsembleClassifier.

  • Entradas:

action

Tipo: `str`

El nombre de la acción entre create, list, fit, predict fit_predict,, create_fit_predict y delete.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador cuántico, por ejemplo, spam_classifier.

  • Obligatorio: Sí

instance

Tipo: `str`

IBM por ejemplo.

  • Obligatorio: Sí

backend_name

Tipo: `str`

Valor predeterminado: `None`

IBM recurso informático. El valor predeterminado es None, lo que significa que se utilizará el backend con menos trabajos pendientes.

  • Requisito: No

quantum_classifier

Tipo: `str`

El tipo del clasificador cuántico, por ejemplo, QuantumEnhancedEnsembleClassifier.

  • Requisito: No

num_learners

Tipo: `int`

Valor predeterminado: 10

El número de alumnos del grupo.

  • Requisito: No

learners_types

Tipo: `list`

Valor predeterminado: `[DecisionTreeClassifier]`

Tipos de alumnos. Entre los tipos compatibles se encuentran: DecisionTreeClassifier, GaussianNB, KNeighborsClassifier MLPClassifier,, y LogisticRegression. Para obtener más información sobre cada uno de ellos, consulte la documentación de scikit-learn.

  • Requisito: No

learners_proportions

Tipo: `list`

Valor predeterminado: `[1.0]`

Proporción de cada tipo de alumno en el conjunto.

  • Requisito: No

learners_options

Tipo: `list`

Valor predeterminado: `[{`max_depth`: 3, `splitter`: `random`, `class_weight`: None}]`

Opciones para cada tipo de alumno del grupo. Para obtener una lista completa de las opciones correspondientes al tipo o tipos de modelo seleccionados, consulta la documentación de scikit-learn.

  • Requisito: No

regularization_type

Tipo: `str` or `list`

Valor predeterminado: `onsite`

Tipo(s) de regularización que se utilizará(n): onsite o alpha. onsite controla el parámetro «on-site», de modo que unos valores más altos dan lugar a conjuntos más dispersos. alpha controla el equilibrio entre los términos de interacción y los términos locales, de modo que unos valores más bajos dan lugar a conjuntos más dispersos. Si se proporciona una lista, se entrenarán modelos para cada tipo y se seleccionará el que obtenga mejores resultados.

  • Requisito: No

regularization

Tipo: `str` or `float` or `list`

Valor predeterminado: `0.01`

Valor de regularización. Limitado entre 0 y +inf si regularization_type es onsite. Limitado entre 0 y 1 si regularization_type es alpha. Si se establece en auto, se utiliza la autorregularización: el parámetro de regularización óptimo se determina mediante búsqueda binaria con la proporción deseada entre los clasificadores seleccionados y el total de clasificadores (regularization_desired_ratio) y el límite superior del parámetro de regularización (regularization_upper_bound). Si se proporciona una lista, se entrenarán modelos para cada valor y se seleccionará el que obtenga mejores resultados.

  • Requisito: No

regularization_desired_ratio

Tipo: `float` or `list`

Valor predeterminado: `0.75`

Proporción(es) deseada(s) de los clasificadores seleccionados con respecto al total de clasificadores para la autorregularización. Si se proporciona una lista, se entrenarán modelos para cada ratio y se seleccionará el que obtenga mejores resultados.

  • Requisito: No

regularization_upper_bound

Tipo: `float` or `list`

Valor predeterminado: 200

Límite(s) superior(es) para el parámetro de regularización cuando se utiliza la autorregularización. Si se proporciona una lista, se entrenarán modelos para cada límite superior y se seleccionará el que obtenga mejores resultados.

  • Requisito: No

weight_update_method

Tipo: `str`

Valor predeterminado: `logarithmic`

Método para actualizar las ponderaciones de las muestras de entre logarithmic y quadratic.

  • Requisito: No

sample_scaling

Tipo: `boolean`

Valor predeterminado: False`

Si se debe aplicar el escalado de la muestra.

  • Requisito: No

prediction_scaling

Tipo: `float`

Valor predeterminado: `None`

Factor de escala para las predicciones.

  • Requisito: No

optimizer_options

Tipo: `dict`

Opciones del optimizador QAOA.

Nombre
Tipo
Descripción
Obligatorio
Valor predeterminado
num_solutionsintegerEl número de solucionesNo1024
repsintegerEl número de repeticionesNo4
sparsifyfloatEl umbral de despredicciónNo0.001
thetafloatEl valor inicial de theta, un parámetro variacional del QAOANoNone
simulatorbooleanSi se debe utilizar un simulador o una QPUNoFalse
classical_optimizerstrNombre del optimizador clásico para el QAOA. Todos los solucionadores que ofrece SciPy,, tal y como se enumeran aquí, están disponibles. Tendrás que configurarlo classical_optimizer_options en consecuenciaNoCOBYLA
classical_optimizer_optionsdictionaryOpciones clásicas del optimizador. Para obtener una lista completa de las opciones disponibles, consulta la documentación de SciPyNo{"maxiter": 60}
optimization_levelintegerLa profundidad del circuito QAOANo3
num_transpiler_runsintegerNúmero de ejecuciones del transpiladorNo30
pass_manager_optionsdictionaryOpciones para generar un gestor de pases predefinidosNo{"approximation_degree": 1.0}
estimator_optionsdictionaryOpciones del estimador. Para obtener una lista completa de las opciones disponibles, consulte la documentación para clientes de Qiskit RuntimeNoNone
sampler_optionsdictionaryOpciones de muestreo. Para obtener una lista completa de las opciones disponibles, consulte la documentación de Qiskit Runtime ClientNoNone
  • Los valores predeterminados estimator_options son:
Nombre
Tipo
Valor
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"],}}
  • Los valores predeterminados sampler_options son:
Nombre
Tipo
Valor
default_shotsinteger1024
resilience_levelinteger1
twirlingdictionary{"enable_gates": True}
dynamical_decouplingdictionary{"enable": True}
  • Requisito: No

voting

Tipo: `str`

Valor predeterminado: `hard`

Utiliza el voto por mayoría (hard) o la media de las probabilidades (soft) para agregar las predicciones o probabilidades de los modelos de aprendizaje.

  • Requisito: No

prob_threshold

Tipo: `float`

Valor predeterminado: `0.5`

Umbral de probabilidad óptimo.

  • Requisito: No

random_state

Tipo: `int`

Valor predeterminado: `None`

Controla la aleatoriedad para garantizar la repetibilidad.

  • Requisito: No
  • Uso:
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},
)
  • Validaciones:

    • name:
      • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • No debe existir ya ningún clasificador con el mismo nombre en el directorio de datos compartidos.

delete

Esta delete acción elimina un clasificador del directorio de datos compartidos.

  • Entradas:

action

Tipo: `str`

El nombre de la acción. Debe ser delete.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador que se va a eliminar.

  • Obligatorio: Sí
  • Uso:
job = singularity.run(
    action="delete",
    name="classifier_name",  # specify the name of the classifier to delete here
)
  • Validaciones:

    • name:
      • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Ya debería existir un clasificador con el mismo nombre en el directorio de datos compartidos.

fit

Esta fit acción entrena un clasificador utilizando los datos de entrenamiento proporcionados.

  • Entradas:

action

Tipo: `str`

El nombre de la acción. Debe ser fit.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador que se va a entrenar.

  • Obligatorio: Sí

X

Tipo: `array` or `list` or `str`

Los datos de entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

y

Tipo: `array` or `list` or `str`

Los valores objetivo del entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

fit_params

Tipo: `dict`

Parámetros adicionales que se deben pasar al método fit del clasificador. Consulte el diccionario que aparece a continuación.

  • Requisito: No
Nombre
Tipo
Descripción
Obligatorio
Valor predeterminado
validation_datatupleLos datos de validación y las etiquetas.NoNone
pos_labelinteger o strLa etiqueta de clase que se va a asignar al 1.NoNone
optimization_datastrConjunto de datos sobre el que optimizar el conjunto de modelos. Puede ser uno de los siguientes: train, validation, both.Notrain
  • Uso:
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
)
  • Validaciones:

    • name:
      • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Ya debería existir un clasificador con el mismo nombre en el directorio de datos compartidos.

predict

Esta predict acción se utiliza para obtener predicciones duras y blandas (probabilidades).

  • Entradas:

action

Tipo: `str`

El nombre de la acción. Debe ser predict.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador que se va a utilizar.

  • Obligatorio: Sí

X

Tipo: `array` or `list` or `str`

Los datos de prueba. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

options["out"]

Tipo: `str`

El nombre del archivo JSON de salida en el que se guardarán las predicciones en el directorio de datos compartido. Si no se especifican, las predicciones se incluyen en el resultado del trabajo.

  • Requisito: No
  • Uso:
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",
    },
)
  • Validaciones:

    • name:
      • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Ya debería existir un clasificador con el mismo nombre en el directorio de datos compartidos.
    • options["out"]:
      • El nombre del archivo debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Debe tener la .json extensión.

fit_predict

La fit_predict acción entrena un clasificador utilizando los datos de entrenamiento y, a continuación, lo utiliza para obtener predicciones definitivas y provisionales (probabilidades).

  • Entradas:

action

Tipo: `str`

El nombre de la acción. Debe ser fit_predict.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador que se va a utilizar.

  • Obligatorio: Sí

X_train

Tipo: `array` or `list` or `str`

Los datos de entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

y_train

Tipo: `array` or `list` or `str`

Los valores objetivo del entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

X_test

Tipo: `array` or `list` or `str`

Los datos de prueba. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

fit_params

Tipo: `dict`

Parámetros adicionales que se deben pasar al método fit del clasificador.

  • Requisito: No

options["out"]

Tipo: `str`

El nombre del archivo JSON de salida en el que se guardarán las predicciones en el directorio de datos compartido. Si no se especifican, las predicciones se incluyen en el resultado del trabajo.

  • Requisito: No
  • Uso:
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",
    },
)
  • Validaciones:

    • name:

      • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Ya debería existir un clasificador con el mismo nombre en el directorio de datos compartidos.
    • options["out"]:

      • El nombre del archivo debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Debe tener la .json extensión.

create_fit_predict

La create_fit_predict acción crea un clasificador, lo entrena utilizando los datos de entrenamiento proporcionados y, a continuación, lo utiliza para obtener predicciones duras y blandas (probabilidades).

Consulte un ejemplo de la create_fit_predict acción en la guía.

  • Entradas:

action

Tipo: `str`

El nombre de la acción entre create, list, fit, predict fit_predict,, create_fit_predict y delete.

  • Obligatorio: Sí

name

Tipo: `str`

El nombre del clasificador que se va a utilizar.

  • Obligatorio: Sí

quantum_classifier

Tipo: `str`

Valor predeterminado: `QuantumEnhancedEnsembleClassifier`

El tipo del clasificador, por ejemplo, QuantumEnhancedEnsembleClassifier.

  • Requisito: No

X_train

Tipo: `array` or `list` or `str`

Los datos de entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

y_train

Tipo: `array` or `list` or `str`

Los valores objetivo del entrenamiento. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

X_test

Tipo: `array` or `list` or `str`

Los datos de prueba. Puede tratarse de una matriz de tipo « NumPy », una lista o una cadena que haga referencia a un nombre de archivo en el directorio de datos compartidos.

  • Obligatorio: Sí

fit_params

Tipo: `dict`

Parámetros adicionales que se deben pasar al método fit del clasificador.

  • Requisito: No

options["save"]

Tipo: `bool`

Valor predeterminado: `True`

Si se debe guardar el clasificador entrenado en el directorio de datos compartido.

  • Requisito: No

options["out"]

Tipo: `str`

El nombre del archivo JSON de salida en el que se guardarán las predicciones en el directorio de datos compartido. Si no se especifican, las predicciones se incluyen en el resultado del trabajo.

  • Requisito: No
  • Uso:
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",
    },
)
  • Validaciones:

    • name:

      • Si options["save"] se establece en True:
        • El nombre debe ser único y consistir en una cadena de hasta 64 caracteres.
        • Solo puede contener caracteres alfanuméricos y guiones bajos.
        • Debe empezar por una letra y no puede terminar con un guión bajo.
        • No debe existir ya ningún clasificador con el mismo nombre en el directorio de datos compartidos.
    • options["out"]:

      • El nombre del archivo debe ser único y consistir en una cadena de hasta 64 caracteres.
      • Solo puede contener caracteres alfanuméricos y guiones bajos.
      • Debe empezar por una letra y no puede terminar con un guión bajo.
      • Debe tener la .json extensión.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.