멀티버스 싱귤래리티 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() 메서드를 사용하여 이 디렉터리의 내용에 접근할 수 있습니다. 일반적으로 list 명령어는 공유 데이터 디렉터리에서 지정된 *.pkl.tar 확장자를 가진 파일을 검색하여 목록 형식으로 반환합니다.
- 고려사항:
action
유형: `str`
, list fit, predict, fit_predict,, create_fit_predict create및 중에서 해당 delete 작업의 이름.
필수: Yes
- 사용법:
job = singularity.run(action="list")create
이 create 작업은 제공된 매개변수를 사용하여 지정된 quantum_classifier 유형의 분류기를 생성하고, 이를 공유 데이터 디렉터리에 저장합니다.
이 기능은 현재. QuantumEnhancedEnsembleClassifier만 지원합니다.
- 고려사항:
action
유형: `str`
, list fit, predict, fit_predict,, create_fit_predict create및 중에서 해당 delete 작업의 이름.
- 필수: Yes
name
유형: `str`
예를 들어, 양자 분류기의 spam_classifier 이름은.
- 필수: Yes
instance
유형: `str`
IBM 예를 들어.
- 필수: Yes
backend_name
유형: `str`
기본값: `None`
IBM 컴퓨팅 리소스. 기본값은 입니다 None. 즉, 대기 중인 작업이 가장 적은 백엔드가 사용됩니다.
- 필수: 아니오
quantum_classifier
유형: `str`
예를 들어, 양자 분류기의 유형은 다음과 QuantumEnhancedEnsembleClassifier 같습니다.
- 필수: 아니오
num_learners
유형: `int`
기본값: 10
앙상블에 속한 학습자의 수.
- 필수: 아니오
learners_types
유형: `list`
기본값: `[DecisionTreeClassifier]`
학습자의 유형. 지원되는 유형에는, DecisionTreeClassifier GaussianNB, 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 이 매개변수는 온사이트(onsite) 용어를 제어하며, 값이 클수록 앙상블의 밀도가 낮아집니다. alpha 상호작용과 온사이트 항 간의 균형을 조절하며, 값이 낮을수록 앙상블의 밀도가 낮아집니다. 목록이 제공되면 각 유형에 대해 모델을 훈련하고, 그중에서 가장 성능이 우수한 모델을 선택합니다.
- 필수: 아니오
regularization
유형: `str` or `float` or `list`
기본값: `0.01`
정규화 값. 정규화 유형이 일 경우 onsite, +inf 와 0 사이에 제한된다. 정규화 유형이 일 경우 alpha, 1 와 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이어야 합니다.
- 필수: Yes
name
유형: `str`
삭제할 분류기의 이름.
- 필수: Yes
- 사용법:
job = singularity.run(
action="delete",
name="classifier_name", # specify the name of the classifier to delete here
)-
검증:
name:- 이름은 고유해야 하며, 최대 64자까지의 문자열이어야 합니다.
- 영문자와 숫자, 그리고 밑줄만 포함할 수 있습니다.
- 이름은 반드시 알파벳으로 시작해야 하며, 밑줄(_)로 끝날 수 없습니다.
- 동일한 이름의 분류기가 공유 데이터 디렉터리에 이미 존재해야 합니다.
fit
이 fit 메서드는 제공된 훈련 데이터를 사용하여 분류기를 학습시킵니다.
- 고려사항:
action
유형: `str`
액션의 이름입니다. fit이어야 합니다.
- 필수: Yes
name
유형: `str`
훈련할 분류기의 이름.
- 필수: Yes
X
유형: `array` or `list` or `str`
훈련 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
y
유형: `array` or `list` or `str`
훈련 목표값. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
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이어야 합니다.
- 필수: Yes
name
유형: `str`
사용할 분류기의 이름.
- 필수: Yes
X
유형: `array` or `list` or `str`
테스트 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
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이어야 합니다.
- 필수: Yes
name
유형: `str`
사용할 분류기의 이름.
- 필수: Yes
X_train
유형: `array` or `list` or `str`
훈련 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
y_train
유형: `array` or `list` or `str`
훈련 목표값. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
X_test
유형: `array` or `list` or `str`
테스트 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
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 작업의 이름.
- 필수: Yes
name
유형: `str`
사용할 분류기의 이름.
- 필수: Yes
quantum_classifier
유형: `str`
기본값: `QuantumEnhancedEnsembleClassifier`
예를 들어, 분류기의 유형은 다음과 QuantumEnhancedEnsembleClassifier 같습니다.
- 필수: 아니오
X_train
유형: `array` or `list` or `str`
훈련 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
y_train
유형: `array` or `list` or `str`
훈련 목표값. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
X_test
유형: `array` or `list` or `str`
테스트 데이터. 이는 NumPy 배열, 리스트 또는 공유 데이터 디렉터리에 있는 파일 이름을 참조하는 문자열일 수 있습니다.
- 필수: Yes
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반드시 있어야 합니다.
-