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

Bucket

Methods

def generate_request_body(self) ‑> Dict
def get(self)
def reset(self, **kwargs)
class Experiment (**kwargs)

MLS 실험 클래스입니다.

Args

  • kwargs
    • id: (int) 실험 고유 ID
    • channels: (list(Channel)) 실험이 속한 채널 리스트
    • name: (str) 실험 이름
    • description: (str) 실험 설명
    • model_filter: (Filter) 적용된 필터 (필터 조건 제외)
    • bucketing_seed: (str) 버킷팅 시드
    • user: (str) 실험 소유 계정명
    • created_at: (datetime) 생성일시
    • updated_at: (datetime) 수정일시

Returns

Experiment

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

아래의 환경 변수가 정의된 경우 해당 파라미터를 생략 가능합니다.

  • $MLS_ENV: env
  • $MLS_RUNTIME_ENV: runtime_env
  • $MLS_USERNAME: username
  • $MLS_PASSWORD: password

Returns

ExperimentClient

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[ManualModelAutoMLModel] = 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

Bucket

  • 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
)
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

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

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

MLSResponse

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

Returns

MLSResponse

Example

experiment_client.delete_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

Bucket

  • 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

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

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()
def migrate_bucket(self, prev_model: Union[ManualModelAutoMLModel], next_prediction_type: str, next_model: Union[ManualModelAutoMLModel] = 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"
)
def remove_filter(self, experiment: Experiment) ‑> Experiment

실험의 필터를 제거합니다.

Args

  • experiment: (Experiment) 필터를 제거할 실험

Returns

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

my_experiment = experiment_client.remove_filter(
    experiment=my_experiment,
)
def update_bucket(self, bucket: Bucket, name: str = None, prediction_type: str = None, model: Union[ManualModelAutoMLModel] = 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

Bucket

  • 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
)
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)
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

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

my_experiment = experiment_client.update_experiment(
    experiment=my_experiment,
    description="This is updated experiment",
)
class Prediction (**kwargs)

Methods

def get(self)