AWS 활용 튜토리얼
AI/ML on AWS
AI/ML on AWS
  • AI/ML on AWS
  • AWS를 활용한 AI/ML 기초
    • AI/ML on AWS 기초
      • AWS의 AI/ML 서비스들
      • AWS에서 GPU 리소스 활용하기
      • Machine Learning 을 위한 GPU 선택 방법과 비용 최적화
    • SageMaker 이론과 실습
  • SageMaker Immersion Day
    • SageMaker Immersion Day 소개
    • SageMaker Immersion Day 실습
  • Low-code on SageMaker
    • AWS에서 Low-code ML을 활용하는 방법
    • Low-code ML with SageMaker 실습
  • AI/ML을 학습 시 도움될 만한 리소스들
    • SageMaker 학습에 도움되는 리소스들
    • 머신러닝/딥러닝 학습에 도움되는 리소스들
  • NO-CODE ON SAGEMAKER
    • SageMaker Canvas
    • No-Code Computer Vision
      • 사전 훈련된 컴퓨터 비전 모델 사용하기
      • 커스텀 컴퓨터 비전 모델 만들기
    • Use case labs
      • Diabetic Patient Readmission Prediction (Healthcare & Life Sciences)
Powered by GitBook
On this page
  • 소개
  • 당뇨병 재입원에 관해서
  • 모델 만들기와 데이터셋 가져오기
  • Amazon S3 버킷에 데이터 세트 업로드
  • S3에서 가져온 데이터를 Canvas에서 데이터셋에 등록하기
  • SageMaker Canvas에서 모델 만들기
  • 빌드 및 모델 훈련
  • 모델을 사용하여 예측 생성
  1. NO-CODE ON SAGEMAKER
  2. Use case labs

Diabetic Patient Readmission Prediction (Healthcare & Life Sciences)

이 실습에서는 Amazon Sagemaker Canvas를 사용하여 한 줄의 코드도 작성하지 않고도 병원 재입원을 예측하는 머신 러닝(ML)을 구축하는 방법을 배웁니다.

소개

이 실습에서는 Amazon Sagemaker Canvas를 사용하여 환자 및 병원 결과를 나타내는 과거 데이터 세트를 분석하고, 한 줄의 코드도 작성하지 않고도 병원 재입원을 예측하는 머신 러닝(ML)을 구축하는 방법을 배웁니다. 이 모델은 고위험 당뇨병 환자가 이전에 병원에 입원한 후 30일 이내에 재입원할 가능성이 있는지, 아니면 30일 후에 재입원할 가능성이 있는지 예측해야 합니다. 이 사용 사례에서는 여러 결과를 다루기 때문에 이 ML 문제를 "다중 클래스 분류"라고 합니다.

당뇨병 재입원에 관해서

병원 재입원은 총 의료비 지출의 중요한 원인이며 의료 서비스의 질을 나타내는 새로운 지표로 떠오르고 있습니다. 당뇨병은 다른 만성 질환과 마찬가지로 병원 재입원 위험 증가와 관련이 있습니다.

이 실습에서 사용할 샘플 데이터 집합은 "1999-2008년 미국 130개 병원 당뇨병 데이터 집합"의 샘플 버전입니다. (Beata Strack, Jonathan P. DeShazo, Chris Gennings, Juan L. Olmo, Sebastian Ventura, Krzysztof J. Cios 및 John N. Clore, "HbA1c 측정이 병원 재입원율에 미치는 영향: 70,000 개의 임상 데이터베이스 환자 기록 분석," BioMed Research International, 2014 년, 기사 ID 781670, 11 페이지, 2014. ). 여기에는 환자 및 병원 결과와 함께 15개 이상의 특징을 포함한 과거 데이터가 포함되어 있습니다. 데이터 세트에는 약 69,500개의 행이 포함되어 있으며 데이터 스키마는 다음과 같습니다:

Column Name
Data type
Data type

race

STRING

Caucasian, Asian, African American or Hispanic

time_in_hospital

INT

Number of days between admission and discharge a.k.a. length of stay

number_outpatient

INT

Number of outpatient visits of the patient in a given year before the encounter

number_inpatient

INT

Number of inpatient visits of the patient in a given year before the encounter

number_emergency

INT

Number of emergency visits of the patient in a given year before the encounter

number_diagnoses

INT

Number of diagnoses entered in to the system

num_procedures

INT

Number of procedures (other than lab tests) performed during the encounter

num_medications

INT

Number of distinct generic medicines administrated during the encounter

num_lab_procedures

INT

Number of lab tests performed during the encounter

max_glu_serum

