이번 실습은 데이터의 특성에 맞는 전처리보다는 SageMaker Data Wrangler 사용법에 초점을 맞춰 정리해 보았다.
SageMaker Studio에는 모델 개발, 학습, 배포를 지원하는 다양한 기능이 있는데, 그중에서도 Data Wrangler는 데이터 전처리를 돕는 대표적인 도구다.
결론부터 말하면, Data Wrangler는 복잡한 코드를 작성할 필요 없이 클릭만으로 대부분의 데이터 전처리를 처리를 할 수 있데 해준다.
데이터를 불러오고 정리하며, 탐색과 시각화까지 한 번에 진행할 수 있어 머신러닝 데이터 준비 단계에서 도움이 된다.
- S3, Athena, Redshift 등 다양한 데이터 소스와 연동
SageMaker Data Wrangler는 여러 데이터 저장소와 쉽게 연결할 수 있다. 예를 들어 Amazon S3에 저장된 대용량 데이터, Athena를 통한 쿼리 결과, Redshift에 있는 분석 데이터 등 다양한 소스에서 데이터를 바로 불러와 사용할 수 있어 편리하다. - 자동 데이터 품질 검사 및 이상치 탐지
데이터를 불러오면, 품질 검사가 자동으로 수행되어 결측치나 이상값 같은 문제를 빠르게 찾아준다. - 손쉽게 활용 가능한 시각화 템플릿 제공
제공되는 시각화 도구를 이용하여 데이터 분포나 상관관계 같은 중요한 특징들을 직관적으로 확인할 수 있다. - 300개 이상의 변환 기능과 사용자 정의 변환 지원
범주형 데이터 인코딩, 스케일링, 파생 변수 생성 등 머신러닝에 필요한 데이터 전처리 기능이 300개 이상 기본 제공된다. 더 세밀한 작업이 필요하다면 사용자가 직접 변환 규칙을 정의할 수도 있다. - 모델 성능에 미치는 영향을 빠르게 테스트
전처리된 데이터가 실제 모델의 성능에 어떤 영향을 주는지 빠르게 확인할 수 있다. 이를 통해 모델 학습 전에 문제가 될 수 있는 부분을 초기에 발견할 수 있다. - 데이터 준비 과정 자동화
자주 반복되는 데이터 준비 단계를 자동화할 수 있어, 매번 똑같은 작업을 다시 하지 않아도 된다.

이번 실습의 아키텍처는 다음과 같다. 데이터를 s3에서 가져와 data wrangler에서 전처리한 후, 변형된 데이터를 다시 s3 에 저장하는 작업이다.

실습을 시작하기 위해 , Amazon SageMaker AI console 로 들어가준다. 머신러닝 실습을 진행하다 보면 가장 먼저 고민하게 되는 부분이 바로 데이터 전처리와 모델 개발 환경이다. Amazon SageMaker에는 이를 도와주는 여러 도구들이 있는데, 그중에서도 많이 사용하는 것이 Studio와 Canvas이다.
SageMaker Studio는 데이터 과학자와 머신러닝 엔지니어를 위한 통합 개발 환경(IDE)이다. Jupyter 기반으로 동작하기 때문에 익숙한 코드 환경에서 데이터 분석, 모델 학습, 배포까지 한 번에 처리할 수 있다. 또한 Data Wrangler, Clarify, Autopilot 같은 다양한 기능이 통합되어 있어, 전문적으로 머신러닝 워크플로우를 설계할 때 도움이 되는 도구이다.
반면에, SageMaker Canvas는 비즈니스 분석가나 비개발자도 쉽게 활용할 수 있는 노코드 환경이다. 데이터를 업로드하고 클릭 몇 번만으로 모델을 만들고 예측을 실행할 수 있다. 최근에는 Canvas 안에서도 일부 Data Wrangler 기능이 지원되어 간단한 데이터 탐색과 변환까지 가능해졌다.
즉, Studio는 전문가용 코드 중심 환경, Canvas는 직관적인 인터페이스로 빠르게 모델을 만들고 싶은 사용자에게 적합한 환경이라고 정리할 수 있다.
여기서 한 가지 중요한 점은, Data Wrangler를 실습하려면 사전에 SageMaker Studio 도메인을 생성해야 한다는 것이다.
Data Wrangler뿐 아니라 Canvas와 같은 SageMaker의 다양한 애플리케이션들은 모두 SageMaker Studio 도메인 안에서 실행되므로, 실습을 시작하려면 도메인을 먼저 생성해야 한다.
이 외에도 SageMaker에는 학습 로그와 성능 지표를 시각화해주는 TensorBoard, 리소스 사용을 분석하고 병목 현상을 찾아주는 Profiler, 관리형 Jupyter Notebook 환경을 제공하는 Notebooks, 그리고 외부 파트너 솔루션을 바로 연동할 수 있는 Partner AI Apps 같은 다양한 도구들이 있다.

