기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CatBoost
CatBoost
CatBoost GBDT에 두 가지 중요한 알고리즘 발전을 소개합니다.
-
클래식 알고리즘에 대한 순열 기반 대안인 순서형 부스팅 구현
-
범주형 특징 처리를 위한 혁신적인 알고리즘
두 기법 모두 현재의 모든 기존 그래디언트 부스팅 알고리즘 구현에 존재하는 특수한 종류의 표적 누출로 인한 예측 변화를 막기 위해 만들어졌습니다.
사용 방법 SageMaker CatBoost
다음을 사용할 수 있습니다. CatBoost 아마존으로 SageMaker 기본 제공 알고리즘. 다음 단원에서는 사용 방법을 설명합니다. CatBoost 와 함께 SageMaker SDK 사용 방법에 대한 자세한 내용은 CatBoost 아마존에서 SageMaker 스튜디오 UI, 참조SageMaker JumpStart.
-
사용 CatBoost 기본 경로입니다.
사용 CatBoost 빌드를 위한 내장 알고리즘 CatBoost 다음 코드 예제에 표시된 훈련 컨테이너입니다. 자동으로 찾을 수 있습니다 CatBoost를 사용하는 내장 알고리즘 이미지 URI SageMaker
image_uris.retrieve
API (또는get_image_uri
사용아마존 SageMaker SDK버전 2). 지정한 후 CatBoost 이미지 URI, 사용할 수 있습니다 CatBoost 를 사용하여 추정기를 구성하기 위한 컨테이너 SageMaker 평가자 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}" 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 hyper-parameters 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}, logs=True, job_name=training_job_name )
설정 방법에 대한 자세한 내용은 CatBoost 내장 알고리즘으로, 다음 노트북 예제를 참조하십시오.
의 입력 및 출력 인터페이스 CatBoost알고리듬
그라디언트 부스팅은 테이블형 데이터에서 작동합니다. 행은 관측치를 나타내고 1개 열은 대상 변수 또는 레이블을 나타내며, 나머지 열은 특징을 나타냅니다.
이 SageMaker 의 구현 CatBoost 교육 및 추론을 위한 CSV 지원:
-
에 대한교육 ContentType, 유효한 입력은텍스트/csv.
-
에 대한추론 ContentType, 유효한 입력은텍스트/csv.
CSV 교육의 경우 알고리즘은 대상 변수가 첫 번째 열에 있고 CSV에는 헤더 레코드가 없다고 추정합니다.
CSV 추론의 경우 알고리즘은 CSV 입력에 레이블 열이 없다고 추정합니다.
입력이 가능하도록 훈련 데이터의 형식을 지정하는 방법을 염두에 두세요. CatBoost 모델. 훈련 및 선택적 검증 데이터를 위한 하위 디렉터리가 포함된 Amazon S3 버킷의 경로를 제공해야 합니다. 범주형 기능 목록도 포함할 수 있습니다.
-
교육 데이터 입력 형식: 훈련 데이터는 라는 하위 디렉토리에 있어야 합니다.
train/
그 안에 a가 들어 있습니다data.csv
파일을 생성합니다. 대상 변수는 의 첫 번째 열에 있어야 합니다.data.csv
. 예측 변수 (특징) 는 나머지 열에 있어야 합니다. -
검증 데이터 입력 형식: 필요한 경우 라는 다른 디렉터리를 포함할 수 있습니다.
validation/
그것에는 또한data.csv
파일을 생성합니다. 검증 데이터는 각 부스팅 반복이 끝날 때 검증 점수를 계산하는 데 사용됩니다. 조기 중지는 검증 점수 개선이 중지될 때 적용됩니다. 검증 데이터가 제공되지 않으면 훈련 데이터의 20% 가 무작위로 샘플링되어 검증 데이터로 사용됩니다. -
범주형 특징 입력 형식: 예측 변수에 범주형 특징이 포함된 경우 다음과 같은 JSON 파일을 제공할 수 있습니다.
categorical_index.json
데이터 디렉터리와 동일한 위치에 있습니다. 이 파일은 키가 문자열인 Python 사전을 포함해야 합니다."cat_index_list"
값은 고유한 정수 목록입니다. 값 목록의 각 정수는 훈련 데이터 CSV 파일에 있는 해당 범주형 특징의 열 색인을 나타내야 합니다. 각 값은 양수 정수 (0이 목표값을 나타내므로 0보다 큼) 여야 하며Int32.MaxValue
(2147483647) 이며 총 열 수보다 작습니다. 범주형 색인 JSON 파일은 하나만 있어야 합니다.
CSV 트레이닝 입력 모드의 경우 알고리즘에 사용할 수 있는 총 메모리 (인스턴스 수) 에 사용 가능한 메모리를 곱한 값입니다.InstanceType
) 교육 데이터 세트를 보관할 수 있어야 합니다.
SageMaker CatBoost 를 사용합니다.catboost.CatBoostClassifier
과catboost.CatBoostRegressor
모델을 직렬화하거나 역직렬화하는 모듈로, 모델을 저장하거나 로드하는 데 사용할 수 있습니다.
로 학습한 모델을 사용하려면 SageMaker CatBoost 와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
)
에 대한 Amazon EC2 인스턴스 권장 사항 CatBoost알고리듬
SageMaker CatBoost 현재는 CPU를 사용하는 교육만 가능합니다. CatBoost 메모리 기반 (컴퓨팅 바인딩과 반대) 알고리즘입니다. 따라서 범용 컴퓨팅 인스턴스 (예: M5) 가 컴퓨팅에 최적화된 인스턴스 (예: C5) 보다 더 나은 선택이 될 수 있습니다. 또한 교육 데이터를 보유하기 위해 선택한 인스턴스에 총 메모리가 충분한 것이 좋습니다.
CatBoost 샘플 노트북
다음 표에는 Amazon의 다양한 사용 사례를 다루는 다양한 샘플 노트북이 요약되어 있습니다. SageMaker CatBoost 알고리즘
노트북 제목 | 설명 |
---|---|
이 노트북은 Amazon의 사용법을 보여줍니다. SageMaker CatBoost테이블 형식 분류 모델을 트레이닝하고 호스팅하는 알고리즘 |
|
이 노트북은 Amazon의 사용법을 보여줍니다. SageMaker CatBoost테이블 형식 회귀 모델을 학습시키고 호스팅하는 알고리즘. |
예제를 실행하는 데 사용할 수 있는 Jupyter Notebook 인스턴스를 만들고 액세스하는 방법에 대한 지침 SageMaker섹션을 참조하세요.Amazon SageMaker 노트북 인스턴스 사용. Notebook 인스턴스를 생성하고 연 다음SageMaker예제:탭을 클릭하면 모든 목록이 표시됩니다. SageMaker 샘플. 노트북을 열려면 사용 탭을 선택한 후 Create copy(사본 생성)를 선택합니다.