

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CatBoost
<a name="catboost"></a>

[CatBoost](https://catboost.ai/)는 그라데이션 부스팅 의사 결정 트리 알고리즘(GBDT)에서 널리 사용되는 고성능 오픈 소스 구현입니다. GBDT는 더욱 단순하고 약한 모델 세트의 추정치의 앙상블을 결합하여 대상 변수를 정확하게 예측하려 시도하는 지도 학습 알고리즘입니다.

CatBoost는 GBDT에 두 가지 중요한 알고리즘 고급 기능을 도입했습니다.

1. 기존 알고리즘에 대한 순열 기반 대안인 순서가 있는 부스팅 구현

1. 범주형 기능을 처리하기 위한 혁신적인 알고리즘

두 기법 모두 현재의 모든 기존 그라데이션 부스팅 알고리즘 구현에 존재하는 특수한 종류의 표적 누출로 인한 예측 변화를 막기 위해 개발되었습니다. 이 페이지에는 Amazon EC2 인스턴스 권장 사항 및 CatBoost용 샘플 노트북에 대한 정보가 포함되어 있습니다.

# SageMaker AI CatBoost 사용 방법
<a name="catboost-modes"></a>

CatBoost를 Amazon SageMaker AI 기본 제공 알고리즘으로 사용할 수 있습니다. 다음 섹션에서는 SageMaker Python SDK와 함께 CatBoost를 사용하는 방법을 설명합니다. Amazon SageMaker Studio Classic UI에서 CatBoost를 사용하는 방법에 대한 자세한 내용은 [SageMaker JumpStart 사전 훈련된 모델](studio-jumpstart.md)을 참조하세요.
+ **CatBoost를 기본 제공 알고리즘으로 사용**

  CatBoost 기본 제공 알고리즘을 사용하여 다음 코드 예제와 같이 CatBoost 훈련 컨테이너를 빌드합니다. SageMaker AI `image_uris.retrieve` API(또는 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) 버전 2를 사용하는 경우 `get_image_uri` API)를 사용하여 CatBoost 내장 알고리즘 이미지 URI를 자동으로 찾아낼 수 있습니다.

  CatBoost 이미지 URI를 지정한 후 CatBoost 컨테이너를 사용하여 SageMaker AI Estimator API를 사용하는 예측기를 구문화하고 훈련 작업을 시작할 수 있습니다. CatBoost 기본 제공 알고리즘은 스크립트 모드에서 실행되지만 훈련 스크립트가 제공되므로 교체할 필요가 없습니다. 스크립트 모드를 사용하여 SageMaker 훈련 작업을 생성한 경험이 풍부하다면 사용자의 CatBoost 훈련 스크립트를 직접 통합할 수 있습니다.

  ```
  from sagemaker import image_uris, model_uris, script_uris
  
  train_model_id, train_model_version, train_scope = "catboost-classification-model", "*", "training"
  training_instance_type = "ml.m5.xlarge"
  
  # Retrieve the docker image
  train_image_uri = image_uris.retrieve(
      region=None,
      framework=None,
      model_id=train_model_id,
      model_version=train_model_version,
      image_scope=train_scope,
      instance_type=training_instance_type
  )
  
  # Retrieve the training script
  train_source_uri = script_uris.retrieve(
      model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
  )
  
  train_model_uri = model_uris.retrieve(
      model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
  )
  
  # Sample training data is available in this bucket
  training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
  training_data_prefix = "training-datasets/tabular_multiclass/"
  
  training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/train"
  validation_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}/validation"
  
  output_bucket = sess.default_bucket()
  output_prefix = "jumpstart-example-tabular-training"
  
  s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"
  
  from sagemaker import hyperparameters
  
  # Retrieve the default hyperparameters for training the model
  hyperparameters = hyperparameters.retrieve_default(
      model_id=train_model_id, model_version=train_model_version
  )
  
  # [Optional] Override default hyperparameters with custom values
  hyperparameters[
      "iterations"
  ] = "500"
  print(hyperparameters)
  
  from sagemaker.estimator import Estimator
  from sagemaker.utils import name_from_base
  
  training_job_name = name_from_base(f"built-in-algo-{train_model_id}-training")
  
  # Create SageMaker Estimator instance
  tabular_estimator = Estimator(
      role=aws_role,
      image_uri=train_image_uri,
      source_dir=train_source_uri,
      model_uri=train_model_uri,
      entry_point="transfer_learning.py",
      instance_count=1,
      instance_type=training_instance_type,
      max_run=360000,
      hyperparameters=hyperparameters,
      output_path=s3_output_location
  )
  
  # Launch a SageMaker Training job by passing the S3 path of the training data
  tabular_estimator.fit(
      {
          "training": training_dataset_s3_path,
          "validation": validation_dataset_s3_path,
      }, logs=True, job_name=training_job_name
  )
  ```

  CatBoost를 기본 제공 알고리즘으로 설정하는 방법에 대한 자세한 내용은 다음 노트북 예제를 참조하세요.
  + [Amazon SageMaker AI LightGBM 및 CatBoost 알고리즘을 사용한 테이블 형식 분류](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/lightgbm_catboost_tabular/Amazon_Tabular_Classification_LightGBM_CatBoost.ipynb)
  + [Amazon SageMaker AI LightGBM 및 CatBoost 알고리즘을 사용한 테이블 형식 회귀](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/lightgbm_catboost_tabular/Amazon_Tabular_Regression_LightGBM_CatBoost.ipynb)