STRING

Indicates the range of result or if the test was not taken. Values: ">200", ">300", "normal" and "none" - if not measured

gender

STRING

Values: "Male", "Female" and "Unknown/Invalid"

diabetes_med

INT

Indicates if any diabetes medication was prescribed.

change

STRING

Indicates if there was a change in diabetic medications (ether dosage or generic name). Values: "change" or "no change"

age

INT

Age of patient at the time of encounter

a1c_result

STRING

Indicates range of the result of if it was not taken. Values: ">8", ">7", "normal" and "none"

readmitted

STRING

Days to inpatient readmission. Values: "<30" if patient readmitted less than 30 days, ">30" if patient readmitted after 30 days of encounter, "no" for no record of readmission

모델 만들기와 데이터셋 가져오기

Amazon S3 버킷에 데이터 세트 업로드

AWS 관리 콘솔에서 Amazon S3로 이동하여 "sagemaker-studio-*" 폴더 또는 세이지메이커 캔버스에서 액세스할 수 있는 모든 폴더를 엽니다.

S3 콘솔에서 sagemaker-studio-* 버킷을 클릭합니다.

S3에서 가져온 데이터를 Canvas에서 데이터셋에 등록하기

SageMaker Canvas에서 모델 만들기

이제 왼쪽 메뉴의 두 번째 버튼을 클릭하여 웹 페이지의 모델 섹션으로 돌아가 Amazon SageMaker Canvas로 돌아가 보겠습니다.

새 모델을 클릭하고 모델 이름을 입력합니다.

모델 보기에는 모델을 만들고 예측을 생성하는 데 사용하는 네 가지 단계에 해당하는 네 개의 탭이 표시됩니다: 선택, 작성, 분석, 예측입니다. 첫 번째 탭인 선택에서 라디오 단추를 클릭하여 이전에 업로드한 diabetes-readmission.csv 파일로부터 만들었던 Diabetes 라고 명명한 데이터 집합을 S3로 가져옵니다.

예측하고자 하는 컬럼을 선택합니다. 여기서는 readmitted 입니다.

Amazon Canvas는 이것이 3+ 카테고리 예측 문제임을 자동으로 감지합니다. 잘못된 모델 유형이 감지된 경우 화면 중앙의 유형 변경 링크를 사용하여 수동으로 변경할 수 있습니다. Canvas는 자동으로 빌드 단계로 이동합니다. 이 탭에서 대상 열(이 경우 재입원)을 선택합니다. 이 대상은 환자가 이전 진료 후 30일 이내에 재입원했는지 또는 30일이 지나거나 기록이 없는지 여부를 나타냅니다(값: "아니요", "<30" 및 ">30").]

예측에 사용하지 않으려면 왼쪽 확인란을 선택 취소하여 일부 열을 삭제할 수도 있습니다. 각 열에 대한 설명은 아래에 나와 있습니다. 예를 들어 a1c_result, max_glu_serum, gender, num_procedures, number_outpatient 열은 영향력이 낮으므로 삭제하겠습니다.

열 머리글을 클릭하면 그리드 보기로 이동하여 각 열을 더 자세히 살펴볼 수도 있습니다. 통계 및 분포에 관한 데이터가 포함된 열 세부 정보가 열립니다.

빌드 및 모델 훈련

데이터 집합을 분석하고 영향에 따라 열을 수정한 후에는 빌드 모드를 선택할 수 있습니다. 빠르게 빌드 할 수 있지만 정확도가 떨어지는 'Quick build' 를 선택하거나 더 오래 걸리지만 이보다는 정확할 수 있는 'Standard Build' 중 하나를 선택하여 빌드할 수 있습니다. Quick build 모델은 공유할 수 없다는 점에 유의하세요. 또한 주어진 다중 클래스 문제의 경우 준 Standard Build만 실행할 수 있습니다.

SageMaker Canvas는 표준 모델을 구축할 때 어느 정도의 전처리 및 데이터 밸런싱을 수행합니다. SageMaker 캔버스에서 사용하는 알고리즘 중 일부는 이미 일부 하이퍼 파라미터를 통해 불균형한 데이터를 처리합니다.

이제 약 2시간을 기다립니다. 이 시간은 사용자마다 다를 수 있습니다. 완료되면 캔버스는 자동으로 분석 탭으로 이동하여 빠른 학습의 결과를 보여줍니다. 빠른 빌드를 사용하여 수행한 분석 결과, 모델이 61%의 확률로 올바른 결과를 예측할 수 있는 것으로 추정됩니다.

