본문 바로가기

코드읽기/auto-sklearn

[AutoML] 구현을 향해, AutoSklearn-parameters - 3편

서론

이미 검색창에 AutoML이라고 검색하면, 잘 만들어진 AutoML들이 많다.

많은 좋은 프로그래밍들을 보고 의도와 구현 방식을 배우는 것이 목표이다

AutoSklearnClassifier Source
원본은 아래 공식 홈페이지에서 확인할 수 있습니다.

https://automl.github.io/auto-sklearn/master/api.html#classification

 

APIs — AutoSklearn 0.14.7 documentation

Classification metrics Note: The default autosklearn.metrics.f1, autosklearn.metrics.precision and autosklearn.metrics.recall built-in metrics are applicable only for binary classification. In order to apply them on multilabel and multiclass classification

automl.github.io


[AutoML] 구현을 향해, Autosklearn-parameters - 3편

각 메서드들에서 사용될 파라미터의 기능을 먼저 파악하면 어떤 기능을 사용할지 알 수 있음.
문서 설명으로 100%이해는 못하며, 추리 정도만 할 예정

Parameters

time_left_for_this_task : int

  • 최적의 모델을 찾는 시간 설정
  • 시간이 길수록 적절한 모델을 찾는 확률이 상승

per_run_time_limit : int

  • 여러 알고리즘을 하나 학습할떄 걸리는 시간 설정
  • 시간 초과시 모델 학습이 종료

initial_configurations_via_metalearning :  int, optional (default=25)

  • 이전에 학습 데이터셋에서 잘 작동한 파라미터 구성으로 알고리즘을 초기화함

ensemble_size : int, optional (default=50)

  • 모델 라이브러리에서 앙상블을 선택하고 작성한 앙상블에 추가된 모델수
  • 0으로 설정하는 것은 앙상블이 아니므로 적합하지 않음
  • 여러 알고리즘을 앙상블 하도록 추가하는 기능이 있나? 정도로 추측 가능

ensemble_nbest : int, optional(default=50)

  • 앙상블 하는 경우 ensemble_nbest모델 만을 고려함

max_models_on_disc: int, optional (default=50)

  • 디스크에 보관되는 최대 모델 수
  • 앙상블에 사용할 수 있는 모델수에 대한 상한을 설정
  • 1보다 큰 정수이며, None인 경우 모든 모델을 디스크에 저장

memory_limit : int, optional(3072)

  • 알고리즘 학습 시 사용되는 메모리 제한
  • 메모리 제한을 초과할 시 학습을 중지
  • None이면 메모리 제한이 설정되지 않음
  • memory_limit은 각 작업당이기 때문에 다중 알고리즘 학습 시 총사용량은 n_jobs * memory_limit임

include : Optional [Dict [str, List [str]]] = None

  • 없는 경우 모든 사용 가능한 알고리즘이 사용
  • 사용하고자 하는 단계를 지정할 수 있음

예시

include = {
    'classifier': ["random_forest"],
    'feature_preprocessor': ["no_preprocessing"]
}

exclude : Optional [Dict [str, List [str]]] = None

  • include와 반대로, 제외하고자 하는 단계를 지정
  • 없는 경우는 역시 모든 사용 가능한 알고리즘이 사용
exclude = {
    'classifier': ["random_forest"],
    'feature_preprocessor': ["no_preprocessing"]
}

resampling_strategy

  • 과적합에 대응하는 방법
  • ex) 교차 검증

resampling_strategy_arguments : dict, optional if ‘holdout’ (train_size default=0.67)

  • resampling_strategy에 사용되는 추가적인 인자

dask_client : dask.distributed.Client, optional

  • 사용자가 만든 dask 클라이언트를 사용해 sklearn을 연결할 수 있음
dask?
파이썬에서 멀티 코어로 병렬 처리할 수 있는 패키지

disable_evaluator_output : bool or list, optional (False)

  • True인 경우 : 모형 및 예측 출력을 비활성화함
  • True인 경우 : predict() 메서드를 사용할 수 없음
  • 'y_optimization' : 앙상블을 만들 때 사용되는 검증 세트에 대한 예측을 저장하지 않음
  • model : 모델을 저장하지 않음
  • 모델도 저장하지 않고 예측도 비활성화하는 이유는 학습에 대해서만 빠른 테스트만 하기 위함인가??라는 추측을 할 수 있고 현재 단계에선 잘 모르겠음

logging_config : dict, optional (None)

  • 로거 구성을 지정하는 사전 객체
  • None인 경우, 기본으로 logging.yaml이 생성

metadata_directory : str, optional (None)

  • 메타데이터 디렉터리 경로

metric : Scorer, optional (None)

  • autosklearn.metrics의 make_scorer() 메서드에서 만든 평가지표

scoring_functions : List [Scorer], optional(None)

  • 각 파이프 라인에서 계산된 메트릭스 결과

load_models : bool, optional(True)

  • 알고리즘 학습하고 모델 로드할지 여부