# CatBoost 알고리즘의 입력 및 출력 인터페이스
<a name="InputOutput-CatBoost"></a>

그라디언트 부스팅은 테이블형 데이터에서 작동합니다. 행은 관측치를 나타내고 1개 열은 대상 변수 또는 레이블을 나타내며, 나머지 열은 특징을 나타냅니다.

CatBoost의 SageMaker AI 구현은 훈련 및 추론을 위한 CSV를 지원합니다.
+ **훈련 ContentType**의 경우 유효한 입력은 *text/csv*여야 합니다.
+ **추론 ContentType**의 경우 유효한 입력은 *text/csv*여야 합니다.

**참고**  
CSV 훈련의 경우 알고리즘은 대상 변수가 첫 번째 열에 있고 CSV에는 헤더 레코드가 없다고 추정합니다.  
CSV 추론의 경우 알고리즘은 CSV 입력에 레이블 열이 없다고 추정합니다.

**훈련 데이터, 검증 데이터 및 범주형 기능의 입력 형식**

CatBoost 모델에 입력하기 위한 훈련 데이터의 형식을 지정하는 방법을 염두에 두세요. 훈련 및 검증 데이터를 포함하는 Amazon S3 버킷의 경로를 제공해야 합니다. 범주형 기능 목록을 포함시킬 수도 있습니다. `training` 및 `validation` 채널을 모두 사용하여 입력 데이터를 제공하세요 또는 `training` 채널만 사용해도 됩니다.

**`training` 및 `validation` 채널을 모두 사용**

`training` 채널용과 `validation` 채널용 두 개의 S3 경로를 통해 입력 데이터를 제공할 수 있습니다. 각 S3 경로는 하나 이상의 CSV 파일을 가리키는 S3 접두사이거나 특정 CSV 파일 하나를 가리키는 전체 S3 경로일 수 있습니다. 대상 변수는 CSV 파일의 첫 번째 열에 있어야 합니다. 예측기 변수(기능)는 나머지 열에 있어야 합니다. `training` 또는 `validation` 채널에 대해 여러 CSV 파일이 제공되는 경우 CatBoost 알고리즘은 파일을 연결합니다. 검증 데이터는 각 부스팅 반복 종료 시 검증 점수를 계산하는 데 사용됩니다. 유효성 검증 점수가 더 이상 향상되지 않으면 조기 중지가 적용됩니다.

예측 변수에 범주형 기능이 포함된 경우 훈련 데이터 파일 또는 파일이 있는 위치에 이름이 `categorical_index.json`인 JSON 파일을 제공할 수 있습니다. 범주형 기능을 위한 JSON 파일을 제공하는 경우 `training` 채널은 특정 CSV 파일이 아닌 S3 접두사를 가리켜야 합니다. 이 파일은 키가 문자열 `"cat_index_list"`이고 값이 고유 정수 목록인 Python 사전을 포함해야 합니다. 값 목록의 각 정수는 훈련 데이터 CSV 파일에 있는 해당 범주형 기능의 열 인덱스를 나타내야 합니다. 각 값은 양의 정수(0은 목표 값을 나타내므로 0보다 커야 함), `Int32.MaxValue`(2147483647) 미만, 총 열 수보다 작아야 합니다. 범주형 인덱스 JSON 파일은 하나만 있어야 합니다.

