Multiverse Singularity Machine Learning APIリファレンス
Qiskit Functions — パートナー組織によって開発された既成のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
Singularity Machine Learning Qiskit 関数ガイド
行動に基づくアプローチ
この関数はアクションベースのアプローチを採用しています。 これは、アクションを使ってタスクを実行したり、状態を変更したりする仮想環境だと考えてください。 現在、以下のアクションが利用可能です: list、 create、 delete、 fit、 predict、 fit_predict、および create_fit_predict。 次の例は、このアクションの create_fit_predict 動作を示しています。
list
この list アクションは、共有データディレクトリから、指定 *.pkl.tar された形式で保存されているすべての分類器を取得します。 また、このディレクトリの内容には、メソッド catalog.files() を使用してアクセスすることもできます。 一般的に、リスト操作は共有データディレクトリ内で指定 *.pkl.tar された拡張子を持つファイルを検索し、それらをリスト形式で返します。
- 入力:
action
タイプ: `str`
、 list、 fit、 predict、 fit_predict、、 create_fit_predict および の中から create``delete、アクションの名前。
必須:はい
- 使用方法:
job = singularity.run(action="list")create
この create アクションは、指定されたパラメータを使用して指定 quantum_classifier されたタイプの分類器を作成し、共有データディレクトリに保存します。
この関数は現在、 QuantumEnhancedEnsembleClassifier. のみをサポートしています。
- 入力:
action
タイプ: `str`
、 list、 fit、 predict、 fit_predict、、 create_fit_predict および の中から create``delete、アクションの名前。
- 必須:はい
name
タイプ: `str`
量子分類器の名前は、例えば、 spam_classifier。
- 必須:はい
instance
タイプ: `str`
IBM 例。
- 必須:はい
backend_name
タイプ: `str`
デフォルト値: `None`
IBM コンピューティングリソース。 デフォルトは です None。これは、保留中のジョブが最も少ないバックエンドが使用されることを意味します。
- 必須:いいえ
quantum_classifier
タイプ: `str`
量子分類器の型は、例えば、 QuantumEnhancedEnsembleClassifier。
- 必須:いいえ
num_learners
タイプ: `int`
デフォルト値: 10
アンサンブルの学習者数。
- 必須:いいえ
learners_types
タイプ: `list`
デフォルト値: `[DecisionTreeClassifier]`
学習者のタイプ。 サポートされているタイプには、 GaussianNB``DecisionTreeClassifier、 KNeighborsClassifier、 MLPClassifier、、およびがあります LogisticRegression。 それぞれの詳細については、scikit-learn のドキュメントを参照してください。
- 必須:いいえ
learners_proportions
タイプ: `list`
デフォルト値: `[1.0]`
アンサンブルにおける各学習者タイプの割合。
- 必須:いいえ
learners_options
タイプ: `list`
デフォルト値: `[{`max_depth`: 3, `splitter`: `random`, `class_weight`: None}]`
アンサンブル内の各学習者タイプに対するオプション。 選択した学習アルゴリズムに対応するオプションの完全な一覧については、 scikit-learnのドキュメントを参照してください。
- 必須:いいえ
regularization_type
タイプ: `str` or `list`
デフォルト値: `onsite`
使用する正則化の種類: onsite または alpha。 onsite このパラメータはオンサイト項を制御し、値が大きいほどアンサンブルの疎さが増します。 alpha インタラクション項とオンサイト項のバランスを制御し、値を小さくするとアンサンブルがより疎になる。 リストが指定された場合、各タイプごとにモデルを学習させ、最も性能の良いモデルが選択されます。
- 必須:いいえ
regularization
タイプ: `str` or `float` or `list`
デフォルト値: `0.01`
正則化係数。 正規化のタイプが の場合、範囲 +inf は と onsite の 0 間に限定される。 正規化のタイプが の場合、範囲 1 は と alpha の 0 間に限定される。 に設定すると auto、自動正則化が使用されます。この場合、選択された分類器の総分類器数に対する比率(regularization_desired_ratio)と、正則化パラメータの上限(regularization_upper_bound)を指定することで、二分探索により最適な正則化パラメータが求められます。リストが指定された場合、各値に対してモデルが学習され、最も性能の良いものが選択されます。
- 必須:いいえ
regularization_desired_ratio
タイプ: `float` or `list`
デフォルト値: `0.75`
自動正則化のために、選択された分類器と全分類器の比率(複数可)。 リストが指定された場合、各比率についてモデルを学習させ、最も性能の良いものが選択されます。
- 必須:いいえ
regularization_upper_bound
タイプ: `float` or `list`
デフォルト値: 200
自動正則化を使用する場合の正則化パラメータの上限。 リストが指定された場合、各上限値に対してモデルを学習させ、最も性能の良いモデルが選択されます。
- 必須:いいえ
weight_update_method
タイプ: `str`
デフォルト値: `logarithmic`
および logarithmic からの quadraticサンプル重みの更新方法。
- 必須:いいえ
sample_scaling
タイプ: `boolean`
デフォルト値: False`
サンプルのスケーリングを適用すべきかどうか。
- 必須:いいえ
prediction_scaling
タイプ: `float`
デフォルト値: `None`
予測のスケーリング係数。
- 必須:いいえ
optimizer_options
タイプ: `dict`
QAOAのオプティマイザ設定。
名前 | タイプ | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
num_solutions | integer | 解の数 | いいえ | 1024 |
reps | integer | 反復回数 | いいえ | 4 |
sparsify | float | 疎化閾値 | いいえ | 0.001 |
theta | float | QAOAの変分パラメータであるθの初期値 | いいえ | None |
simulator | boolean | シミュレータとQPUのどちらを使うか | いいえ | False |
classical_optimizer | str | QAOA用の古典的オプティマイザの名称。 ここに記載されている SciPy, が提供するすべてのソルバーは、ご利用いただけます。 それに応じて classical_optimizer_options 設定する必要があります | いいえ | COBYLA |
classical_optimizer_options | dictionary | 標準的なオプティマイザのオプション。 利用可能なオプションの完全な一覧については、 『 SciPy 』のドキュメントを参照してください | いいえ | {"maxiter": 60} |
optimization_level | integer | QAOA回路の深さ | いいえ | 3 |
num_transpiler_runs | integer | トランスパイラーの実行回数 | いいえ | 30 |
pass_manager_options | dictionary | プリセット・パスマネージャーを生成するためのオプション | いいえ | {"approximation_degree": 1.0} |
estimator_options | dictionary | 見積もりオプション。 利用可能なオプションの完全な一覧については、 『 Qiskit Runtime 』のクライアント向けドキュメントをご参照ください | いいえ | None |
sampler_options | dictionary | サンプラーのオプション。 利用可能なオプションの完全な一覧については、 『 Qiskit Runtime 』クライアントのドキュメントを参照してください | いいえ | None |
- デフォルトは
estimator_options以下の通りです:
名前 | タイプ | 値 |
|---|---|---|
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"],}} |
- デフォルトは
sampler_options以下の通りです:
名前 | タイプ | 値 |
|---|---|---|
default_shots | integer | 1024 |
resilience_level | integer | 1 |
twirling | dictionary | {"enable_gates": True} |
dynamical_decoupling | dictionary | {"enable": True} |
- 必須:いいえ
voting
タイプ: `str`
デフォルト値: `hard`
学習者の予測値や確率を統合するには、多数決法(hard)または確率の平均(soft)を使用します。
- 必須:いいえ
prob_threshold
タイプ: `float`
デフォルト値: `0.5`
最適な確率閾値。
- 必須:いいえ
random_state
タイプ: `int`
デフォルト値: `None`
再現性を確保するために、ランダム性を制御する。
- 必須:いいえ
- 使用方法:
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},
)-
検証を作成するには、次の手順を実行します。
name:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 共有データディレクトリには、同じ名前の分類器がすでに存在してはなりません。
delete
この delete 操作により、共有データディレクトリから分類子が削除されます。
- 入力:
action
タイプ: `str`
アクションの名前。 deleteでなければなりません。
- 必須:はい
name
タイプ: `str`
削除する分類子の名前。
- 必須:はい
- 使用方法:
job = singularity.run(
action="delete",
name="classifier_name", # specify the name of the classifier to delete here
)-
検証を作成するには、次の手順を実行します。
name:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 同じ名前の分類器は、共有データディレクトリにすでに存在しているはずです。
fit
この fit アクションは、指定されたトレーニングデータを使用して分類器を学習させます。
- 入力:
action
タイプ: `str`
アクションの名前。 fitでなければなりません。
- 必須:はい
name
タイプ: `str`
学習させる分類器の名前。
- 必須:はい
X
タイプ: `array` or `list` or `str`
学習データ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
y
タイプ: `array` or `list` or `str`
トレーニングの目標値。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
fit_params
タイプ: `dict`
分類器の fit メソッドに渡す追加のパラメータ。 以下の辞書を参照してください。
- 必須:いいえ
名前 | タイプ | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
validation_data | tuple | 検証データとラベル。 | いいえ | None |
pos_label | integerまたはstr | 1にマッピングされるクラスラベル。 | いいえ | None |
optimization_data | str | アンサンブルを最適化するためのデータセット。 次のいずれかになります: train, validation, both. | いいえ | train |
- 使用方法:
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
)-
検証を作成するには、次の手順を実行します。
name:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 同じ名前の分類器は、共有データディレクトリにすでに存在しているはずです。
predict
この predict アクションは、ハード予測とソフト予測(確率)を取得するために使用されます。
- 入力:
action
タイプ: `str`
アクションの名前。 predictでなければなりません。
- 必須:はい
name
タイプ: `str`
使用する分類器の名前。
- 必須:はい
X
タイプ: `array` or `list` or `str`
テストデータ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
options["out"]
タイプ: `str`
共有データディレクトリに予測結果を保存する出力JSONファイル名。 指定がない場合、予測結果はジョブの結果として返されます。
- 必須:いいえ
- 使用方法:
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",
},
)-
検証を作成するには、次の手順を実行します。
name:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 同じ名前の分類器は、共有データディレクトリにすでに存在しているはずです。
options["out"]:- ファイル名は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 拡張子
.jsonが付いている必要があります。
fit_predict
この fit_predict アクションは、トレーニングデータを使用して分類器を学習させ、それを用いてハード予測とソフト予測(確率)を取得します。
- 入力:
action
タイプ: `str`
アクションの名前。 fit_predictでなければなりません。
- 必須:はい
name
タイプ: `str`
使用する分類器の名前。
- 必須:はい
X_train
タイプ: `array` or `list` or `str`
学習データ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
y_train
タイプ: `array` or `list` or `str`
トレーニングの目標値。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
X_test
タイプ: `array` or `list` or `str`
テストデータ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
fit_params
タイプ: `dict`
分類器の fit メソッドに渡す追加のパラメータ。
- 必須:いいえ
options["out"]
タイプ: `str`
共有データディレクトリに予測結果を保存する出力JSONファイル名。 指定がない場合、予測結果はジョブの結果として返されます。
- 必須:いいえ
- 使用方法:
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",
},
)-
検証を作成するには、次の手順を実行します。
-
name:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 同じ名前の分類器は、共有データディレクトリにすでに存在しているはずです。
-
options["out"]:- ファイル名は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 拡張子
.jsonが付いている必要があります。
-
create_fit_predict
この create_fit_predict アクションは、分類器を作成し、指定された学習データを用いて学習を行い、その後、その分類器を使用してハード予測とソフト予測(確率)を取得します。
ガイド内のアクション create_fit_predict の例をご覧ください。
- 入力:
action
タイプ: `str`
、 list、 fit、 predict、 fit_predict、、 create_fit_predict および の中から create``delete、アクションの名前。
- 必須:はい
name
タイプ: `str`
使用する分類器の名前。
- 必須:はい
quantum_classifier
タイプ: `str`
デフォルト値: `QuantumEnhancedEnsembleClassifier`
分類器のタイプ、例えば、 QuantumEnhancedEnsembleClassifier。
- 必須:いいえ
X_train
タイプ: `array` or `list` or `str`
学習データ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
y_train
タイプ: `array` or `list` or `str`
トレーニングの目標値。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
X_test
タイプ: `array` or `list` or `str`
テストデータ。 これは、 NumPy 配列、リスト、または共有データディレクトリ内のファイル名を参照する文字列です。
- 必須:はい
fit_params
タイプ: `dict`
分類器の fit メソッドに渡す追加のパラメータ。
- 必須:いいえ
options["save"]
タイプ: `bool`
デフォルト値: `True`
共有データディレクトリに、学習済みの分類器を保存するかどうか。
- 必須:いいえ
options["out"]
タイプ: `str`
共有データディレクトリに予測結果を保存する出力JSONファイル名。 指定がない場合、予測結果はジョブの結果として返されます。
- 必須:いいえ
- 使用方法:
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",
},
)-
検証を作成するには、次の手順を実行します。
-
name:- が に設定されている
options["save"]``True場合:- 名前は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 共有データディレクトリには、同じ名前の分類器がすでに存在してはなりません。
- が に設定されている
-
options["out"]:- ファイル名は一意である必要があり、最大64文字の文字列でなければなりません。
- 英数字とアンダースコアのみを含めることができます。
- 最初の文字はアルファベットでなければならず、末尾にアンダースコアを付けることはできません。
- 拡張子
.jsonが付いている必要があります。
-