도메인을 생성한 후, canvas 로 들어가면 왼쪽과 같은 화면을 볼 수있고 Data Wrangler로 들어간다.
태스크 1: SageMaker Data Wrangler를 사용하여 데이터 가져오기, 시각화 및 예비 분석 수행



AWS Data Wrangler에서 Import and prepare를 누르면 다룰 데이터 형태를 정할 수 있다. 여기서 Tabular를 선택하면 CSV,Parquet 같은 표 형태 데이터를 불러올 수 있고 이후 데이터 소스에서 Amazon S3를 선택하면 내 S3 버킷과 경로가 표시되고, 필요한 파일이나 폴더를 선택하면 된다.

데이터를 import 한 후, 어떤 데이터 처리도 하지 않은 data flow 차트 화면이다. 처음에 이게 뭔가 했는데 처리 하나둘씩 하고 보니까 처리 과정들로 flow 가 자동 생성되는 것을 알 수 있었다.
태스크 2: 데이터 분석 및 시각화

먼저, 데이터 구조와 품질에 대한 인사이트를 확인해보자!
SageMaker Data Wrangler에서는 EDA을 빠르게 수행할 수 있도록 자동 분석 리포트를 생성할 수 있다. Analysis 탭으로 가서, Data Quality and Insights Report를 생성하는 옵션을 선택한다. 리포트를 생성할 때는 분석 유형, 예측 대상 컬럼, 문제 유형(분류/회귀), 샘플링 여부 등을 설정한다. Create를 클릭하면, 자동으로 데이터의 품질과 분포, 이상치, 누락값, 타깃 예측 가능성 등을 요약한 보고서가 생성된다. 다운도 받을 수 있고 일부를 보면 아래와 같다.


위 내용을 보면,
먼저 이상치 탐지기능에서는 Isolation Forest 알고리즘을 활용해 데이터 안에서 비정상적이거나 드물게 나타나는 값을 찾아준다. 예를 들어 잘못 수집된 값이나 극단적인 수치 같은 것들을 빠르게 식별할 수 있다.
다음으로는 Target 컬럼 분석에서는 우리가 예측하고자 하는 Target에 대해 클래스 개수, 결측치 비율, 값의 분포 등을 정리해 보여주기 때문에, 학습 목표 데이터가 어떤 상태인지 직관적으로 이해할 수 있다.
또한 Quick model 결과를 통해 간단한 모델을 학습해보고 성능 지표를 확인할 수 있다. 데이터셋을 학습용과 검증용으로 나누어 Accuracy, ROC-AUC, Precision, Recall, F1 Score와 같은 핵심 지표를 계산해주는데, 이를 통해 데이터가 예측에 적합한지 빠르게 가늠할 수 있다.
이 외에도 보고서에는 데이터셋 요약과 피쳐 중요도같은 유용한 분석이 포함되어있다.

데이터 시각화를 위해 Data 탭으로 가서 보면, 데이터를 코드를 통해 불러와서 보는 것보다 직관적으로 데이터의 특징을 파악할 수 있었다.
1) 히스토그램 생성

먼저 Data Quality and Insights Report 탭 옆에 있는 + 아이콘을 눌러 새로운 분석을 생성한다. 분석 유형으로 Histogram을 선택하고, X축은 income, 색상 구분은 race, Facet은 sex로 설정한다. 이렇게 하면 수입 분포를 인종별 색상으로 구분하고, 성별에 따라 나눠서 비교할 수 있는 히스토그램을 확인할 수 있다.
2) 대상 누출(Targent Leakage)

