그라디언트 부스팅은 테이블형 데이터에서 작동합니다. 행은 관측치를 나타내고 1개 열은 대상 변수 또는 레이블을 나타내며, 나머지 열은 특징을 나타냅니다.
AutoGluon-Tabular의 SageMaker 구현은 훈련 및 추론을 위한 CSV를 지원합니다.
-
훈련 ContentType의 경우 유효한 입력은 text/csv여야 합니다.
-
추론 ContentType의 경우 유효한 입력은 text/csv여야 합니다.
참고
CSV 훈련의 경우 알고리즘은 대상 변수가 첫 번째 열에 있고 CSV에는 헤더 레코드가 없다고 추정합니다.
CSV 추론의 경우 알고리즘은 CSV 입력에 레이블 열이 없다고 추정합니다.
훈련 데이터, 검증 데이터 및 범주형 기능의 입력 형식
AutoGluon-Tabular 모델에 입력하기 위해 훈련 데이터의 형식을 지정하는 방법을 염두에 두세요. 훈련 및 검증 데이터를 포함하는 Amazon S3 버킷의 경로를 제공해야 합니다. 범주형 기능 목록을 포함시킬 수도 있습니다. training
및 validation
채널을 모두 사용하여 입력 데이터를 제공하세요 또는 training
채널만 사용해도 됩니다.
training
및 validation
채널을 모두 사용하세요.
training
채널용과 validation
채널용 두 개의 S3 경로를 통해 입력 데이터를 제공할 수 있습니다. 각 S3 경로는 S3 접두사이거나 특정 CSV 파일 하나를 가리키는 전체 S3 경로일 수 있습니다. 대상 변수는 CSV 파일의 첫 번째 열에 있어야 합니다. 나머지 열에는 예측 변수(특징)가 표시되어야 합니다. 검증 데이터는 각 부스팅 반복 종료 시 검증 점수를 계산하는 데 사용됩니다. 유효성 검증 점수가 더 이상 향상되지 않으면 조기 중지가 적용됩니다.
예측 변수에 범주형 기능이 포함된 경우 훈련 데이터 파일이 있는 위치에 이름이 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 훈련 입력 모드의 경우, 알고리즘에 대해 사용 가능한 전체 메모리(인스턴스 수 * InstanceType
의 가용 메모리)가 훈련 데이터세트를 담을 수 있어야 합니다.
SageMaker AutoGluon-Tabular는 autogluon.tabular.TabularPredictor
모듈을 사용하여 모델을 직렬화/역직렬화하고, 이는 모델 저장 또는 로딩에 사용될 수 있습니다.
SageMaker AutoGluon-Tabular로 훈련된 모델을 AutoGluon 프레임워크와 함께 사용하려면
-
다음 Python 코드를 사용합니다.
import tarfile from autogluon.tabular import TabularPredictor t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = TabularPredictor.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
)