Skip to main content
IBM Quantum Platform

Referência da API do Multiverse Singularity Machine Learning

  • Qiskit Functions

    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.


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.

Note

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_solutionsintegerO número de soluçõesNão1024
repsintegerO número de repetiçõesNão4
sparsifyfloatO limiar de esparsificaçãoNão0.001
thetafloatO valor inicial de theta, um parâmetro variacional do QAOANãoNone
simulatorbooleanSe deve-se usar um simulador ou uma QPUNãoFalse
classical_optimizerstrNome 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árioNãoCOBYLA
classical_optimizer_optionsdictionaryOpções clássicas do otimizador. Para obter uma lista completa das opções disponíveis, consulte a documentação do SciPyNão{"maxiter": 60}
optimization_levelintegerA profundidade do circuito QAOANão3
num_transpiler_runsintegerNúmero de execuções do transpilerNão30
pass_manager_optionsdictionaryOpções para gerar um gerenciador de senhas predefinidasNão{"approximation_degree": 1.0}
estimator_optionsdictionaryOpções do estimador. Para obter uma lista completa das opções disponíveis, consulte a documentação do cliente em Qiskit RuntimeNãoNone
sampler_optionsdictionaryOpções de amostras. Para obter uma lista completa das opções disponíveis, consulte a documentação do cliente do Qiskit RuntimeNãoNone
  • Os valores padrão estimator_options são:
Nome
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"],}}
  • Os valores padrão sampler_options são:
Nome
Tipo
Valor
default_shotsinteger1024
resilience_levelinteger1
twirlingdictionary{"enable_gates": True}
dynamical_decouplingdictionary{"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_datatupleOs dados de validação e os rótulos.NãoNone
pos_labelinteger ou strO rótulo da classe a ser mapeado para 1.NãoNone
optimization_datastrConjunto de dados para otimizar o conjunto de modelos. Pode ser um dos seguintes: train, validation, both.Nãotrain
  • 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 .json extensã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 .json extensã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 como True:
        • 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.
    • 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 .json extensão.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.