{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [모듈 3.1] HPO 스텝 개발 (Tunning Step)\n", "\n", "이 노트북은 아래와 같은 목차로 진행 됩니다. 전체를 모두 실행시에 완료 시간은 약 5분-10분 소요 됩니다.\n", "\n", "- 1. 모델 튜닝 개요\n", "- 2. 기본 라이브러리 로딩\n", "- 3. 훈련에 사용할 전처리된 파일을 확인\n", "- 4. 모델 빌딩 파이프라인 의 스텝(Step) 생성\n", "- 5. 파리마터, 단계, 조건을 조합하여 최종 파이프라인 정의 및 실행\n", "- 6. HPO 잡 실행 확인 하기\n", " \n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. 모델 튜닝 개요\n", "\n", "하이퍼파라미터 튜닝이라고도 하는 Amazon SageMaker 자동 모델 튜닝은 사용자가 지정한 알고리즘과 다양한 하이퍼파라미터를 사용하여 데이터 세트에 대해 여러 훈련 작업을 실행하여 최적의 모델 버전을 찾습니다. 그런 다음 선택한 지표로 측정된 값에 따라 최적의 성능을 보여준 모델을 만든 하이퍼파라미터 값을 선택합니다.\n", "\n", "\n", "\n", "- 참고\n", " - 개발자 가이드: [SageMaker 로 자동 모델 튜닝 수행](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/automatic-model-tuning.html)\n", " - 공식 세이지 메이커의 샘플 입니다. --> [HPO 시작 코드](https://github.com/aws/amazon-sagemaker-examples/blob/master/hyperparameter_tuning/xgboost_direct_marketing/hpo_xgboost_direct_marketing_sagemaker_python_sdk.ipynb)\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. 기본 라이브러리 로딩\n", "\n", "세이지 메이커 관련 라이브러리를 로딩 합니다." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import boto3\n", "import sagemaker\n", "import pandas as pd\n", "import os\n", "\n", "#region = boto3.Session().region_name\n", "sagemaker_session = sagemaker.session.Session()\n", "role = sagemaker.get_execution_role()\n", "sm_client = boto3.client(\"sagemaker\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 노트북 변수 로딩\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%store -r" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. 훈련에 사용할 전처리된 파일을 확인\n", "이후에 훈련에서 사용할 S3의 저장된 전처리 데이터를 확인 합니다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2022-03-21 12:16:19 682602 sagemaker-webinar-pipeline-advanced/preporc/train.csv\n" ] } ], "source": [ "! aws s3 ls {train_preproc_data_uri} --recursive" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "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", "\n", " | alpha | \n", "eta | \n", "max_depth | \n", "min_child_weight | \n", "TrainingJobName | \n", "TrainingJobStatus | \n", "FinalObjectiveValue | \n", "TrainingStartTime | \n", "TrainingEndTime | \n", "TrainingElapsedTimeSeconds | \n", "
---|---|---|---|---|---|---|---|---|---|---|
2 | \n", "1.751044 | \n", "0.904553 | \n", "4.0 | \n", "8.499031 | \n", "16u4wi1cvgf6-Fraud-A-cLCKTDpYO0-003-d6725723 | \n", "Completed | \n", "0.8003 | \n", "2022-03-21 12:28:15+00:00 | \n", "2022-03-21 12:29:52+00:00 | \n", "97.0 | \n", "
0 | \n", "1.149466 | \n", "0.732784 | \n", "6.0 | \n", "8.921073 | \n", "16u4wi1cvgf6-Fraud-A-cLCKTDpYO0-005-336f104a | \n", "Completed | \n", "0.7910 | \n", "2022-03-21 12:28:24+00:00 | \n", "2022-03-21 12:29:47+00:00 | \n", "83.0 | \n", "
1 | \n", "1.887661 | \n", "0.732418 | \n", "4.0 | \n", "4.856367 | \n", "16u4wi1cvgf6-Fraud-A-cLCKTDpYO0-004-1c6910eb | \n", "Completed | \n", "0.7905 | \n", "2022-03-21 12:28:22+00:00 | \n", "2022-03-21 12:29:44+00:00 | \n", "82.0 | \n", "
3 | \n", "1.965165 | \n", "0.397501 | \n", "6.0 | \n", "6.336754 | \n", "16u4wi1cvgf6-Fraud-A-cLCKTDpYO0-002-50212b84 | \n", "Completed | \n", "0.7887 | \n", "2022-03-21 12:28:22+00:00 | \n", "2022-03-21 12:29:58+00:00 | \n", "96.0 | \n", "
4 | \n", "0.341912 | \n", "0.571159 | \n", "10.0 | \n", "1.933035 | \n", "16u4wi1cvgf6-Fraud-A-cLCKTDpYO0-001-e3a8d495 | \n", "Completed | \n", "0.7838 | \n", "2022-03-21 12:28:27+00:00 | \n", "2022-03-21 12:29:49+00:00 | \n", "82.0 | \n", "