다음은 대상 누출을 시각화를 해보자!
대상 누출이란, 모델이 예측해야 할 레이블과 직접적인 상관관계가 있는 값이 데이터에 포함되어 있어 실제 상황에서는 사용할 수 없는 경우를 말한다. 예를 들어, 예측 대상 열을 대신하는 프록시 열(예측해야 할 값과 사실상 같은 의미를 갖거나, 너무 직접적으로 관련있는 컬럼 ) 이 데이터셋에 들어가 있는 경우가 대표적이다.
SageMaker Data Wrangler는 교차 검증을 통해 각 열의 ROC 지표를 계산하고, 이를 바탕으로 대상 누출 가능성이 있는 피처를 리포트로 보여준다.
그래프 결과를 보면 모든 피처가 Safe 범주로 분류되어, 타깃 예측에 활용해도 무방하다고 볼 수 있을 것 같다. 하지만 fnlwgt, native_country는 점수가 0.5에 가까워 타깃과의 상관성이 낮아, 모델 성능에 기여를 하지 못할 가능성이 있을 것으로 예상할 수도 있다.
태스크 3: 데이터 변환 수행 및 데이터세트 내보내기

이제 데이터 탭에서 다양한 전처리를 수행해보자!
예를 들어, 불필요한 열 삭제의 경우 Data Wrangler에서 Manage columns > Drop column 기능을 사용하면 fnlwgt, native_country와 같이 예측에 도움이 되지 않는 열을 간단히 제거할 수 있다. 이런식으로 코드 작성 없이 클릭 몇 번으로 학습에 불필요한 데이터를 정리할 수 있다.

이 외에도 누락값 및 중복 레코드 제거, 문자열 공백 처리, 이상치 처리, 대상 열 변환, 서수 인코딩과 원-핫 인코딩, 대상 열 이동과 같은 전처리 작업들을 모두 Data Wrangler에서 직관적으로 처리할 수 있다.

데이터 전처리를 수행한 후에 Data flow 탭에서 확인해보면, 내가 수행했던 과정을 한눈에 볼 수 있다.

SageMaker Data Wrangler에서 데이터를 전처리한 후, 이를 Amazon S3에 저장하는 과정을 설정하는 방법은 다음과 같다.
먼저, 변환 목록에서 내보내고 싶은 데이터셋 오른쪽에 있는 세로 줄임표(⋮) 아이콘을 선택한다. 그런 다음 Export > Add destination을 클릭하여 내보내기 위치를 설정하는 단계로 이동한다.
설정 창에서는 데이터셋 이름, S3 저장 경로, 파티션 수 등을 지정할 수 있다.
S3 경로는 버킷 탐색기를 통해 직접 선택할 수 있으며, 예를 들어 scripts/data/train, scripts/data/test, scripts/data/validation과 같은 폴더를 각각 지정하면 데이터가 목적에 맞게 저장된다.
내보내기 설정이 끝나면 Add and export를 눌러 작업을 시작한다.
이후 자동 작업 설정(Auto job configuration) 옵션을 끄고, 수동으로 작업 이름을 지정한 뒤 Export 버튼을 누르면 데이터가 S3에 저장된다.

이 과정을 통해 이미 나누어져 있는 train/test/validation 데이터를 각각 원하는 경로에 저장할 수 있다. 저장된 데이터는 이후 모델 학습에 바로 활용할 수 있다. 모든 과정 끝나고 data flow 를 보면, 위와 같이 내가 한 전처리를 흐름에 따라 한눈에 볼 수도 있다. 코드가 길어지면 주석이 있어도 정리 안되는 느낌이 들면서 위에서 했던 과정들이 헷갈리기도 하는데, 이렇게 모든 flow를 깔끔하게 알아서 정리해주는 점이 장점인 것 같다.
'AWS' 카테고리의 다른 글
| [AWS] Amazon SageMaker 사용해 모델 튜닝 및 하이퍼파라미터 최적화하기 (0) | 2025.08.24 |
|---|---|
| [AWS] Amazon SageMaker를 사용한 모델 학습 및 리포트 해석하기 (0) | 2025.08.24 |
| [AWS] ML 수명 주기(ML Lifecycle)와 MLflow (0) | 2025.08.01 |
| [AWS] Amazon SageMaker AI (0) | 2025.08.01 |
| [AWS] AWS Certified AI Practitioner 취득 후기 (4) | 2025.06.22 |