{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [모듈 3.3] 모델 훈련 스텝 개발 (SageMaker Model Building Pipeline 훈련 스텝)\n", "\n", "이 노트북은 아래와 같은 목차로 진행 됩니다. 전체를 모두 실행시에 완료 시간은 약 5분-10분 소요 됩니다.\n", "\n", "- 1. 모델 훈련 스텝 개요\n", "- 2. 기본 라이브러리 로딩\n", "- 3. 훈련에 사용할 전처리된 파일을 확인\n", "- 4. 모델 빌딩 파이프라인 의 스텝(Step) 생성\n", "- 5. 파리마터, 단계, 조건을 조합하여 최종 파이프라인 정의 및 실행\n", "- 6. 세이지 메이커 스튜디오에서 확인하기\n", "- 7. 모델 아티펙트 경로 추출\n", " \n", "---\n", "### 노트북 커널\n", "- 이 워크샵은 노트북 커널이 `conda_python3` 를 사용합니다. 다른 커널일 경우 변경 해주세요.\n", "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. 모델 훈련 스텝 개요\n", "- 모델 훈련 및 등록 단계의 개발자 가이드 \n", " - [모델 훈련 스텝](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/build-and-manage-steps.html#step-type-training)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. 기본 라이브러리 로딩\n", "\n", "세이지 메이커 관련 라이브러리를 로딩 합니다." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Stored variables and their in-db values:\n", "bucket -> 'sagemaker-us-east-1-051065130547'\n", "claims_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "customers_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "input_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "preprocessing_code -> 'src/preprocessing.py'\n", "project_prefix -> 'sagemaker-webinar-pipeline-base'\n", "test_preproc_dir_artifact -> 's3://sagemaker-us-east-1-051065130547/Fraud-Basic\n", "train_preproc_dir_artifact -> 's3://sagemaker-us-east-1-051065130547/Fraud-Basic\n" ] } ], "source": [ "import boto3\n", "import sagemaker\n", "import pandas as pd\n", "import os\n", "\n", "sagemaker_session = sagemaker.session.Session()\n", "role = sagemaker.get_execution_role()\n", "\n", "\n", "%store -r \n", "# 노트북에 저장되어 있는 변수를 보기 위해서는 주석을 제거하고 실행하시면 됩니다.\n", "%store " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. 훈련에 사용할 전처리된 파일을 확인\n", "이후에 훈련에서 사용할 S3의 저장된 전처리 데이터를 확인 합니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3.1. 데이터 세트 로딩\n", "- 이전 단계(전처리)에서 결과 파일을 로딩 합니다. 실제 훈련에 제공되는 데이터를 확인하기 위함 입니다.\n", "- 로딩힐 데이터 파일이 S3에 있는지 변수의 경로를 확인 합니다. (train_preproc_dir_artifact)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "train_preproc_dir_artifact_file: \n", " s3://sagemaker-us-east-1-051065130547/Fraud-Basic-Process-476f3bbbf986da0944ce9ca52d7c54b6/output/train/train.csv\n" ] }, { "data": { "text/html": [ "
\n", " | fraud | \n", "vehicle_claim | \n", "total_claim_amount | \n", "customer_age | \n", "months_as_customer | \n", "num_claims_past_year | \n", "num_insurers_past_5_years | \n", "policy_deductable | \n", "policy_annual_premium | \n", "customer_zip | \n", "... | \n", "collision_type_missing | \n", "incident_severity_Major | \n", "incident_severity_Minor | \n", "incident_severity_Totaled | \n", "authorities_contacted_Ambulance | \n", "authorities_contacted_Fire | \n", "authorities_contacted_None | \n", "authorities_contacted_Police | \n", "police_report_available_No | \n", "police_report_available_Yes | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "8913.668763 | \n", "80513.668763 | \n", "54 | \n", "94 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "99207 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
1 | \n", "0 | \n", "19746.724395 | \n", "26146.724395 | \n", "41 | \n", "165 | \n", "0 | \n", "1 | \n", "750 | \n", "2950 | \n", "95632 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
2 | \n", "0 | \n", "11652.969918 | \n", "22052.969918 | \n", "57 | \n", "155 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "93203 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
3 | \n", "0 | \n", "11260.930936 | \n", "115960.930936 | \n", "39 | \n", "80 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "85208 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
4 | \n", "0 | \n", "27987.704652 | \n", "31387.704652 | \n", "39 | \n", "60 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "91792 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
3995 | \n", "0 | \n", "18052.611626 | \n", "67152.611626 | \n", "42 | \n", "103 | \n", "1 | \n", "1 | \n", "750 | \n", "3000 | \n", "93654 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
3996 | \n", "0 | \n", "34949.202468 | \n", "51749.202468 | \n", "23 | \n", "6 | \n", "0 | \n", "3 | \n", "750 | \n", "3000 | \n", "94305 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "
3997 | \n", "0 | \n", "4063.701410 | \n", "9963.701410 | \n", "44 | \n", "35 | \n", "0 | \n", "2 | \n", "750 | \n", "2550 | \n", "95476 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
3998 | \n", "0 | \n", "17390.520451 | \n", "20490.520451 | \n", "22 | \n", "38 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "90680 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
3999 | \n", "0 | \n", "2501.811593 | \n", "8401.811593 | \n", "57 | \n", "74 | \n", "0 | \n", "1 | \n", "900 | \n", "2650 | \n", "98029 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
4000 rows × 59 columns
\n", "