**`training` 채널만 사용**:

`training` 채널의 단일 S3 경로를 통해 입력 데이터를 제공할 수도 있습니다. 이 S3 경로는 하나 이상의 CSV 파일이 들어 있는 `training/`이라는 이름의 하위 디렉터리가 있는 디렉터리를 가리켜야 합니다. 선택적으로 `validation/`이라는 동일한 위치에 하나 이상의 CSV 파일이 있는 다른 하위 디렉토리를 포함할 수 있습니다. 검증 데이터가 제공되지 않는 경우 훈련 데이터의 20%가 무작위로 샘플링되어 검증 데이터로 사용됩니다. 예측 변수에 범주형 기능이 포함되어 있다면 데이터 하위 디렉터리와 같은 위치에 `categorical_index.json`이라는 이름의 JSON 파일을 제공할 수 있습니다.

**참고**  
CSV 훈련 입력 모드의 경우, 알고리즘에 대해 사용 가능한 전체 메모리(인스턴스 수 \$1 `InstanceType`의 가용 메모리)가 훈련 데이터세트를 담을 수 있어야 합니다.

SageMaker AI CatBoost는 `catboost.CatBoostClassifier` 및 `catboost.CatBoostRegressor` 모듈을 사용하여 모델을 직렬화/역직렬화하며, 이는 모델 저장 또는 로딩에 사용될 수 있습니다.

**`catboost`를 포함한 SageMaker AI CatBoost로 훈련된 모델을 사용하려면 다음과 같이 합니다.**
+ 다음 Python 코드를 사용합니다.

  ```
  import tarfile
  from catboost import CatBoostClassifier
  
  t = tarfile.open('model.tar.gz', 'r:gz')
  t.extractall()
  
  file_path = os.path.join(model_file_path, "model")
  model = CatBoostClassifier()
  model.load_model(file_path)
  
  # prediction with test data
  # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d
  pred = model.predict(dtest)
  ```

## CatBoost 알고리즘에 대한 Amazon EC2 인스턴스 권장 사항
<a name="Instance-CatBoost"></a>

SageMaker AI CatBoost는 현재 CPU를 사용한 훈련만 가능합니다. CatBoost는 메모리 바운드(컴퓨팅 바운드와는 반대) 알고리즘입니다. 따라서 컴퓨팅 최적화 인스턴스(예: C5)보다 범용 컴퓨팅 인스턴스(예: M5)를 선택하는 것이 좋습니다. 또한 훈련 데이터를 보유하기 위해 선택한 인스턴스에 총 메모리가 충분한 것이 좋습니다.

## CatBoost 샘플 노트북
<a name="catboost-sample-notebooks"></a>

 다음 테이블에는 Amazon SageMaker AI CatBoost 알고리즘의 다양한 사용 사례를 다루는 다양한 샘플 노트북이 나와 있습니다.


****  

| **노트북 제목** | **설명** | 
| --- | --- | 
|  [Amazon SageMaker AI LightGBM 및 CatBoost 알고리즘을 사용한 테이블 형식 분류](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/lightgbm_catboost_tabular/Amazon_Tabular_Classification_LightGBM_CatBoost.ipynb)  |  이 노트북은 Amazon SageMaker AI CatBoost 알고리즘을 사용하여 테이블 형식 분류 모델을 훈련하고 호스팅하는 방법을 보여줍니다.  | 
|  [Amazon SageMaker AI LightGBM 및 CatBoost 알고리즘을 사용한 테이블 형식 회귀](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/lightgbm_catboost_tabular/Amazon_Tabular_Regression_LightGBM_CatBoost.ipynb)  |  이 노트북은 Amazon SageMaker AI CatBoost 알고리즘을 사용하여 테이블 형식 회귀 모델을 훈련하고 호스팅하는 방법을 보여줍니다.  | 

SageMaker AI에서 예시 실행에 사용할 수 있는 Jupyter Notebook 인스턴스를 만들고 액세스하는 방법은 [Amazon SageMaker 노트북 인스턴스](nbi.md) 섹션을 참조하세요. 노트북 인스턴스를 만든 후 열고 **SageMaker AI 예시** 탭을 선택하여 모든 SageMaker AI 샘플 목록을 확인하세요. 노트북을 열려면 **사용** 탭을 선택한 후 **사본 생성**을 선택합니다.

