Referencia de la API de Multiverse Singularity Machine Learning
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.
Guía de funciones de Qiskit de Singularity Machine Learning
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.
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_solutions | integer | El número de soluciones | No | 1024 |
reps | integer | El número de repeticiones | No | 4 |
sparsify | float | El umbral de despredicción | No | 0.001 |
theta | float | El valor inicial de theta, un parámetro variacional del QAOA | No | None |
simulator | boolean | Si se debe utilizar un simulador o una QPU | No | False |
classical_optimizer | str | Nombre 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 consecuencia | No | COBYLA |
classical_optimizer_options | dictionary | Opciones clásicas del optimizador. Para obtener una lista completa de las opciones disponibles, consulta la documentación de SciPy | No | {"maxiter": 60} |
optimization_level | integer | La profundidad del circuito QAOA | No | 3 |
num_transpiler_runs | integer | Número de ejecuciones del transpilador | No | 30 |
pass_manager_options | dictionary | Opciones para generar un gestor de pases predefinidos | No | {"approximation_degree": 1.0} |
estimator_options | dictionary | Opciones del estimador. Para obtener una lista completa de las opciones disponibles, consulte la documentación para clientes de Qiskit Runtime | No | None |
sampler_options | dictionary | Opciones de muestreo. Para obtener una lista completa de las opciones disponibles, consulte la documentación de Qiskit Runtime Client | No | None |
- Los valores predeterminados
estimator_optionsson:
Nombre | Tipo | Valor |
|---|---|---|
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"],}} |
- Los valores predeterminados
sampler_optionsson:
Nombre | Tipo | Valor |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 1 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"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_data | tuple | Los datos de validación y las etiquetas. | No | None |
pos_label | integer o str | La etiqueta de clase que se va a asignar al 1. | No | None |
optimization_data | str | Conjunto de datos sobre el que optimizar el conjunto de modelos. Puede ser uno de los siguientes: train, validation, both. | No | train |
- 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
.jsonextensió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
.jsonextensió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 enTrue:- 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.
- Si
-
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
.jsonextensión.
-