Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- GNN
- CNN
- 자료구조
- Leet Code
- CS
- 데이터베이스
- 컴퓨터사이언스
- SQL
- mysql
- 데베
- code
- 대학생
- DS
- coding
- Mesh
- Data_Structure
- Database
- 코테
- 오블완
- 티스토리챌린지
- 개발자
- 데이터
- 컴퓨터공학
- LeetCode
- adaptive remeshing
- sort
- meshgraphnet
- Python
- 코딩테스트
- db
Archives
- Today
- Total
sy1214ei 님의 블로그
[MLOps] AutoML (MLJAR) 본문
- [실습 목표] MLJAR를 이용한 AutoML 프로세스 실습
- [실습 흐름]
1. 환경 세팅 (Python, MLJAR 설치)
2. 다양한 모델 학습 및 평가 (UCI Heart Disease 데이터셋 사용)
3. 결과 해석 및 시각화
- [데이터셋] UCI Heart Disease (새로운 데이터셋!)
- [목적] AutoML이 실제로 어떻게 동작하는지 경험해보기
- [환경 요구사항]
- Python 3.8 이상
- Ubuntu 20.04 이상
- HDD 여유공간 10GB 이상
- [AWS 주의사항]
- t2.micro 사용 시 EBS 볼륨 크기 늘려야 함
- [설치 명령어]
- pip install mljar-supervised
- [설치 소요 시간]
- 약 3~5분
- [문제] 기본 AWS EBS 용량(8GB) → AutoML에 부족
- [해결책] EBS 볼륨을 30GB로 확장
- [AWS 무료 정책] 12개월 동안 30GB까지 무료 사용 가능
- [확장 방법]
1. AWS Console 접속
2. EC2 → Volumes → 내 볼륨 선택
3. Modify → 크기 조정
- [주의사항] Volumes 상태가 "in-use"여야 함
########################################################
- [목적] EBS 볼륨이 EC2 인스턴스에 연결되어 있어야 확장 가능
- [확인 방법]
1. EC2 → Volumes 이동
2. 볼륨 상태(State)가 "in-use"인지 확인
- [주의사항] "available" 상태 볼륨은 사용 불가
- [이유] EBS 볼륨 크기를 늘린 뒤 -> OS 파티션도 확장해야 함
* EBS: AWS에서 제공하는 '가상 하드디스크' 서비스 (Elastic Block Store) -> EC2 인스턴스에 연결해서 쓰는 가상 SSD/HDD
- [확인 명령어]
- sudo lsblk (디스크/파티션 확인)
- [확장 명령어]
- sudo growpart [디스크 이름] [파티션 번호]
- [예시]
- sudo growpart /dev/xvda 1
- [이유] 파티션 확장 후 파일 시스템도 확장해야 새 공간 사용 가능
- [파일 시스템 타입 확인]
- 명령어: df -hT
- [파일 시스템 확장 명령어]
- ext4: sudo resize2fs /dev/xvda1
- xfs: sudo xfs_growfs -d /
- [스토리지 확장 절차]
1. AWS Console: 볼륨 크기 변경
2. EC2: growpart로 파티션 확장
3. df -hT로 파일 시스템 종류 확인
4. 파일 시스템 확장 (resize2fs 또는 xfs_growfs)
- [AutoML 실습 흐름]
1. 데이터 준비 (CSV 읽기, 전처리)
2. AutoML 설정 (AutoML 객체 생성, 모드 설정)
3. AutoML 실행 (fit 호출, 다양한 모델 학습)
4. 최적 모델로 예측 (predict 호출)
- [사용 라이브러리]
- pandas, mljar-supervised
- [결과]
- artifacts 폴더에 결과 저장

