Module sktmls.experiments.experiment
Classes
class Bucket (**kwargs)
-
MLS 버킷 클래스입니다.
Args
- kwargs
- id: (int) 버킷 고유 ID
- experiment: (int) 버킷이 속한 실험정보
- prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름
- description: (str) 버킷 설명
- bucket_range: (str) 해당 버킷의 범위
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Returns
Methods
def generate_request_body(self) ‑> Dict
def get(self)
def reset(self, **kwargs)
- kwargs
class Experiment (**kwargs)
-
MLS 실험 클래스입니다.
Args
- kwargs
Returns
Methods
def generate_request_body(self) ‑> Dict
def get(self)
def reset(self, **kwargs)
class ExperimentClient (env: MLSENV = None, runtime_env: MLSRuntimeENV = None, username: str = None, password: str = None)
-
MLS 실험 관련 기능들을 제공하는 클라이언트입니다.
Args
- env: (
MLSENV
) 접근할 MLS 환경 (MLSENV.DEV
|MLSENV.STG
|MLSENV.PRD
) (기본값:MLSENV.STG
) - runtime_env: (
MLSRuntimeENV
) 클라이언트가 실행되는 환경 (MLSRuntimeENV.YE
|MLSRuntimeENV.EDD
|MLSRuntimeENV.LOCAL
) (기본값:MLSRuntimeENV.LOCAL
) - username: (str) MLS 계정명 (기본값: $MLS_USERNAME)
- password: (str) MLS 계정 비밀번호 (기본값: $MLS_PASSWORD)
아래의 환경 변수가 정의된 경우 해당 파라미터를 생략 가능합니다.
- $MLS_ENV: env
- $MLS_RUNTIME_ENV: runtime_env
- $MLS_USERNAME: username
- $MLS_PASSWORD: password
Returns
Example
experiment_client = ExperimentClient(env=MLSENV.STG, runtime_env=MLSRuntimeENV.YE, username="mls_account", password="mls_password")
Ancestors
Methods
def create_bucket(self, experiment: Experiment, name: str, prediction_type: str, model: Union[ManualModel, AutoMLModel] = None, description: str = None, static_value: Dict[str, Any] = None) ‑> Bucket
-
버킷을 생성합니다.
Args
- experiment: (
Experiment
) 수정할 실험 - name: (str) 생성할 버킷 이름
- prediction_type: 버킷의 추론 타입 (
empty
|static
|batch
|online
) - model: (optional) (
ManualModel
,AutoMLModel
) 버킷에 연결할 모델 - static_value: (optional) (dict) (고정값일 경우) Static Value
- description: (optional) (str) 생성할 버킷 설명
Returns
- id: (int) 버킷 고유 ID
- experiment: (int) 버킷이 속한 실험정보
- prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름
- description: (str) 버킷 설명
- bucket_range: (str) 해당 버킷의 범위
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_batch_model = model_client.get_manual_model( name="my_manual_model", version="my_manual_version", ) experiment_client.create_bucket( experiment=my_experiment, name="my_bucket", prediction_type="batch", model=my_batch_model )
- experiment: (
def create_experiment(self, name: str, description: str = None, bucketing_seed: str = '', model_filter: Filter = None) ‑> Experiment
-
실험을 생성합니다.
Args
- name: (str) 생성할 실험 이름
- description: (optional) (str) 생성할 실험 설명
- bucketing_seed: (optional) (str) 생성할 실험의 버킷팅 시드
- model_filter: (optional) (
Filter
) 생성할 실험의 필터 (필터 조건 제외)
Returns
- id: (int) 실험 고유 ID
- channels: (list(
Channel
)) 실험이 속한 채널 리스트 - name: (str) 실험 이름
- description: (str) 실험 설명
- model_filter: (
Filter
) 적용된 필터 (필터 조건 제외) - bucketing_seed: (str) 버킷팅 시드
- user: (str) 실험 소유 계정명
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_experiment = experiment_client.create_experiment( name="my_experiment", description="This is my experiment", filter=my_filter, )
def delete_bucket(self, bucket: Bucket) ‑> MLSResponse
-
버킷을 삭제합니다.
Args
- bucket: (sktmls.experiments.Bucket) 삭제할 버킷
Return
Example
bucket_to_delete = experiment_client.get_bucket(id=3) experiment_client.delete_bucket(bucket_to_delete)
def delete_experiment(self, experiment: Experiment) ‑> MLSResponse
-
실험을 삭제합니다.
Args
- experiment: (
Experiment
) experiment 객체
Returns
Example
experiment_client.delete_experiment(experiment)
- experiment: (
def get_bucket(self, experiment: Experiment, id: int = None, name: str = None) ‑> Bucket
-
버킷 정보를 가져옵니다.
Args:
id
또는name
중 한 개 이상의 값이 반드시 전달되어야 합니다.- experiment: (sktmls.experiments.Experiment) 버킷의 실험 객체
- id: (optional) (int) 버킷 고유 ID
- name: (optional) (str) 버킷 이름
Returns
- id: (int) 버킷 고유 ID
- experiment: (int) 버킷이 속한 실험정보
- prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름
- description: (str) 버킷 설명
- bucket_range: (str) 해당 버킷의 범위
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_bucket_by_id = experiment_client.get_bucket(id=3) my_bucket_by_name = experiment_client.get_bucket(name="my_bucket")
def get_experiment(self, id: int = None, name: str = None) ‑> Experiment
-
실험 정보를 조회합니다.
Args:
id
또는name
중 한 개 이상의 값이 반드시 전달되어야 합니다.- id: (int) 실험 고유 ID
- name: (str) 실험 이름
Returns
- id: (int) 실험 고유 ID
- channels: (list(
Channel
)) 실험이 속한 채널 리스트 - name: (str) 실험 이름
- description: (str) 실험 설명
- model_filter: (
Filter
) 적용된 필터 (필터 조건 제외) - bucketing_seed: (str) 버킷팅 시드
- user: (str) 실험 소유 계정명
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
experiment_by_id = experiment_client.get_experiment(id=3) experiment_by_name = experiment_client.get_experiment(name="my_experiment")
def list_buckets(self, experiment: Experiment, **kwargs) ‑> List[Bucket]
-
특정 실험에 속한 버킷들의 정보를 조회합니다.
Args
- experiment: (sktmls.experiments.Experiment) 버킷의 실험 객체
- kwargs: (optional) (dict) 쿼리 조건
- id: (int) 버킷 고유 ID
- name: (str) 버킷 이름
- query: (str) 검색 문자
- page: (int) 페이지 번호
Returns
list(
Bucket
)- id: (int) 버킷 고유 ID
- experiment: (int) 버킷이 속한 실험정보
- prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름
- description: (str) 버킷 설명
- bucket_range: (str) 해당 버킷의 범위
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
buckets = experiment_client.list_buckets(experiment)
def list_experiments(self, **kwargs) ‑> List[Experiment]
-
실험의 리스트를 가져옵니다.
Args
- kwargs: (optional) (dict) 쿼리 조건
- id: (int) 실험 고유 ID
- name: (str) 실험 이름
- query: (str) 검색 문자
- page: (int) 페이지 번호
Returns
list(
Experiment
) - id: (int) 실험 고유 ID - channels: (list(Channel
)) 실험이 속한 채널 리스트 - name: (str) 실험 이름 - description: (str) 실험 설명 - model_filter: (Filter
) 적용된 필터 (필터 조건 제외) - bucketing_seed: (str) 버킷팅 시드 - user: (str) 실험 소유 계정명 - created_at: (datetime) 생성일시 - updated_at: (datetime) 수정일시Example
experiments = experiment_client.list_experiments()
- kwargs: (optional) (dict) 쿼리 조건
def migrate_bucket(self, prev_model: Union[ManualModel, AutoMLModel], next_prediction_type: str, next_model: Union[ManualModel, AutoMLModel] = None, next_static_value: Dict[str, Any] = None) ‑> List[Bucket]
-
prev_model
이 연결되어 있는 모든 버킷을next_model
(또는next_static_value
) 으로 대체합니다.Args
- prev_model: (
ManualModel
,AutoMLModel
) 기존 모델 - next_prediction_type: (str) 변경할 모델의 추론 타입 (
empty
|static
|batch
|online
|automl
) - next_model: (optional) (
ManualModel
,AutoMLModel
) 변경할 모델 - next_static_value: (optional) (dict(str, any)) 변경할 모델의 Static 값
Returns
list(
Bucket
) - id: (int) 버킷 고유 ID - experiment: (int) 버킷이 속한 실험정보 - prediction: (Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름 - description: (str) 버킷 설명 - bucket_range: (str) 해당 버킷의 범위 - created_at: (datetime) 생성일시 - updated_at: (datetime) 수정일시Example
my_prev_model = model_client.get_automl_model( name="my_prev_model", version="my_prev_version", ) my_new_model = model_client.get_automl_model( name="my_new_model", version="my_new_version", ) experiment_client.migrate_bucket( prev_model=my_prev_model, next_prediction_type='automl', prediction_type="batch" )
- prev_model: (
def remove_filter(self, experiment: Experiment) ‑> Experiment
-
실험의 필터를 제거합니다.
Args
- experiment: (
Experiment
) 필터를 제거할 실험
Returns
- id: (int) 실험 고유 ID
- channels: (list(
Channel
)) 실험이 속한 채널 리스트 - name: (str) 실험 이름
- description: (str) 실험 설명
- model_filter: (
Filter
) 적용된 필터 (필터 조건 제외) - bucketing_seed: (str) 버킷팅 시드
- user: (str) 실험 소유 계정명
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_experiment = experiment_client.remove_filter( experiment=my_experiment, )
- experiment: (
def update_bucket(self, bucket: Bucket, name: str = None, prediction_type: str = None, model: Union[ManualModel, AutoMLModel] = None, description: str = None, static_value: Dict[str, Any] = None) ‑> Bucket
-
버킷을 수정합니다.
Args
- experiment: (
Experiment
) 수정할 실험 - name: (optional) (str) 수정할 버킷 이름
- prediction_type: (optional) 수정할 버킷의 추론 타입 (
empty
|static
|batch
|online
) - model: (optional) (
ManualModel
,AutoMLModel
) 수정할 버킷에 연결할 모델 - static_value: (optional) (dict) (고정값일 경우) Static Value
- description: (optional) (str) 수정할 버킷 설명
Returns
- id: (int) 버킷 고유 ID
- experiment: (int) 버킷이 속한 실험정보
- prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름
- description: (str) 버킷 설명
- bucket_range: (str) 해당 버킷의 범위
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_batch_model = model_client.get_manual_model( name="my_manual_model", version="my_manual_version", ) my_bucket = experiment_client.get_bucket(name="my_bucket") experiment_client.update_bucket( bucket=my_bucket, prediction_type="batch", model=my_batch_model )
- experiment: (
def update_bucket_ratio(self, experiment: Experiment, bucket_ratio: Dict[Bucket, int]) ‑> List[Bucket]
-
현재 실험의 버킷 비율을 수정합니다.
Args
- experiment: (
Experiment
) 수정할 실험 - bucket_ratio: (dict(Bucket, int)) 키가 버킷 이고 바꾸고자 하는 bucket range 가 값인 Dict
Returns
list(sktmls.experiments.Bucket) - id: (int) 버킷 고유 ID - experiment: (int) 버킷이 속한 실험정보 - prediction: (
Prediction
) 해당 버킷의 Prediction 정보 - name: (str) 버킷 이름 - description: (str) 버킷 설명 - bucket_range: (str) 해당 버킷의 범위 - created_at: (datetime) 생성일시 - updated_at: (datetime) 수정일시Example
buckets = experiment_client.list_buckets(experiment) bucket_ratio = {buckets[0]: 40, buckets[1]: 60} experiment_client.update_bucket_ratio(experiment, bucket_ratio)
- experiment: (
def update_experiment(self, experiment: Experiment, name: str = None, description: str = None, bucketing_seed: str = None, model_filter: Filter = None) ‑> Experiment
-
실험을 수정합니다. Optional 필드의 경우에 값을 넣지 않을시에는 기존의 값들이 유지됩니다.
Args
- experiment: (
Experiment
) 수정할 실험 - name: (optional) (str) 수정할 실험 이름
- description: (optional) (str) 수정할 실험 설명
- bucketing_seed: (optional) (str) 수정할 실험의 버킷팅 시드
- model_filter: (optional) (
Filter
) 수정할 실험의 필터 (필터 조건 제외)
Returns
- id: (int) 실험 고유 ID
- channels: (list(
Channel
)) 실험이 속한 채널 리스트 - name: (str) 실험 이름
- description: (str) 실험 설명
- model_filter: (
Filter
) 적용된 필터 (필터 조건 제외) - bucketing_seed: (str) 버킷팅 시드
- user: (str) 실험 소유 계정명
- created_at: (datetime) 생성일시
- updated_at: (datetime) 수정일시
Example
my_experiment = experiment_client.update_experiment( experiment=my_experiment, description="This is updated experiment", )
- experiment: (
- env: (
class Prediction (**kwargs)
-
Methods
def get(self)