Multiverse Singularity – API-Referenz für „ Machine Learning “
Qiskit Functions — von Partnerorganisationen entwickelte vorgefertigte Tools — abstrahieren Teile des Softwareentwicklungs-Workflows, um die Erforschung von Algorithmen und die Anwendungsentwicklung im großen Maßstab zu vereinfachen und zu beschleunigen. Klicken Sie hier, um die Anleitung zu dieser Qiskit-Funktion anzuzeigen.
Singularity- Machine Learning : Leitfaden zu Qiskit-Funktionen
Handlungsorientierter Ansatz
Die Funktion basiert auf einem aktionsorientierten Ansatz. Man kann sich das als eine virtuelle Umgebung vorstellen, in der man mithilfe von Aktionen Aufgaben ausführt oder deren Zustand verändert. Derzeit stehen folgende Aktionen zur Verfügung: list, create, delete, fit, predict, fit_predict, und create_fit_predict. Das folgende Beispiel veranschaulicht die create_fit_predict Aktion.
list
Die list Aktion ruft alle gespeicherten Klassifikatoren im *.pkl.tar Format aus dem gemeinsamen Datenverzeichnis ab. Sie können auch über die catalog.files() Methode auf den Inhalt dieses Verzeichnisses zugreifen. Im Allgemeinen sucht die Listenaktion im Verzeichnis für gemeinsam genutzte Daten nach Dateien mit der *.pkl.tar Erweiterung und gibt diese in Form einer Liste zurück.
- Eingaben:
action
Typ: `str`
Der Name der Aktion aus der Gruppe create, list, fit, predict, fit_predict, create_fit_predict und delete.
Erforderlich: Ja
- Verwendung:
job = singularity.run(action="list")create
Die create Aktion erstellt anhand der angegebenen Parameter einen Klassifikator des angegebenen quantum_classifier Typs und speichert ihn im Verzeichnis für gemeinsam genutzte Daten.
Die Funktion unterstützt derzeit nur das QuantumEnhancedEnsembleClassifier.
- Eingaben:
action
Typ: `str`
Der Name der Aktion aus der Gruppe create, list, fit, predict, fit_predict, create_fit_predict und delete.
- Erforderlich: Ja
name
Typ: `str`
Der Name des Quantenklassifikators lautet beispielsweise. spam_classifier
- Erforderlich: Ja
instance
Typ: `str`
IBM Beispiel.
- Erforderlich: Ja
backend_name
Typ: `str`
Standardwert: `None`
IBM Rechenressource. Die Standardeinstellung ist None, was bedeutet, dass das Backend mit den wenigsten ausstehenden Aufträgen verwendet wird.
- Erforderlich: Nein
quantum_classifier
Typ: `str`
Der Typ des Quantenklassifikators, zum Beispiel. QuantumEnhancedEnsembleClassifier
- Erforderlich: Nein
num_learners
Typ: `int`
Standardwert: 10
Die Anzahl der Lernenden im Ensemble.
- Erforderlich: Nein
learners_types
Typ: `list`
Standardwert: `[DecisionTreeClassifier]`
Lerntypen. Zu den unterstützten Typen gehören: DecisionTreeClassifier, GaussianNB, KNeighborsClassifier MLPClassifier,, und LogisticRegression. Weitere Einzelheiten zu den einzelnen Funktionen finden Sie in der scikit-learn-Dokumentation.
- Erforderlich: Nein
learners_proportions
Typ: `list`
Standardwert: `[1.0]`
Anteil der einzelnen Lerntypen in der Gruppe.
- Erforderlich: Nein
learners_options
Typ: `list`
Standardwert: `[{`max_depth`: 3, `splitter`: `random`, `class_weight`: None}]`
Optionen für jeden Lerntyp im Ensemble. Eine vollständige Liste der Optionen für den/die ausgewählten Modelltyp(en) finden Sie in der scikit-learn-Dokumentation.
- Erforderlich: Nein
regularization_type
Typ: `str` or `list`
Standardwert: `onsite`
Zu verwendende Regularisierungsart(en): onsite oder alpha. onsite steuert den Onsite-Term, wobei höhere Werte zu spärlicheren Ensembles führen. alpha steuert das Gleichgewicht zwischen Interaktions- und Standorttermen, wobei niedrigere Werte zu spärlicheren Ensembles führen. Wenn eine Liste bereitgestellt wird, werden für jeden Typ Modelle trainiert, und das Modell mit der besten Leistung wird ausgewählt.
- Erforderlich: Nein
regularization
Typ: `str` or `float` or `list`
Standardwert: `0.01`
Regularisierungswert. begrenzt zwischen 0 und, +inf wenn regularization_type gleich ist onsite. begrenzt zwischen 0 und, 1 wenn regularization_type gleich ist alpha. Wenn auf autogesetzt ist, wird die automatische Regularisierung verwendet – der optimale Regularisierungsparameter wird durch binäre Suche ermittelt, wobei das gewünschte Verhältnis von ausgewählten Klassifikatoren zur Gesamtzahl der Klassifikatoren (regularization_desired_ratio) und die Obergrenze für den Regularisierungsparameter (regularization_upper_bound) berücksichtigt werden. Wird eine Liste angegeben, werden für jeden Wert Modelle trainiert und das Modell mit der besten Leistung ausgewählt.
- Erforderlich: Nein
regularization_desired_ratio
Typ: `float` or `list`
Standardwert: `0.75`
Gewünschtes Verhältnis (oder gewünschte Verhältnisse) der ausgewählten Klassifikatoren zur Gesamtzahl der Klassifikatoren für die Autoregularisierung. Wenn eine Liste bereitgestellt wird, werden für jedes Verhältnis Modelle trainiert, und das Modell mit der besten Leistung wird ausgewählt.
- Erforderlich: Nein
regularization_upper_bound
Typ: `float` or `list`
Standardwert: 200
Obergrenze(n) für den Regularisierungsparameter bei Verwendung der automatischen Regularisierung. Wird eine Liste bereitgestellt, werden für jede Obergrenze Modelle trainiert, und das Modell mit der besten Leistung wird ausgewählt.
- Erforderlich: Nein
weight_update_method
Typ: `str`
Standardwert: `logarithmic`
Verfahren zur Aktualisierung der Stichprobengewichte aus logarithmic und quadratic.
- Erforderlich: Nein
sample_scaling
Typ: `boolean`
Standardwert: False`
Ob eine Skalierung der Stichprobe vorgenommen werden soll.
- Erforderlich: Nein
prediction_scaling
Typ: `float`
Standardwert: `None`
Skalierungsfaktor für Vorhersagen.
- Erforderlich: Nein
optimizer_options
Typ: `dict`
Optionen des QAOA-Optimierers.
Name | Typ | Beschreibung | Erforderlich | Standard |
|---|---|---|---|---|
num_solutions | integer | Die Anzahl der Lösungen | Nein | 1024 |
reps | integer | Die Anzahl der Wiederholungen | Nein | 4 |
sparsify | float | Der Sparsifizierungsschwellenwert | Nein | 0.001 |
theta | float | Der Anfangswert von Theta, einem Variationsparameter von QAOA | Nein | None |
simulator | boolean | Ob ein Simulator oder eine QPU verwendet werden soll | Nein | False |
classical_optimizer | str | Name des klassischen Optimierers für das QAOA. Alle hier aufgeführten, von SciPy, angebotenen Rechner können genutzt werden. Sie müssen die classical_optimizer_options entsprechenden Einstellungen vornehmen | Nein | COBYLA |
classical_optimizer_options | dictionary | Klassische Optimierungsoptionen. Eine vollständige Liste der verfügbaren Optionen finden Sie in der Dokumentation unter SciPy | Nein | {"maxiter": 60} |
optimization_level | integer | Die Tiefe der QAOA-Schaltung | Nein | 3 |
num_transpiler_runs | integer | Anzahl der Transpiler-Durchläufe | Nein | 30 |
pass_manager_options | dictionary | Optionen zur Erstellung eines voreingestellten Pass-Managers | Nein | {"approximation_degree": 1.0} |
estimator_options | dictionary | Optionen für den Schätzer. Eine vollständige Liste der verfügbaren Optionen finden Sie in der Dokumentation zu „ Qiskit Runtime Client “ | Nein | None |
sampler_options | dictionary | Sampler-Optionen. Eine vollständige Liste der verfügbaren Optionen finden Sie in der Dokumentation zum „ Qiskit Runtime “-Client | Nein | None |
- Standardmäßig
estimator_optionssind dies:
Name | Typ | Wert |
|---|---|---|
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"],}} |
- Standardmäßig
sampler_optionssind dies:
Name | Typ | Wert |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 1 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"enable": True} |
- Erforderlich: Nein
voting
Typ: `str`
Standardwert: `hard`
Verwenden Sie die Mehrheitsentscheidung (hard) oder den Durchschnitt der Wahrscheinlichkeiten (soft) zur Aggregation der Vorhersagen/Wahrscheinlichkeiten der Lernmodelle.
- Erforderlich: Nein
prob_threshold
Typ: `float`
Standardwert: `0.5`
Optimaler Wahrscheinlichkeitsschwellenwert.
- Erforderlich: Nein
random_state
Typ: `int`
Standardwert: `None`
Steuern Sie den Zufallsfaktor, um die Wiederholbarkeit zu gewährleisten.
- Erforderlich: Nein
- Verwendung:
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},
)-
Validierungen:
name:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Im gemeinsamen Datenverzeichnis darf noch kein Klassifikator mit demselben Namen vorhanden sein.
delete
Diese delete Aktion entfernt einen Klassifikator aus dem gemeinsamen Datenverzeichnis.
- Eingaben:
action
Typ: `str`
Der Name der Aktion. Muss delete sein.
- Erforderlich: Ja
name
Typ: `str`
Der Name des zu löschenden Klassifikators.
- Erforderlich: Ja
- Verwendung:
job = singularity.run(
action="delete",
name="classifier_name", # specify the name of the classifier to delete here
)-
Validierungen:
name:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Ein Klassifikator mit demselben Namen sollte bereits im gemeinsamen Datenverzeichnis vorhanden sein.
fit
Die fit Aktion trainiert einen Klassifikator anhand der bereitgestellten Trainingsdaten.
- Eingaben:
action
Typ: `str`
Der Name der Aktion. Muss fit sein.
- Erforderlich: Ja
name
Typ: `str`
Der Name des zu trainierenden Klassifikators.
- Erforderlich: Ja
X
Typ: `array` or `list` or `str`
Die Trainingsdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
y
Typ: `array` or `list` or `str`
Die Zielwerte für das Training. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
fit_params
Typ: `dict`
Zusätzliche Parameter, die an die fit Methode des Klassifikators übergeben werden sollen. Siehe das unten stehende Wörterbuch.
- Erforderlich: Nein
Name | Typ | Beschreibung | Erforderlich | Standard |
|---|---|---|---|---|
validation_data | tuple | Die Validierungsdaten und Bezeichnungen. | Nein | None |
pos_label | integer oder str | Die Klassenbezeichnung, die auf 1 abgebildet werden soll. | Nein | None |
optimization_data | str | Datensatz, anhand dessen das Ensemble optimiert werden soll. Kann eines der folgenden sein: train, validation, both. | Nein | train |
- Verwendung:
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
)-
Validierungen:
name:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Ein Klassifikator mit demselben Namen sollte bereits im gemeinsamen Datenverzeichnis vorhanden sein.
predict
Die predict Aktion dient dazu, harte und weiche Vorhersagen (Wahrscheinlichkeiten) zu erhalten.
- Eingaben:
action
Typ: `str`
Der Name der Aktion. Muss predict sein.
- Erforderlich: Ja
name
Typ: `str`
Der Name des zu verwendenden Klassifikators.
- Erforderlich: Ja
X
Typ: `array` or `list` or `str`
Die Testdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
options["out"]
Typ: `str`
Der Dateiname der JSON-Ausgabedatei, in der die Vorhersagen im gemeinsamen Datenverzeichnis gespeichert werden sollen. Sofern nicht anders angegeben, werden die Vorhersagen im Job-Ergebnis zurückgegeben.
- Erforderlich: Nein
- Verwendung:
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",
},
)-
Validierungen:
name:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Ein Klassifikator mit demselben Namen sollte bereits im gemeinsamen Datenverzeichnis vorhanden sein.
options["out"]:- Der Dateiname muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Es muss die
.jsonEndung haben.
fit_predict
Die fit_predict Aktion trainiert anhand der Trainingsdaten einen Klassifikator und nutzt diesen anschließend, um harte und weiche Vorhersagen (Wahrscheinlichkeiten) zu erhalten.
- Eingaben:
action
Typ: `str`
Der Name der Aktion. Muss fit_predict sein.
- Erforderlich: Ja
name
Typ: `str`
Der Name des zu verwendenden Klassifikators.
- Erforderlich: Ja
X_train
Typ: `array` or `list` or `str`
Die Trainingsdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
y_train
Typ: `array` or `list` or `str`
Die Zielwerte für das Training. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
X_test
Typ: `array` or `list` or `str`
Die Testdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
fit_params
Typ: `dict`
Zusätzliche Parameter, die an die fit Methode des Klassifikators übergeben werden sollen.
- Erforderlich: Nein
options["out"]
Typ: `str`
Der Dateiname der JSON-Ausgabedatei, in der die Vorhersagen im gemeinsamen Datenverzeichnis gespeichert werden sollen. Sofern nicht anders angegeben, werden die Vorhersagen im Job-Ergebnis zurückgegeben.
- Erforderlich: Nein
- Verwendung:
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",
},
)-
Validierungen:
-
name:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Ein Klassifikator mit demselben Namen sollte bereits im gemeinsamen Datenverzeichnis vorhanden sein.
-
options["out"]:- Der Dateiname muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Es muss die
.jsonEndung haben.
-
create_fit_predict
Die create_fit_predict Aktion erstellt einen Klassifikator, trainiert ihn anhand der bereitgestellten Trainingsdaten und nutzt ihn anschließend, um harte und weiche Vorhersagen (Wahrscheinlichkeiten) zu erhalten.
Ein Beispiel für diese create_fit_predict Aktion finden Sie im Leitfaden.
- Eingaben:
action
Typ: `str`
Der Name der Aktion aus der Gruppe create, list, fit, predict, fit_predict, create_fit_predict und delete.
- Erforderlich: Ja
name
Typ: `str`
Der Name des zu verwendenden Klassifikators.
- Erforderlich: Ja
quantum_classifier
Typ: `str`
Standardwert: `QuantumEnhancedEnsembleClassifier`
Der Typ des Klassifikators, zum Beispiel. QuantumEnhancedEnsembleClassifier
- Erforderlich: Nein
X_train
Typ: `array` or `list` or `str`
Die Trainingsdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
y_train
Typ: `array` or `list` or `str`
Die Zielwerte für das Training. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
X_test
Typ: `array` or `list` or `str`
Die Testdaten. Dies kann ein Array vom Typ „ NumPy “, eine Liste oder eine Zeichenkette sein, die auf einen Dateinamen im Verzeichnis für gemeinsam genutzte Daten verweist.
- Erforderlich: Ja
fit_params
Typ: `dict`
Zusätzliche Parameter, die an die fit Methode des Klassifikators übergeben werden sollen.
- Erforderlich: Nein
options["save"]
Typ: `bool`
Standardwert: `True`
Ob der trainierte Klassifikator im gemeinsamen Datenverzeichnis gespeichert werden soll.
- Erforderlich: Nein
options["out"]
Typ: `str`
Der Dateiname der JSON-Ausgabedatei, in der die Vorhersagen im gemeinsamen Datenverzeichnis gespeichert werden sollen. Sofern nicht anders angegeben, werden die Vorhersagen im Job-Ergebnis zurückgegeben.
- Erforderlich: Nein
- Verwendung:
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",
},
)-
Validierungen:
-
name:- Wenn auf
Truegesetztoptions["save"]ist:- Der Name muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Im gemeinsamen Datenverzeichnis darf noch kein Klassifikator mit demselben Namen vorhanden sein.
- Wenn auf
-
options["out"]:- Der Dateiname muss eindeutig sein und darf maximal 64 Zeichen lang sein.
- Er darf nur alphanumerische Zeichen und Unterstriche enthalten.
- Er muss mit einem Buchstaben beginnen und darf nicht mit einem Unterstrich enden.
- Es muss die
.jsonEndung haben.
-