- [AutoML이 사용하는 알고리즘]
- Baseline, Linear, Decision Tree, Random Forest, XGBoost, Neural Network
- [AutoML 단계(steps)]
- simple_algorithms → default_algorithms → ensemble
- [로그 예시]
- 각 모델의 logloss, 학습시간 기록
- [best model]
- logloss가 가장 낮은 모델 선택 (예시: Ensemble)
- [logloss란?]
- 값이 낮을수록 좋은 분류 성능
# Generated Artifacts
- [artifacts란?]
- AutoML 결과물(모델, 실험 요약, 설정 파일, 그래프 등)
- [다운로드 명령어 예시]
- pscp -i aws_key.ppk ubuntu@[IP주소]:[서버경로] [내컴퓨터경로]
- [주요 파일 종류]
- artifacts 폴더 (모델 결과)
- README.md (실험 요약)
- *.json, *.npy (설정 및 모델정보 저장)
- *.png (시각화된 그래프)
- [주의사항]
- Windows는 pscp, Mac/Linux는 scp 사용
# 추가 설명
- [artifacts 폴더]
- AutoML 실행(automl.fit) 시 자동 생성
- 모델, 실험 결과, 그래프, 설정 파일 저장
- 실험 재현과 결과 분석을 쉽게 만들어줌
# Artifacts Analysis: General Performance
- [README.md]
- 실험 결과 텍스트 요약 파일
- 모델별 성능 비교 및 베스트 모델 기록
- [ldb_performance.png]
- 모델 성능을 시각화한 그래프
- X축: 모델 이름, Y축: 성능 지표(logloss 등)
- [확인 포인트]
- 베스트 모델 찾기
- 성능 격차 분석
- [Tip]
- 기본 지표: logloss (설정 변경 가능)
# Artifacts Analysis: General Performance
- [Correlation Heatmap]
- Feature 간 상관관계 시각화
- 1에 가까움: 강한 양의 상관관계
- -1에 가까움: 강한 음의 상관관계
- [Feature Importance]
- 모델이 예측에 의존한 Feature들의 중요도 표시
- 중요도가 높은 Feature를 우선 활용
- [Tip]
- Feature Importance는 모델마다 다를 수 있음
- 상관관계 높은 Feature는 중복 제거 고려 가능

# Note: You Can Generate Web-Style Summary
- [웹 스타일 요약 리포트 생성]
- 한 줄 명령어: automl.report()
- 결과물: README.html
- [장점]
- 텍스트보다 보기 쉬운 웹 페이지 형식
- 그래프/테이블을 통합하여 시각적으로 분석 가능
- 문서화 및 제출용으로 사용 가능
- [Tip]
- 학습이 끝난 artifacts 폴더 기반으로 HTML 리포트 자동 생성
# Artifacts Analysis: Individual Models
- [개별 모델 분석]
- 각 모델 학습 결과를 artifacts 폴더에서 개별 분석
- [예시]
- 베스트 모델: Linear + Default XGBoost + Default Neural Network (앙상블)
- [artifacts 폴더 구조]
- 각 모델별 디렉토리에 설정 정보, 평가 지표, feature importance 저장
- [앙상블 모델]
- 여러 모델을 조합하여 최종 결과 도출
# Let's Test with Your Taste: Change modes
- [AutoML 모드]
- 실험 목표에 따라 Explain / Perform / Compete 모드를 선택
- [모드별 특징]
- Explain: 빠르고 설명 가능한 모델
- Perform: 실용성 좋은 모델
- Compete: 최고 성능 모델 (시간 오래 걸림)
- [Tip]
- Compete 모드는 24시간 이상 소요될 수 있음 (주의)
# Let's Test with Your Taste: Change Config
- [Config 변경]
- Mode 선택과 별개로 세부 설정 가능
- [설정 항목 예시]
- algorithms: 사용할 알고리즘 선택
- hyperparameter_search: 튜닝 방법 선택 (random/grid search)
- validation_strategy: 데이터 검증 방식 설정 (ex: kfold)
- [예시 코드]
- AutoML(algorithms=["Random Forest"], hyperparameter_search="random", validation_strategy={"validation_type": "kfold", "k_folds": 5})
- [Tip]
- 공식 문서(supervised.mljar.com/api)에서 더 많은 설정 가능
#############################################################
# Config 설정 예시 코드
automl = AutoML(
mode='Explain',
algorithms=["Random Forest"],
train_ensemble=False,
stack_models=False,
eval_metric='f1'
validation_strategy={
"validation_type': 'kfold',
"k_folds": 5,
"shuffle": True,
"stratify": True,
"random_seed": 123
},
explain_level=0
)
# Summary
- [Week 7 Lab 요약]
- AutoML(MLJAR)로 머신러닝 실험 자동화
- 환경 세팅 → 모델 학습 → 결과 분석
- [AutoML 장점]
- 빠른 실험 속도
- 높은 재현성
- 유연한 모드/세팅
- 다양한 모드로 목표 설정 가능 (Explain / Perform / Compete)
- [실험 후 분석]
- artifacts 폴더 활용 (README, 그래프, feature 분석)
- [Tip]
- 실험 반복하면서 성능 개선 방향 스스로 찾아야 함