# CatBoost 작동 방식
<a name="catboost-HowItWorks"></a>

CatBoost는 기존의 GBDT(그라데이션 부스팅 의사 결정 트리) 알고리즘을 구현하여 다음과 같은 두 가지 중요한 알고리즘 개선 사항을 추가했습니다.

1. 기존 알고리즘에 대한 순열 기반 대안인 순서가 있는 부스팅 구현

1. 범주형 기능을 처리하기 위한 혁신적인 알고리즘

두 기법 모두 현재의 모든 기존 그라데이션 부스팅 알고리즘 구현에 존재하는 특수한 종류의 표적 누출로 인한 예측 변화를 막기 위해 개발되었습니다.

CatBoost 알고리즘은 다양한 데이터 형식, 관계, 분포 및 미세 조정할 수 있는 다양한 하이퍼파라미터를 강력하게 처리하기 때문에 기계 학습 경쟁에서 잘 작동합니다. 회귀, 분류(바이너리 및 멀티클래스) 및 순위 결정 관련 문제에 CatBoost를 사용할 수 있습니다.

그라데이션 부스팅에 대한 자세한 내용은 [SageMaker AI XGBoost 알고리즘의 작동 방식](xgboost-HowItWorks.md) 섹션을 참조하세요. CatBoost 방법에 사용되는 추가 GOSS 및 EFB 기법에 대한 자세한 내용은 [CatBoost: 범주형 기능을 사용한 편견 없는 부스팅](https://arxiv.org/pdf/1706.09516.pdf)을 참조하세요.**

# CatBoost 하이퍼파라미터
<a name="catboost-hyperparameters"></a>

다음 테이블에는 Amazon SageMaker AI CatBoost 알고리즘에 필요하거나 가장 일반적으로 사용되는 하이퍼파라미터 하위 세트가 포함되어 있습니다. 이들은 사용자가 데이터를 통해 모델 파라미터를 쉽게 예측하기 위해 설정하는 파라미터입니다. SageMaker AI CatBoost 알고리즘은 오픈 소스 [CatBoost](https://github.com/catboost/catboost) 패키지의 구현입니다.

**참고**  
기본 하이퍼파라미터는 [CatBoost 샘플 노트북](catboost.md#catboost-sample-notebooks)의 예제 데이터세트를 기준으로 정해집니다.

기본적으로 SageMaker AI CatBoost 알고리즘은 분류 문제 유형에 따라 평가 지표와 손실 함수를 자동 선택합니다. 이 CatBoost 알고리즘은 데이터의 레이블 수를 기반으로 분류 문제 유형을 탐지합니다. 회귀 문제의 경우 평가 지표와 손실 함수는 모두 평균 제곱근 오차입니다. 바이너리 분류 문제의 경우 평가 지표는 곡선 아래 면적(AUC)이고 손실 함수는 로그 손실입니다. 멀티클래스 분류 문제의 경우 평가 지표 및 손실 함수는 멀티클래스 교차 엔트로피입니다. `eval_metric` 하이퍼파라미터를 사용하여 기본 평가 지표를 변경할 수 있습니다. 설명, 유효한 값, 기본값을 포함하여 LightGBM 하이퍼파라미터에 대한 자세한 내용은 다음 표를 참조하세요.


| 파라미터 이름 | 설명 | 
| --- | --- | 
| iterations |  빌드할 수 있는 최대 트리 수입니다. 유효한 값: 정수, 범위: 양의 정수. 기본값: `500`.  | 
| early\$1stopping\$1rounds |  마지막 `early_stopping_rounds` 라운드에서 한 검증 데이터 요소 중 하나의 지표가 개선되지 않으면 훈련이 중지됩니다. `early_stopping_rounds`가 0보다 작거나 같으면 이 하이퍼파라미터는 무시됩니다. 유효한 값: 정수. 기본값: `5`.  | 
| eval\$1metric |  검증 데이터에 대한 평가 지표. `eval_metric`을 디폴트 `"auto"` 값으로 설정하면 알고리즘이 분류 문제의 유형에 따라 평가 지표를 자동으로 선택합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/catboost-hyperparameters.html) 유효한 값: 문자열, 유효한 값은 [CatBoost 설명서](https://catboost.ai/en/docs/references/eval-metric__supported-metrics)를 참조하세요. 기본값: `"auto"`.  | 
| learning\$1rate |  각 훈련 예제 배치를 살펴본 후 모델 가중치가 업데이트되는 비율입니다. 유효한 값: 부동 소수점, 범위: (`0.0`, `1.0`). 기본값: `0.009`.  | 
| depth |  트리의 깊이. 유효한 값: 정수, 범위: (`1`, `16`). 기본값: `6`.  | 
| l2\$1leaf\$1reg |  비용 함수의 L2 정규화 항에 대한 계수. 유효한 값: 정수, 범위: 양의 정수. 기본값: `3`.  | 
| random\$1strength |  점수를 매기는 데 사용할 무작위성의 양은 트리 구조를 선택할 때 분할됩니다. 이 파라미터를 사용하면 모델이 과적합되지 않도록 할 수 있습니다. 유효한 값: 부동 소수, 범위: 양의 부동 소수점 수 기본값: `1.0`.  | 
| max\$1leaves |  결과 트리의 최대 잎 수입니다. `"Lossguide"` 성장 정책에만 사용할 수 있습니다. 유효한 값: 정수, 범위: [`2`, `64`]. 기본값: `31`.  | 
| rsm |  무작위 부분 공간 매서드. 기능을 무작위로 다시 선택한 경우 각 분할 선택에서 사용할 기능의 백분율. 유효한 값: 부동 소수, 범위: (`0.0`, `1.0`]. 기본값: `1.0`.  | 
| sampling\$1frequency |  트리를 빌드할 때 가중치와 객체를 샘플링하는 빈도. 유효한 값: 문자열, 둘 중 하나: (`"PerTreeLevel"` 또는 `"PerTree"`). 기본값: `"PerTreeLevel"`.  | 
| min\$1data\$1in\$1leaf |  리프에 있는 훈련 샘플의 최소 개수. CatBoost는 샘플 수가 지정된 값보다 적은 리프에서 새 분할을 검색하지 않습니다. `"Lossguide"` 및 `"Depthwise"` 성장 정책에만 사용할 수 있습니다. 유효한 값: 정수, 범위: (`1` 또는 `∞`). 기본값: `1`.  | 
| bagging\$1temperature |  베이지안 부트스트랩의 설정을 정의합니다. 베이지안 부트스트랩을 사용하여 객체에 임의의 가중치를 할당할 수 있습니다. `bagging_temperature`를 `1.0`로 설정하면 지수 분포에서 가중치를 샘플링합니다. `bagging_temperature`를 `0.0`로 설정하면 모든 가중치는 1.0입니다. 유효한 값: 부동 소수, 범위: 음수가 아닌 부동 소수. 기본값: `1.0`.  | 
| boosting\$1type |  부스팅 체계. ‘자동’은 `boosting_type`이 처리 장치 유형, 훈련 데이터세트의 개체 수, 선택한 학습 모드를 기반으로 선택됨을 의미합니다. 유효한 값: 문자열, 다음 중 하나: (`"Auto"`, `"Ordered"`, `"Plain"`). 기본값: `"Auto"`.  | 
| scale\$1pos\$1weight |  바이너리 분류에서 양의 클래스에 대한 가중치. 이 값은 양의 클래스의 객체 가중치를 곱한 값으로 사용됩니다. 유효한 값: 부동 소수, 범위: 양의 부동 소수. 기본값: `1.0`.  | 
| max\$1bin |  수치적 특징의 분할 횟수. `"Auto"`이란 `max_bin`가 처리 중인 장치 유형 및 기타 파라미터를 기반으로 선택됨을 의미합니다. 자세한 내용은 CatBoost 설명서를 참조하세요. 유효한 값: 문자열, 둘 중 하나 (`"Auto"` 또는 `"1"` \$1 `"65535"`까지의 정수 문자열). 기본값: `"Auto"`.  | 
| grow\$1policy |  트리 성장 정책. 거대한 트리 빌드 방법을 정의합니다. 유효한 값: 문자열, 다음 중 하나: (`"SymmetricTree"`, `"Depthwise"` 또는 `"Lossguide"`). 기본값: `"SymmetricTree"`.  | 
| random\$1seed |  훈련에 사용되는 무작위 시드. 유효한 값: 정수, 범위: 음수가 아닌 정수. 기본값: `1.0`. | 
| thread\$1count |  훈련 중에 사용할 스레드 수입니다. `thread_count`이 `-1`인 경우 스레드 수는 프로세서 코어 수와 같습니다. `thread_count`은 `0`일 수 없습니다. 유효한 값: 정수, 둘 중 하나 (`-1` 또는 양의 정수). 기본값: `-1`.  | 
| verbose |  인쇄 메시지의 상세 내용. 레벨이 높을수록 인쇄 명세서가 더 상세해집니다. 유효한 값: 정수, 범위: 양의 정수. 기본값: `1`.  | 

# CatBoost 모델 튜닝
<a name="catboost-tuning"></a>

자동 모델 튜닝은 하이퍼파라미터 튜닝이라고도 하며, 훈련 데이터세트 및 검증 데이터세트에 대한 다양한 하이퍼파라미터를 테스트하는 여러 작업을 실행하여 최적의 모델 버전을 찾는 기능입니다.** 모델 튜닝은 다음과 같은 하이퍼파라미터에 초점을 맞춥니다.

**참고**  
훈련 손실 함수는 레이블 열의 고유 정수 수에 따라 결정되는 분류 작업 유형에 따라 자동 할당됩니다. 자세한 내용은 [CatBoost 하이퍼파라미터](catboost-hyperparameters.md) 섹션을 참조하세요.
+ 모델 훈련 중에 최적화하는 학습 손실 함수
+ 검증 중에 모델 성능을 평가하는 데 사용되는 평가 지표입니다.
+ 모델을 자동 튜닝할 때 사용할 하이퍼파라미터 세트와 각 값의 범위

자동 모델 튜닝은 선택한 하이퍼파라미터를 검색하여 선택된 평가 지표를 최적화하는 모델을 만드는 값 조합을 찾습니다.

**참고**  
CatBoost의 자동 모델 튜닝은 SageMaker AI 콘솔이 아닌 Amazon SageMaker SDK에서만 사용할 수 있습니다.

모델 튜닝에 대한 추가 정보는 [SageMaker AI로 자동 모델 튜닝](automatic-model-tuning.md) 섹션을 참조하세요.

## CatBoost 알고리즘으로 계산되는 평가 지표
<a name="catboost-metrics"></a>

SageMaker AI CatBoost 알고리즘은 모델 검증에 사용할 다음 지표를 계산합니다. 평가 지표는 분류 작업 유형(레이블 열에 표시된 고유 정수의 개수로 결정됨)에 따라 자동으로 할당됩니다.


| 지표 이름 | 설명 | 최적화 방향 | 정규식 패턴 | 
| --- | --- | --- | --- | 
| RMSE | 평균 제곱근 오차 | 최소화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| MAE | 평균 절대 오차 | 최소화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| MedianAbsoluteError | 평균 절대 오차 | 최소화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| R2 | r2 점수 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| Logloss | 바이너리 교차 엔트로피 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| Precision | precision | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| Recall | 리콜 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| F1 | F1 점수 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| AUC | 오크 점수 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| MultiClass | 멀티클래스 교차 엔트로피 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| Accuracy | 정확도 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 
| BalancedAccuracy | 균형 잡힌 정확도 | 최대화 | "bestTest = ([0-9\$1\$1.]\$1)" | 

## 튜닝 가능한 CatBoost 하이퍼파라미터
<a name="catboost-tunable-hyperparameters"></a>

다음 하이퍼파라미터를 사용하여 CatBoost 모델을 튜닝합니다. CatBoost 평가 지표를 최적화하는데 가장 큰 영향을 미치는 하이퍼파라미터는 `learning_rate`, `depth`, `l2_leaf_reg`, 및 `random_strength`입니다. 모든 CatBoost 하이퍼파라미터 목록은 [CatBoost 하이퍼파라미터](catboost-hyperparameters.md) 섹션을 참조하세요.


| 파라미터 이름 | 파라미터 유형 | 권장 범위 | 
| --- | --- | --- | 
| learning\$1rate | ContinuousParameterRanges | MinValue: 0.001, MaxValue: 0.01 | 
| depth | IntegerParameterRanges | MinValue: 4, MaxValue: 10 | 
| l2\$1leaf\$1reg | IntegerParameterRanges | MinValue: 2, MaxValue: 10 | 
| random\$1strength | ContinuousParameterRanges | MinValue: 0, MaxValue: 10 | 