재입원 가능성이 높은 환자와 모델이 이러한 환자 하위 집합을 얼마나 잘 예측하는지에 가장 관심이 있습니다. 결과를 자세히 살펴보려면 오른쪽의 Advanced metrics를 클릭하면 됩니다.

그러면 결과를 더 자세히 살펴볼 수 있는 매트릭스가 표시됩니다. 머신 러닝에서는 이를 confusion matrix이라고 합니다.

'not getting readmitted' 클래스의 경우 오른쪽 패널에서 클래스 no를 선택합니다.

머신 러닝에서 모델의 정확도는 올바른 예측 수를 총 예측 수로 나눈 값으로 정의됩니다. 파란색 상자는 알려진 결과가 있는 테스트 데이터의 하위 집합에 대해 모델이 수행한 올바른 예측을 나타냅니다. 이 경우 전체 13915개 중 8488개의 예측이 정확하여 정확도가 60.999%입니다. Average accuracy

그러나 모델이 환자의 재입원 사례를 얼마나 잘 예측했는지 측정하는 데 더 관심이 있습니다. 이 모델은 8020명의 고객이 재입원하지 않을 것이라고 정확하게 예측했습니다(True Positive - TP). 그러나 실제로는 4977명의 고객이 재입원할 것으로 잘못 예측했습니다(False negatives - FN). 머신 러닝에서 이를 측정하는 데 사용되는 비율은 TP / (TP + FN)입니다. 이를 Recall이라고 합니다. 고급 메트릭 페이지에서는 이 모델에 대한 Recall 점수를 35.716%로 계산하여 표시합니다.

모델을 사용하여 예측 생성

페이지 하단의 예측 버튼을 클릭하여 이 모델을 사용하여 몇 가지 예측을 실행할 수 있습니다. 이제 모델이 학습되었으므로 몇 가지 예측에 사용해 보겠습니다. 분석 페이지 하단에서 예측을 선택하거나 예측 탭을 선택합니다.

예측은 Batch와 Single 모드가 있습니다.

Batch prediction 모드에서는 Manual과 Automatic이 있습니다.

여기서는 Batch prediction과 Manual을 선택합니다.

이제 데이터 집합 선택을 선택하고 diabetes-readmission.csv으로부터 생성했던 Diabetes 데이터셋을 선택합니다. 그런 다음 페이지 하단에서 예측 생성을 선택합니다. 캔버스는 이 데이터 집합을 사용하여 예측을 생성합니다. 일반적으로 훈련과 테스트에 동일한 데이터 집합을 사용하지 않는 것이 좋지만, 단순성을 위해 동일한 데이터 집합을 사용합니다.

몇 초 후 예측이 완료됩니다. 눈 아이콘을 클릭하여 마우스 커서를 가져가 예측의 미리보기를 보거나 다운로드 버튼을 클릭하여 전체 출력이 포함된 CSV 파일을 다운로드할 수 있습니다.

PreviousUse case labs

Last updated 1 year ago

첫번째 단계는 데이터를 다운로드 하는 것입니다. 에서 데이터를 다운로드 받으세요.

Validate data 기능은 데이터에서 기본적인 것들을 자동으로 검사해줍니다. 예를들어 카테고리 예측 모델 형식을 사용하는 경우 타겟 컬럼에 너무 많은 예측해야할 카테고리가 존재하거나 타겟 컬럼의 값이 비어있거나 잘못된 경우가 그 예입니다. 보다 자세한 사항은 를 참고해보세요.

Screenshot 2023-07-27 at 9.53.52 AM.png
Screenshot 2023-07-27 at 9.57.32 AM.png

분석의 점수 부분으로 이동하면 실제 값에 대한 예측 값의 분포를 나타내는 플롯을 볼 수 있습니다. 대부분의 고객이 재입장할 가능성이 낮다는 것을 알 수 있습니다. 캔버스가 SHAP 기준선을 사용하여 머신 러닝에 설명 가능성을 제공하는 방법에 대해 자세히 알아보려면, 캔버스 설명서의 "" 섹션과 Baseline 를 참조하세요.

자동 일괄 예측은 특정 데이터 세트가 업데이트될 때마다 일괄 예측을 실행하는 구성을 설정하는 경우입니다. 예를 들어, 재고 데이터의 SageMaker Canvas 데이터셋에 대한 주간 업데이트를 구성한 경우 데이터 세트를 업데이트할 때마다 실행되는 자동 배치 예측을 설정할 수 있습니다. ()

이곳
다음 블로그
Amazon SageMaker 캔버스에서 모델 성능 평가하기
설명 가능성을 위한 SHAP
참고
참고자료