사용자 정의 개체 레시피

다음 섹션에서는 Driverless AI의 개체 레서피 기능에 관해 설명합니다.

개체 레시피 이해하기

Driverless AI에서 완료된 모든 실험은 that corresponds to the individual(s) used to build the final model 실험을 위한 Python code 를 자동으로 생성합니다. 이 자동 생성된 Python 코드를 오프라인으로 편집하고 레시피로 업로드하거나 내장된 custom recipe management editor 를 사용하여 편집하고 저장할 수 있습니다. 이 특징은 DAI의 내부 트랜스포머 및 모델 생성 프로세스의 상당 부분에 대한 코드 우선 액세스를 제공합니다.

개체 레시피에는 모델 유형, 모델 하이퍼파라미터, 입력 기능에 대한 데이터 과학 유형, 사용된 트랜스포머 및 트랜스포머 매개변수에 대한 정보가 포함되어 있습니다. DAI’s genetic algorithm 의 맥락에서 뮤테이션에 의해 진화된 객체입니다. 개체 레시피는 DAI의 상세 설정 에서 Include specific individuals 매개변수와 함께 사용할 수 있습니다.

이 기능은 DAI 1.7.2 이상을 사용한 실험에서 지원됩니다.

사용자 정의 개체 사용

사용자 정의 개체는 있는 그대로 실행되거나, 다른 모델 또는 개체와 함께 진화하거나, 실험의 다른 모델과 함께 최종 진화 단계에서 그대로 포함되도록 동결될 수 있습니다.

  • As is : 사용자 정의 개체를 있는 그대로 앙상블하려면 enable_genetic_algorithm 을 off로 설정하세요. 재현 가능한 결과를 얻으려면 재현성을 켜기로 설정하고 동일한 정확도 노브 설정이 선택되었는지 확인합니다(정확도 설정이 내부 교차 검증 폴드 데이터 할당에 영향을 끼치기 때문에).

  • Evolve alongside other models or individuals : 이것은 사용자 정의 개체가 표준 내부 DAI 개체처럼 행동하는 기본 동작이며, 실험 설정에 따라 genetic algorithm 프로세스 동안 기능 및 모델 하이퍼파라미터가 뮤테이션됩니다.

  • Frozen individuals : 기본적으로 사용자 정의 개체는 표준 내부 DAI 개체처럼 행동하며, 진화하는 동안 특징과 모델 하이퍼파라미터가 뮤테이션됩니다. DAI 유전 진화 과정에서 특징 및 모델 하이퍼파라미터의 뮤테이션을 비활성화하고 사용자 정의 개체를 《동결” 하려면 self.params 값을 (코드에서) 설정합니다:

    self.params = {'prob_perturb_xgb': 0,
                  'prob_add_genes': 0,
                  'prob_prune_genes': 0,
                  'prob_prune_by_features': 0,
                  'prob_addbest_genes': 0,
                  'prob_prune_by_features': 0}
    

    실험의 모든 개체가 frozen 되면 조정이나 진화가 수행되지 않습니다. Ensemble Level for Final Modeling Pipeline 전문가 설정을 수정하여 다른 개체와 함께 앙상블에 포함될 이러한 개체의 수를 지정할 수 있습니다.

실험에서 개체 레시피 가져오기

