전체 머신러닝/AI 프로젝트 의사 결정 트리를 단계별 + 선택지 구조로 총정리
🧠 머신러닝 / 데이터 프로젝트 전체 흐름: 의사 결정 트리
🎯 문제 인식
│
├──▶ 예측이 필요한가?
│ ├─▶ Yes → 지도학습 (Supervised Learning)
│ └─▶ No → 비지도학습 / 생성모델 / 군집화 등
│
├──▶ 목적 정의
│ ├─ 분류 (Classify)
│ ├─ 회귀 (숫자 예측)
│ ├─ 클러스터링 (패턴 그룹화)
│ └─ 생성 (텍스트/이미지 생성 등)
│
└──▶ 사용 데이터 확보로 이동
📥 데이터 수집 & 정제
📥 데이터 확보
│
├──▶ 어디서 수집?
│ ├─ 내부 DB / CSV
│ ├─ 공공 데이터
│ └─ 웹 크롤링 / 센서 등
│
📊 데이터 전처리
│
├──▶ 결측치 처리
│ ├─ 제거 / 평균대체 / 예측
├──▶ 이상치 처리
│ ├─ 제거 / 범위 조정
├──▶ 정규화 / 스케일링
│ ├─ StandardScaler, MinMax 등
├──▶ 범주형 인코딩
│ ├─ One-Hot, Label Encoding 등
└──▶ 데이터 분할
├─ Train/Test Split or K-Fold CV
🧠 모델 선택
🔍 모델 선택
│
├──▶ 데이터 유형과 문제 목표에 따라 분기
│ ├─ 분류
│ │ ├─ Logistic Regression
│ │ ├─ Decision Tree / Random Forest
│ │ ├─ SVM / KNN
│ │ ├─ Neural Network (Dense/CNN/RNN 등)
│ │ └─ LightGBM / XGBoost
│ ├─ 회귀
│ │ ├─ Linear Regression
│ │ ├─ Ridge/Lasso
│ │ ├─ Random Forest Regressor
│ │ └─ Neural Network (Regressor)
│ └─ 비지도
│ ├─ K-Means / DBSCAN
│ ├─ PCA / 차원 축소
│ └─ GAN / AutoEncoder
🔁 모델 학습 & 검증
🧪 모델 학습
│
├──▶ 검증 방식 결정
│ ├─ 단순 Train/Test Split
│ ├─ K-Fold Cross Validation
│ ├─ Time Series Split (시계열)
│ └─ Nested CV (튜닝 + 검증 분리)
📈 모델 평가 지표 선택
│
├──▶ 분류
│ ├─ Accuracy, Precision, Recall, F1
│ ├─ Confusion Matrix, ROC AUC
├──▶ 회귀
│ ├─ MAE, MSE, RMSE, R²
└──▶ 모델 개선 피드백
├─ 과소적합? → 모델 복잡도 ↑
├─ 과대적합? → 정규화/Dropout 등
└─ 특징 부족? → Feature Engineering
🏁 최종 모델 확정 및 배포
✅ 최종 선택된 모델
│
├──▶ 학습 완료 후 저장
│ ├─ joblib, pickle, ONNX 등
│
🚀 배포 / 활용
│
├──▶ 웹 앱 / API로 연결 (Flask, FastAPI)
├──▶ Dashboard or 내장 시스템 적용
└──▶ 사용자 피드백 or 실시간 성능 추적
💡 Neural Network 사용 여부 분기
- 작은 데이터 + 해석 용이성 중요 → 전통적 ML 모델
- 이미지, 자연어, 시계열, 복잡한 추론 → 신경망 (Dense, CNN, RNN)
- 대규모 생성(텍스트/이미지 등) → 딥러닝 or LLM, Diffusion, GAN 등
📌 요약 다이어그램 느낌 (한 줄 요약식)
[문제 정의]
→ [데이터 수집 & 정제]
→ [모델 선택] ⎧ 전통 ML or Neural Net
→ [학습 & 검증]
→ [성능 평가]
→ [배포 or 피드백]
답글 남기기