개요
학습 내용
이 가이드에서는 다음을 수행합니다.
- 데이터 세트 가져오기
- 분류 대상 변수 선택
- 데이터 세트 육안 검사
- SageMaker Canvas 빠른 구축 기능으로 기계 학습 모델을 구축합니다
- 모델 특성 및 지표 파악
- 대량 및 단일 예측 생성 및 이해
사전 요구 사항
이 가이드를 시작하기 전에 필요한 사항은 다음과 같습니다.
- AWS 계정: 아직 계정이 없는 경우 환경 설정 시작하기 가이드를 참조하여 만들 수 있습니다.
AWS 경험
초보자
소요 시간
20분
완료 비용
이 자습서의 예상 비용은 SageMaker Canvas 요금을 참조하세요.
필요 사항
AWS 계정에 로그인해야 합니다.
사용 서비스
Amazon SageMaker Canvas
최종 업데이트 날짜
2022년 6월 28일
사용 사례
이 자습서에서는 배송의 예상 도착 시간(ETA)(일 단위)을 예측할 수 있는 기계 학습 모델을 구축합니다. 예상 시간, 배송, 우선 순위, 운송업체, 원산지 등 배송된 제품의 전체 배송 데이터가 포함된 데이터 세트를 사용합니다.
1단계: Amazon SageMaker Studio 도메인 설정
AWS 계정은 AWS 리전당 1개의 SageMaker Studio 도메인만 설정할 수 있습니다. 미국 동부(버지니아 북부) 리전에 이미 SageMaker Studio 도메인이 있는 경우 SageMaker Studio 설정 가이드에 따라 필요한 AWS IAM 정책을 SageMaker Studio 계정에 연결한 다음 1단계를 건너뛰고 2단계로 바로 넘어가세요.
기존 SageMaker Studio 도메인이 없는 경우 1단계로 계속하여 AWS CloudFormation 템플릿을 실행합니다. 그러면 SageMaker Studio 도메인이 생성되고 이 자습서의 나머지 부분에 필요한 권한이 추가됩니다.
AWS CloudFormation 스택 링크를 선택합니다. 이 링크를 누르면 AWS CloudFormation 콘솔이 열리고 SageMaker Studio 도메인과 studio-user라는 이름의 사용자가 생성됩니다. 또한 필요한 권한이 SageMaker Studio 계정에 추가됩니다. CloudFormation 콘솔에서 오른쪽 위에 표시된 리전이 미국 동부(버지니아 북부)(US East (N. Virginia))인지 확인합니다. 스택 이름(Stack name)은 CFN-SM-IM-Lambda-catalog여야 하며 변경할 수 없습니다. 이 스택은 모든 리소스를 생성하는 데 약 10분이 걸립니다.
이 스택은 퍼블릭 VPC가 계정에 이미 설정되어 있는 것으로 가정합니다. 퍼블릭 VPC가 없는 경우 단일 퍼블릭 서브넷이 있는 VPC를 참조하여 퍼블릭 VPC 생성 방법에 대해 알아보세요.
AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 동의합니다(I acknowledge that AWS CloudFormation might create IAM resources)를 선택하고 스택 생성(Create stack)을 선택합니다.
CloudFormation 창에서 스택(Stacks)을 선택합니다. 스택이 생성되는 데 약 10분이 걸립니다. 스택이 생성되면 스택 상태가 CREATE_IN_PROGRESS에서 CREATE_COMPLETE로 바뀝니다.
2단계: SageMaker Canvas에 로그인하고 Amazon S3 버킷에 데이터 집합 업로드
AWS 콘솔의 검색 창에 SageMaker Canvas를 입력하고 SageMaker Canvas로 이동합니다.
왼쪽 창의 제어판에서 Canvas를 선택하고 오른쪽 상단에 있는 리전(Region) 드롭다운 목록에서 미국 동부(버지니아 북부)(US East (N. Virginia))를 선택합니다.
- SageMaker Canvas 페이지에서 SageMaker Canvas 시작(Launch SageMaker Canvas)을 선택합니다.
- 제어판 페이지의 studio-user 옆에 있는 앱 시작(Launch app) 드롭다운 목록에서 Canvas를 선택합니다.
- SageMaker Canvas 애플리케이션 생성(Creating application) 화면이 나타납니다. 애플리케이션을 로드하는 데 몇 분 정도 걸립니다.
SageMaker를 US-East 1 리전에서 처음 사용하는 경우 SageMaker Canvas는 sagemaker-<your-Region>-<your-account-id>라는 패턴의 이름으로 Amazon S3 버킷을 생성합니다. 자습서의 나머지 부분을 진행하기 전에 아래 데이터 세트를 다운로드하여 로컬 컴퓨터에 저장합니다. 그런 다음 SageMaker Canvas가 생성한 기본 S3 버킷에 데이터 세트를 업로드합니다.
AWS 콘솔 검색 창에 S3를 입력한 후 S3를 선택합니다.
S3 콘솔이 열리면 버킷(Buckets) 섹션에서 SageMaker Canvas가 생성한 기본 버킷을 찾을 수 있습니다. sagemaker-<your-Region>-<your-account-id>라는 버킷을 선택하고 다음 페이지에서 업로드(Upload)를 선택합니다.
업로드 페이지에서 파일 추가(Add files)를 선택하고 이전 단계에서 다운로드한 데이터 세트 2개를 선택합니다. 페이지 아래로 스크롤하여 업로드(Upload)를 클릭합니다. 모델을 구축하기 전에 SageMaker Canvas가 이들 파일에 액세스합니다.
3단계: 자동 모델 구축을 위한 SageMaker Canvas 설정
육안 검사 및 모델 구축을 위해 데이터를 SageMaker Canvas로 가져옵니다.
SageMaker Canvas로 데이터 세트를 가져옵니다.
- SageMaker Canvas 인터페이스의 왼쪽 창에서 데이터 세트(Datasets)를 선택한 후 + 가져오기(+ Import)를 선택합니다.
- 이전 단계에서 데이터 세트를 업로드한 sagemaker-<your-Region>-<your-account-id>라는 Amazon S3 버킷을 선택합니다. 왼쪽의 확인란을 선택하여 shipping_logs.csv 및 product_descriptions.csv 데이터 세트를 선택합니다. 페이지 하단에 모두 미리 보기(Preview all) 및 데이터 가져오기(Import data)라는 2개의 새 버튼이 나타납니다. 모두 미리 보기(Preview all)를 선택합니다. 그러면 데이터 세트의 100행 미리 보기를 볼 수 있습니다.
- 데이터 세트를 확인한 후 데이터 가져오기(Import data)를 선택하여 SageMaker Canvas로 가져옵니다.
SageMaker Canvas 페이지의 데이터 세트(Datasets) 섹션에 가져온 2개의 데이터 세트가 있습니다. 데이터 조인(Join data)을 선택합니다.
데이터 세트 조인(Join Datasets) 페이지의 왼쪽 창에서 2개의 데이터 세트를 오른쪽 창으로 끌어 놓습니다. 두 데이터 세트 사이에 있는 조인 아이콘을 선택합니다. 조인에 대한 세부 정보를 보여주는 팝업이 나타납니다. 조인 유형이 내부(Inner)이고 조인하는 열이 ProductId인지 확인합니다. 저장 후 닫기(Save & close)를 선택한 다음 데이터 가져오기(Import data)를 선택합니다.
- 데이터 가져오기 대화 상자의 가져오기 데이터 세트 이름(Import dataset name) 필드에 ConsolidatedShippingData라는 이름을 입력하고 데이터 가져오기(Import data)를 선택합니다.
4단계: 기계 학습 모델 구축, 훈련 및 분석
대상 변수를 설정하고 데이터의 속성을 육안으로 검사한 후 모델 구축 프로세스를 시작합니다.
SageMaker Canvas 사용자 인터페이스에서 모델(Models)를 선택하고 + 새 모델(+ New model)을 선택합니다. 새 모델 생성(Create new model) 대화 상자의 모델 이름(Model name) 필드에 ShippingForecast를 입력하고 생성(Create)을 선택합니다.
모델 보기 페이지는 모델 구축 및 예측과 관련한 단계를 나타내는 4개의 탭으로 구성되어 있습니다. 탭은 다음과 같습니다.
- 선택(Select) - 입력 데이터를 설정합니다.
- 구축(Build) - 기계 학습 모델을 구축합니다.
- 분석(Analyze) - 모델 출력과 특성을 분석합니다.
- 예측(Predict) - 대량으로 또는 단일 샘플에 대해 예측을 실행합니다.
선택(Select) 탭에서 이전 단계에서 생성한 ConsolidatedShippingData 데이터 세트의 라디오 버튼을 선택합니다. 이 데이터 세트에는 16개의 열과 10,000개의 행이 있습니다. 또한 데이터 세트의 모양과 크기에 대한 개략적인 설명도 포함되어 있습니다. 데이터 세트 선택(Select dataset)을 선택합니다.
데이터 세트를 선택하면 SageMaker Canvas가 자동으로 구축(Build) 단계로 넘어갑니다. 이 탭에서 대상 열을 선택합니다. 이 예의 경우 ActualShippingDays입니다. 이 열에는 과거에 제품이 도착하는 데 걸린 시간(일수)가 포함되어 있으므로 대상 열로 사용하기에 적합합니다.
- 대상 열을 선택하면 SageMaker Canvas가 문제 유형을 자동으로 유추합니다. 제품이 고객에게 도착하는 데 며칠이 걸릴지 알아보려는 것이므로 이는 회귀 또는 수치 예측 문제에 해당합니다. 회귀 분석에서는 상관 관계가 있는 하나 이상의 다른 변수 또는 속성을 기준으로 종속 대상 변수의 값을 추정합니다. 이 예의 경우 SageMaker Canvas는 데이터 세트에서 날짜가 있는 열을 감지했기 때문에, 처음에는 이 사용 사례를 시계열 예측 유형 문제로 예측할 수 있습니다. 하지만 페이지 가운데에 있는 유형 변경(Change type) 링크를 통해 문제 유형을 수동으로 선택하여 수치 모델 유형으로 변경할 수 있습니다.
- XShippingDistance 및 YShippingDistance 열은 대상과의 상관 관계가 거의 없습니다.
- 대상과의 상관 관계가 거의 없는 특성은 당면한 예측 작업에 유용한 정보를 제공하지 않으므로 XShippingDistance,YShippingDistance, ProductID 및 OrderID 열은 삭제해도 됩니다. 이들 열은 프라이머리 키이며 중요한 정보를 포함하지 않을 것이기 때문입니다. 확인란을 선택 취소할 수 있습니다.
- 세로 막대 아이콘을 선택하여 열의 분포를 검사할 수 있습니다. 이는 데이터의 불균형 및 잠재적 편향을 살펴보는 데 매우 유용합니다.
따라서 이 자습서에서는 빠른 구축(Quick build) 선택하여 모델 구축을 시작합니다. 이 프로세스는 완료하는 데 5분도 걸리지 않습니다.
모델 구축이 완료되면 SageMaker Canvas가 분석(Analyze) 탭으로 자동 전환되어 빠른 훈련 결과를 표시합니다. 빠른 구축을 사용하여 구축된 SageMaker Canvas 모델은 실제 값의 +/-1.2333 이내에서 배송 일수를 예측할 수 있습니다. 기계 학습은 모델 훈련 과정에서 몇 가지 확률성을 적용하며, 이로 인해 여러 구축에서 서로 다른 결과가 나타날 수 있습니다. 따라서 표시되는 지표 측면에서 세부적인 성능이 다를 수 있습니다.
개요(Overview) 탭에서 SageMaker Canvas는 목표 열을 예측하는 데 있어 열이 미치는 영향 또는 각 입력 열의 예상 중요도를 표시합니다. 이 예에서는 ExpectedShippingDays 열이 배송 일수를 예측하는 데 가장 큰 영향을 미칩니다. 오른쪽 창에서는 특성이 영향을 미치는 방향도 확인할 수 있습니다. 예를 들어 ExpectedShippingDays의 값이 클수록 배송 일수 예측에 더 긍정적인 영향을 미칩니다.
점수(Scoring) 탭에서 ActualshippingDays에 가장 적합한 회귀선을 나타내는 도표를 볼 수 있습니다. 평균적으로 모델 예측 결과와 ActualShippingDays의 실제 배송 일수 간의 차이는 +/-1.2333입니다. 수치 예측의 점수(Scoring) 섹션에는 예측에 사용된 데이터와 관련하여 모델의 예측 값을 나타내는 선이 표시됩니다. 수치 예측 값은 평균 제곱근 오차(RMSE) 값의 +/-인 경우가 많습니다. 모델이 예측하는 값은 RMSE의 범위 내에 있는 경우가 많습니다. 선 주위에 있는 보라색 띠의 너비는 RMSE 범위를 나타냅니다. 예측 값은 대개 이 범위 내에 포함됩니다. 모델 성능을 자세히 이해하려면 오른쪽에 있는 고급 지표(Advanced metrics) 링크를 선택하여 고급 지표(Advanced metrics) 페이지를 표시합니다.
- 고급 지표(Advanced metrics) 페이지에는 R2, 평균 절대 오차(MAE), 평균 절대 백분율 오차(MAPE), 평균 제곱근 오차(RMSE) 등의 다양한 지표가 표시됩니다. 고급 지표(Advanced metrics) 페이지에는 모델 성능의 육안 검사를 위한 도표도 표시됩니다. 한 이미지는 잔차 또는 오차의 그래프를 보여줍니다. 수평선은 오차 0 또는 완벽한 예측을 나타냅니다. 파란색 점은 오차입니다. 수평선으로부터의 거리는 오차의 크기를 나타냅니다.
- 고급 지표(Advanced metrics) 페이지에서 아래로 스크롤하면 모델의 MAE 및 RMSE와 관련한 오차의 분포와 확산을 보여주는 오차 밀도 도표를 볼 수 있습니다. 정규 분포와 비슷한 모양의 오차 밀도는 좋은 모델 성능을 나타냅니다.
5단계: 모델 예측 생성
이제 회귀 모델을 사용하여 예측을 실행하거나 이 모델의 새 버전을 만들어 표준 구축 프로세스로 훈련할 수 있습니다. 이 단계에서는 SageMaker Canvas를 사용하여 단일 데이터 세트와 대량 데이터 세트 모두에 대한 예측을 생성합니다.
예측 생성을 시작하려면 예측(Predict) 탭을 선택합니다.
- 분석(Analyze) 페이지 하단의 예측(Predict) 버튼을 선택하거나 예측(Predict) 탭을 선택합니다. 예측(Predict) 페이지에 배치 예측(Batch prediction)이 이미 선택되어 있습니다. 데이터 세트 선택(Select dataset)을 선택한 후 ConsolidatedShippingData 데이터 세트를 선택합니다. 실제 기계 학습 워크플로에서 이 데이터 세트는 훈련 데이터 세트와 별개여야 합니다. 하지만 편의상 여기서는 동일한 데이터 세트를 사용하여 SageMaker Canvas가 예측을 생성하는 방법을 보여줍니다. 예측 생성(Generate predictions)을 선택합니다.
- 몇 초 후 예측이 완료됩니다. 예측 데이터 세트 이름 또는 상태를 마우스 포인터로 가리켜 예측의 미리 보기를 보려면 옵션 아이콘을 선택하고 미리 보기(Preview)를 선택합니다. 다운로드(Download)를 선택하여 전체 출력이 포함된 CSV 파일을 다운로드할 수도 있습니다. SageMaker Canvas가 각 데이터 행에 대한 예측을 반환합니다. 이 자습서에서 가장 중요한 특성은 ExpectedShippingDays 특성입니다. 시각적 비교를 위해 예측 결과 옆에도 이 특성의 값이 표시됩니다.
- 예측(Predict) 페이지에서 단일 예측(Single prediction)을 선택하여 단일 샘플에 대한 예측을 생성할 수 있습니다. SageMaker Canvas는 모델에 사용되는 각 입력 변수의 값을 수동으로 입력할 수 있는 인터페이스를 제공합니다. 이 분석 유형은 하나 이상의 변수 값이 증가하거나 감소할 때 예측이 어떻게 바뀌는지 확인하고자 하는 예상 시나리오에 적합합니다. SageMaker Canvas는 단일 열 값 세트의 예측과 함께 개별 특성의 중요도를 제공합니다. 이는 현재 샘플 예측에 가장 큰 영향을 미치는 열을 나타냅니다.
이 자습서에서는 표준 모델을 다루지 않습니다. 하지만 이 모드의 훈련 방법은 이 자습서에서 설명하는 단계와 유사합니다.
먼저 ShippingForecastStandardModel과 같은 모델의 이름을 지정합니다. 또한 구축(Build) 탭에서 빠른 모델(Quick Model) 대신 표준 모델(Standard Model)을 선택합니다. 그리고 나머지 단계를 계속 진행합니다. 표준 구축 모드는 훈련된 모델을 SageMaker Studio를 통해 데이터 사이언티스트와 공유할 수 있는 추가 기능을 제공하는 데 유용합니다. 이를 통해 협업, 빠른 모델 세분화 및 반복 작업을 수행할 수 있습니다. 모델 훈련이 완료되면 분석(Analyze) 탭에서 공유 옵션을 사용할 수 있습니다.
6단계: AWS 리소스 정리
사용하지 않는 리소스를 삭제하여 의도하지 않은 비용이 부과되지 않도록 하는 것이 모범 사례입니다.
S3 콘솔로 이동하여 버킷(Buckets) 메뉴 옵션을 선택합니다.
테스트 버킷에서 테스트 객체를 삭제합니다. 이 자습서에서 작업에 사용한 버킷의 이름을 선택합니다. 테스트 객체 이름 왼쪽의 확인란을 선택한 후 삭제(Delete) 버튼을 선택합니다. 객체 삭제(Delete objects) 페이지에서 삭제할 객체를 올바르게 선택했는지 확인하고 이 객체를 영구적으로 삭제(Permanently delete objects) 확인 입력란에 영구 삭제(permanently delete)를 입력합니다. 그런 다음 객체 삭제(Delete object) 버튼을 선택하여 계속 진행합니다. 그러면 삭제 성공 여부를 나타내는 배너가 표시됩니다.
SageMaker Canvas 기본 페이지에서 모델(Models)을 선택합니다. 오른쪽 창에 구축한 모델이 표시됩니다. 보기(View) 옵션 오른쪽에 있는 세로 줄임표를 선택하고 모델 삭제(Delete model)를 선택합니다.
SageMaker Studio 콘솔에서 studio-user를 선택하고 앱(Apps) 아래에 나열된 각 앱에 대해 앱 삭제(Delete app)를 선택합니다. 화면의 지시에 따라 삭제 작업 의사를 확인합니다. 상태가 삭제됨(Deleted)으로 표시될 때까지 기다립니다.
1단계에서 기존 SageMaker Studio 도메인을 사용한 경우 6단계로 건너뛰고 결론 섹션으로 바로 진행합니다.
1단계에서 CloudFormation 템플릿을 실행하여 새 SageMaker Studio 도메인을 생성한 경우 다음 단계로 계속하여 CloudFormation 템플릿으로 생성된 도메인, 사용자 및 리소스를 삭제합니다.
CloudFormation 콘솔을 열려면 AWS Console 검색 창에 CloudFormation을 입력하고 검색 결과에서 CloudFormation을 선택합니다.
CloudFormation 창에서 스택(Stacks)을 선택합니다. 상태 드롭다운 목록에서 활성(Active)을 선택합니다. 스택 이름(Stack name) 아래에서 CFN-SM-IM-Lambda-Catalog를 선택하여 스택 세부 정보 페이지를 엽니다.
CFN-SM-IM-Lambda-Catalog 스택 세부 정보 페이지에서 삭제(Delete)를 선택하여 스택과 함께 1단계에서 생성된 리소스를 삭제합니다.
결론
축하합니다! 코드 작성 없이 기계 학습 예측 생성 자습서를 완료하셨습니다.
Amazon SageMaker Canvas를 사용하여 Amazon S3에서 기계 학습을 위한 데이터 세트를 가져와 준비하고, 대상 변수를 선택하고, 빠른 구축 모드를 사용하여 기계 학습 모델을 구축하고, 시각적 인터페이스를 사용했습니다.
다음 단계
기계 학습 모델 훈련
기계 학습을 위해 훈련 데이터 레이블 지정