Driverless AI에서 모든 실험은 최상의 개체(또는 모델)을 위해 편집 가능한 Python 코드를 자동으로 생성합니다. 다음 섹션에서는 완료된 실험에 대한 개체 레시피 코드를 얻는 방법을 설명합니다.

  • 완료된 실험에서: 완료된 실험 페이지에서 Tune Experiment 드롭다운을 클릭한 다음 Create Individual Recipe 를 선택합니다. 개체 레시피를 사용자 정의 레시피로 Upload 합니다. 이 옵션을 선택하면 Recipes 페이지와 Include specific individuals 설정의 전문가 설정에서 해당 개체 레시피를 사용할 수 있습니다. 또는 개체 레시피 Python 파일을 로컬 파일 시스템에 직접 Download 합니다. 기본 탐색 메뉴에서 Recipes 를 클릭한 다음 Add Custom Recipes -> From Computer 를 클릭하여 다운로드한 개체 레시피를 DAI에 추가할 수 있습니다.

    Create Individual Recipe
  • 실험 목록 페이지에서: 개체 레시피를 생성할 실험 옆에 있는 드롭다운 버튼을 클릭하여 Create Individual Recipe 옵션을 선택합니다.

    Create Individual Recipe
  • 다운로드한 요약에서: 개체 레시피 Python 파일은 완료된 모든 실험에 대한 요약 파일의 일부로 포함됩니다. 요약 파일을 다운로드하려면 완료된 실험의 Download Summary & Logs 버튼을 클릭합니다. 개체 레시피 파일 이름은 final_indiv0.py 규칙을 따릅니다.

    Download Summary & Logs button

실험에 특정 개체 포함

다운로드한 개체 레시피(zip 또는 .py 파일)는 새 실험을 생성할 때 전문가 설정을 통해 컴퓨터에서 직접 업로드할 수 있습니다.

Include specific individuals

또는

다음 단계는 Include specific individuals 전문가 설정을 사용하여, 이미 업로드된 개체 레시피를 포함하도록 수행할 수 있습니다.

  1. 실험 설정 페이지에서 Expert Settings 을 클릭합니다. 전문가 설정 창이 표시됩니다.

  2. Recipes 탭을 클릭한 다음 Include specific individuals 전문가 설정에 대해 Select Values 을 클릭합니다.

  3. 실험에 포함할 사용자 정의 개체를 선택한 후 Done 을 클릭합니다.

  4. 전문가 설정 창에서 Save 을 클릭합니다. 실험 미리보기가 선택된 사용자 정의 개체의 포함을 반영하도록 업데이트됩니다.

    Include specific individuals

개체 레시피 예

사용자는 자신만의 레시피를 만들거나 기존의 개체 레시피를 편집할 수 있습니다. Driverless AI 레시피 GitHub 리포지토리 에 몇 가지 예가 나와 있습니다.

최소 필수 매개변수

다음은 사용자 정의 개체 레시피에 필요한 최소 매개변수 목록입니다.

  • Model type: 모델 유형을 지정합니다. 예:

self.model_display_name = 'LightGBM'
  • Model parameters: 모델의 매개변수를 지정합니다. 예:

self.model_params = {'eval_metric': 'auc', 'objective': 'binary'}
  • Genome: 유전자에 대한 모든 유효한 매개변수를 지정합니다. 예:

def set_genes(self):
    params = {'num_cols': ['PAY_0'], 'random_state': 159699540}
    self.add_transformer('OriginalTransformer', **params)

Driverless AI의 유전 알고리즘 구현에 대한 정보는 Driverless AI의 유전 알고리즘 를 참조합니다.

다음은 신용카드 데이터 세트 를 사용하는 사용자 정의 개체 레시피의 예입니다.

from h2oaicore.ga import CustomIndividual

# Custom wrapper class used to construct the DAI Individual.
# Contains information related to model type, model parameters,
# feature types, and feature parameters.

class IndivCCsimple(CustomIndividual):

    # Function to set the model type and its parameters.

    def set_model(self):
        self.model_display_name = 'LightGBM'
        self.model_params = {'eval_metric': 'auc', 'objective': 'binary'}

    # Function to set genes / transformers.

    def set_genes(self):
        self.add_transformer('OriginalTransformer', num_cols=['PAY_0'])

모든 매개변수가 포함된 개체 레시피의 예는 공식 Driverless AI 레시피 GitHub 리포지토리 <https://github.com/h2oai/driverlessai-recipes/tree/master/individuals>creditcard.py 를 참조하십시오.