Referência da API do Multiverse Singularity Machine Learning
Qiskit Functions — ferramentas pré-desenvolvidas por organizações parceiras — abstraem partes do fluxo de trabalho de desenvolvimento de software para simplificar e acelerar a descoberta de algoritmos e o desenvolvimento de aplicativos em escala industrial. Clique para ver o guia desta função do Qiskit.
Guia de funções do Qiskit no Singularity Machine Learning
Abordagem baseada na ação
A função utiliza uma abordagem baseada em ações. Você pode pensar nisso como um ambiente virtual no qual você usa ações para realizar tarefas ou alterar seu estado. Atualmente, oferece as seguintes ações: list, create, delete, fit, predict, fit_predict, e create_fit_predict. O exemplo a seguir ilustra a create_fit_predict ação.
list
A list ação recupera todos os classificadores armazenados no *.pkl.tar formato do diretório de dados compartilhados. Você também pode acessar o conteúdo deste diretório usando o catalog.files() método. Em geral, a ação de lista procura arquivos com a *.pkl.tar extensão no diretório de dados compartilhados e os exibe em formato de lista.
- Entradas:
action
Tipo: `str`
O nome da ação entre create, list, fit, predict fit_predict,, create_fit_predict e delete.
Necessário: sim
- Uso:
job = singularity.run(action="list")create
A create ação cria um classificador do tipo quantum_classifier especificado utilizando os parâmetros fornecidos e o salva no diretório de dados compartilhados.
Atualmente, a função suporta apenas o QuantumEnhancedEnsembleClassifier.
- Entradas:
action
Tipo: `str`
O nome da ação entre create, list, fit, predict fit_predict,, create_fit_predict e delete.
- Necessário: sim
name
Tipo: `str`
O nome do classificador quântico, por exemplo, spam_classifier.
- Necessário: sim
instance
Tipo: `str`
IBM por exemplo.
- Necessário: sim
backend_name
Tipo: `str`
Valor Padrão: `None`
IBM recurso de computação. O padrão é None, o que significa que será utilizado o backend com o menor número de tarefas pendentes.
- Obrigatório: Não
quantum_classifier
Tipo: `str`
O tipo do classificador quântico, por exemplo, QuantumEnhancedEnsembleClassifier.
- Obrigatório: Não
num_learners
Tipo: `int`
Valor Padrão: 10
O número de alunos no grupo.
- Obrigatório: Não
learners_types
Tipo: `list`
Valor Padrão: `[DecisionTreeClassifier]`
Tipos de alunos. Entre os tipos compatíveis estão: DecisionTreeClassifier, GaussianNB, KNeighborsClassifier MLPClassifier,, e LogisticRegression. Mais detalhes sobre cada um deles podem ser encontrados na documentação do scikit-learn.
- Obrigatório: Não
learners_proportions
Tipo: `list`
Valor Padrão: `[1.0]`
Proporções de cada tipo de aluno no conjunto.
- Obrigatório: Não
learners_options
Tipo: `list`
Valor Padrão: `[{`max_depth`: 3, `splitter`: `random`, `class_weight`: None}]`
Opções para cada tipo de aluno no grupo. Para obter uma lista completa das opções correspondentes ao(s) tipo(s) de aluno(s) escolhido(s), consulte a documentação do scikit-learn.
- Obrigatório: Não
regularization_type
Tipo: `str` or `list`
Valor Padrão: `onsite`
Tipo(s) de regularização a ser(em) utilizado(s): onsite ou alpha. onsite controla o termo de localização, em que valores mais altos resultam em conjuntos mais esparsos. alpha controla o equilíbrio entre os termos de interação e os termos locais, em que valores mais baixos resultam em conjuntos mais esparsos. Se for fornecida uma lista, os modelos serão treinados para cada tipo e será selecionado aquele com melhor desempenho.
- Obrigatório: Não
regularization
Tipo: `str` or `float` or `list`
Valor Padrão: `0.01`
Valor de regularização. Limitado entre 0 e +inf se regularization_type for onsite. Limitado entre 0 e 1 se regularization_type for alpha. Se definido como auto, é utilizada a auto-regularização — o parâmetro de regularização ideal é encontrado por meio de busca binária, considerando a proporção desejada entre os classificadores selecionados e o total de classificadores (regularization_desired_ratio) e o limite superior para o parâmetro de regularização (regularization_upper_bound). Se for fornecida uma lista, os modelos serão treinados para cada valor e será selecionado aquele com melhor desempenho.
- Obrigatório: Não
regularization_desired_ratio
Tipo: `float` or `list`
Valor Padrão: `0.75`
Proporção(ões) desejada(s) dos classificadores selecionados em relação ao total de classificadores para a autorregularização. Se for fornecida uma lista, os modelos serão treinados para cada índice e será selecionado aquele com melhor desempenho.
- Obrigatório: Não
regularization_upper_bound
Tipo: `float` or `list`
Valor Padrão: 200
Limite(s) superior(es) para o parâmetro de regularização ao utilizar a autorregularização. Se for fornecida uma lista, os modelos serão treinados para cada limite superior e será selecionado aquele com melhor desempenho.
- Obrigatório: Não
weight_update_method
Tipo: `str`
Valor Padrão: `logarithmic`
Método para atualização dos pesos das amostras entre logarithmic e quadratic.
- Obrigatório: Não
sample_scaling
Tipo: `boolean`
Valor Padrão: False`
Se deve ser aplicada a escala de amostras.
- Obrigatório: Não
prediction_scaling
Tipo: `float`
Valor Padrão: `None`
Fator de escala para previsões.
- Obrigatório: Não
optimizer_options
Tipo: `dict`
Opções do otimizador QAOA.
Nome | Tipo | Descrição | Necessário | Padrão |
|---|---|---|---|---|
num_solutions | integer | O número de soluções | Não | 1024 |
reps | integer | O número de repetições | Não | 4 |
sparsify | float | O limiar de esparsificação | Não | 0.001 |
theta | float | O valor inicial de theta, um parâmetro variacional do QAOA | Não | None |
simulator | boolean | Se deve-se usar um simulador ou uma QPU | Não | False |
classical_optimizer | str | Nome do otimizador clássico para o QAOA. Todos os solucionadores oferecidos pelo site SciPy,, conforme listados aqui, estão disponíveis para uso. Você precisará definir classical_optimizer_options de acordo com o necessário | Não | COBYLA |
classical_optimizer_options | dictionary | Opções clássicas do otimizador. Para obter uma lista completa das opções disponíveis, consulte a documentação do SciPy | Não | {"maxiter": 60} |
optimization_level | integer | A profundidade do circuito QAOA | Não | 3 |
num_transpiler_runs | integer | Número de execuções do transpiler | Não | 30 |
pass_manager_options | dictionary | Opções para gerar um gerenciador de senhas predefinidas | Não | {"approximation_degree": 1.0} |
estimator_options | dictionary | Opções do estimador. Para obter uma lista completa das opções disponíveis, consulte a documentação do cliente em Qiskit Runtime | Não | None |
sampler_options | dictionary | Opções de amostras. Para obter uma lista completa das opções disponíveis, consulte a documentação do cliente do Qiskit Runtime | Não | None |
- Os valores padrão
estimator_optionssão:
Nome | 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"],}} |
- Os valores padrão
sampler_optionssão:
Nome | Tipo | Valor |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 1 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"enable": True} |
- Obrigatório: Não
voting
Tipo: `str`
Valor Padrão: `hard`
Use a votação por maioria (hard) ou a média das probabilidades (soft) para agregar as previsões/probabilidades dos aprendizes.
- Obrigatório: Não
prob_threshold
Tipo: `float`
Valor Padrão: `0.5`
Limite de probabilidade ideal.
- Obrigatório: Não
random_state
Tipo: `int`
Valor Padrão: `None`
Controle a aleatoriedade para garantir a repetibilidade.
- Obrigatório: Não
- 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},
)-
Validações:
name:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Não deve existir nenhum classificador com o mesmo nome no diretório de dados compartilhados.
delete
A delete ação remove um classificador do diretório de dados compartilhados.
- Entradas:
action
Tipo: `str`
O nome da ação. Deve ser delete.
- Necessário: sim
name
Tipo: `str`
O nome do classificador a ser excluído.
- Necessário: sim
- Uso:
job = singularity.run(
action="delete",
name="classifier_name", # specify the name of the classifier to delete here
)-
Validações:
name:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Já deve existir um classificador com o mesmo nome no diretório de dados compartilhados.
fit
A fit ação treina um classificador utilizando os dados de treinamento fornecidos.
- Entradas:
action
Tipo: `str`
O nome da ação. Deve ser fit.
- Necessário: sim
name
Tipo: `str`
O nome do classificador a ser treinado.
- Necessário: sim
X
Tipo: `array` or `list` or `str`
Os dados de treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
y
Tipo: `array` or `list` or `str`
Os valores-alvo do treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
fit_params
Tipo: `dict`
Parâmetros adicionais a serem passados para o fit método do classificador. Consulte o dicionário abaixo.
- Obrigatório: Não
Nome | Tipo | Descrição | Necessário | Padrão |
|---|---|---|---|---|
validation_data | tuple | Os dados de validação e os rótulos. | Não | None |
pos_label | integer ou str | O rótulo da classe a ser mapeado para 1. | Não | None |
optimization_data | str | Conjunto de dados para otimizar o conjunto de modelos. Pode ser um dos seguintes: train, validation, both. | Não | 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
)-
Validações:
name:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Já deve existir um classificador com o mesmo nome no diretório de dados compartilhados.
predict
A predict ação é utilizada para obter previsões concretas e aproximadas (probabilidades).
- Entradas:
action
Tipo: `str`
O nome da ação. Deve ser predict.
- Necessário: sim
name
Tipo: `str`
O nome do classificador a ser utilizado.
- Necessário: sim
X
Tipo: `array` or `list` or `str`
Os dados do teste. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
options["out"]
Tipo: `str`
O nome do arquivo JSON de saída no qual as previsões serão salvas no diretório de dados compartilhados. Se não forem fornecidas, as previsões são retornadas no resultado da tarefa.
- Obrigatório: Não
- 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",
},
)-
Validações:
name:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Já deve existir um classificador com o mesmo nome no diretório de dados compartilhados.
options["out"]:- O nome do arquivo deve ser único e conter até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Deve ter a
.jsonextensão.
fit_predict
A fit_predict ação treina um classificador usando os dados de treinamento e, em seguida, o utiliza para obter previsões definitivas e prováveis (probabilidades).
- Entradas:
action
Tipo: `str`
O nome da ação. Deve ser fit_predict.
- Necessário: sim
name
Tipo: `str`
O nome do classificador a ser utilizado.
- Necessário: sim
X_train
Tipo: `array` or `list` or `str`
Os dados de treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
y_train
Tipo: `array` or `list` or `str`
Os valores-alvo do treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
X_test
Tipo: `array` or `list` or `str`
Os dados do teste. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
fit_params
Tipo: `dict`
Parâmetros adicionais a serem passados ao método fit do classificador.
- Obrigatório: Não
options["out"]
Tipo: `str`
O nome do arquivo JSON de saída no qual as previsões serão salvas no diretório de dados compartilhados. Se não forem fornecidas, as previsões são retornadas no resultado da tarefa.
- Obrigatório: Não
- 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",
},
)-
Validações:
-
name:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Já deve existir um classificador com o mesmo nome no diretório de dados compartilhados.
-
options["out"]:- O nome do arquivo deve ser único e conter até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Deve ter a
.jsonextensão.
-
create_fit_predict
A create_fit_predict ação cria um classificador, treina-o usando os dados de treinamento fornecidos e, em seguida, utiliza-o para obter previsões definitivas e provisórias (probabilidades).
Veja um exemplo dessa create_fit_predict ação no guia.
- Entradas:
action
Tipo: `str`
O nome da ação entre create, list, fit, predict fit_predict,, create_fit_predict e delete.
- Necessário: sim
name
Tipo: `str`
O nome do classificador a ser utilizado.
- Necessário: sim
quantum_classifier
Tipo: `str`
Valor Padrão: `QuantumEnhancedEnsembleClassifier`
O tipo do classificador, por exemplo, QuantumEnhancedEnsembleClassifier.
- Obrigatório: Não
X_train
Tipo: `array` or `list` or `str`
Os dados de treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
y_train
Tipo: `array` or `list` or `str`
Os valores-alvo do treinamento. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
X_test
Tipo: `array` or `list` or `str`
Os dados do teste. Pode ser uma matriz de tipo NumPy, uma lista ou uma string que faça referência a um nome de arquivo no diretório de dados compartilhados.
- Necessário: sim
fit_params
Tipo: `dict`
Parâmetros adicionais a serem passados ao método fit do classificador.
- Obrigatório: Não
options["save"]
Tipo: `bool`
Valor Padrão: `True`
Se o classificador treinado deve ser salvo no diretório de dados compartilhados.
- Obrigatório: Não
options["out"]
Tipo: `str`
O nome do arquivo JSON de saída no qual as previsões serão salvas no diretório de dados compartilhados. Se não forem fornecidas, as previsões são retornadas no resultado da tarefa.
- Obrigatório: Não
- 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",
},
)-
Validações:
-
name:- Se
options["save"]estiver definido comoTrue:- O nome deve ser único e consistir em uma sequência de caracteres com até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Não deve existir nenhum classificador com o mesmo nome no diretório de dados compartilhados.
- Se
-
options["out"]:- O nome do arquivo deve ser único e conter até 64 caracteres.
- Pode conter apenas caracteres alfanuméricos e sublinhados.
- Deve começar com uma letra e não pode terminar com um sublinhado.
- Deve ter a
.jsonextensão.
-