[Week 11] 데이터 분석 전체 프로세스

[email protected]  |  2025-11-12 18:34


(End-to-End Machine Learning Workflow)

머신러닝 프로젝트는 단순히 모델을 만드는 일이 아니라, 데이터를 문제 해결에 맞게 가공하고 검증하는 전체 프로세스의 관리가 핵심입니다.

1️⃣ 문제 정의 (Problem Definition)

  1. 예측 대상(y)입력 변수(X) 를 명확히 설정합니다.
  2. 예: 매출 예측, 불량품 판정, 고객 이탈 예측 등
  3. 문제의 유형을 파악합니다.
  4. 회귀(regression): 숫자 예측
  5. 분류(classification): 범주 예측
  6. 군집(clustering): 패턴 그룹화
  7. 머신러닝이 실제로 유용한 문제인지(데이터가 충분한지, 규칙 기반으로 해결 가능한지) 검토합니다.

2️⃣ 데이터 수집 (Data Collection)

  1. 데이터는 DB, 로그, IoT 센서, API 등 다양한 출처에서 확보합니다.
  2. 데이터 품질이 결과를 결정짓는 가장 중요한 요소입니다.
  3. 누락, 오류, 편향된 샘플 등은 결과를 왜곡시킬 수 있습니다.
  4. 대표성 있는 샘플 확보가 핵심입니다.

3️⃣ 데이터 탐색 (EDA: Exploratory Data Analysis)

  1. 데이터를 시각적으로 이해하는 과정입니다.
  2. 평균, 분산, 분포, 상관관계 파악
  3. 이상치(outlier)와 결측치 확인
  4. 예시:

df.describe()
sns.pairplot(df)
sns.heatmap(df.corr(), annot=True)

4️⃣ 데이터 전처리 (Data Preprocessing)

  1. 결측치 처리: 평균, 중앙값 대체 또는 모델 기반 대체(Imputation)
  2. 이상치 처리: 제거 혹은 조정
  3. 범주형 변수 인코딩: LabelEncoder, OneHotEncoder
  4. 스케일링: StandardScaler, MinMaxScaler
  5. 랜덤포레스트는 영향이 적지만, 다른 모델 비교를 위해 적용할 수 있습니다.
  6. 불필요 변수 제거: ID, 중복된 피처 등

5️⃣ 데이터 분할 (Train/Test Split)

  1. 학습용(train)과 평가용(test) 데이터를 분리합니다.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  1. 데이터가 적은 경우 교차검증(K-Fold CV) 으로 일반화 성능을 높입니다.

6️⃣ 모델 학습 (Model Training)

  1. 적합한 알고리즘 선택: 선형회귀, 랜덤포레스트, SVM 등
  2. 하이퍼파라미터 튜닝:
  3. GridSearchCV, RandomizedSearchCV, Optuna 등 사용
  4. 과적합 방지:
  5. 교차검증, 정규화, 데이터 증강 등 활용

7️⃣ 모델 평가 (Model Evaluation)

  1. 회귀 문제: MAE, RMSE, R²
  2. 분류 문제: Accuracy, Precision, Recall, F1, ROC-AUC
  3. 단순 지표 외에, 실제 비즈니스 맥락에서의 영향력 평가도 중요합니다.

8️⃣ 결과 해석 및 피드백 (Interpretation & Iteration)

  1. 단순한 성능 수치보다 **“왜 이런 결과가 나왔는가”**를 설명해야 합니다.
  2. 변수 중요도, SHAP 등을 활용해 예측의 근거를 시각화합니다.
  3. 피드백 루프:
  4. 데이터 재가공 → 재학습 → 재검증

9️⃣ 모델 배포 및 유지보수 (Deployment & Monitoring)

  1. API 형태로 서비스에 연결하거나 배치 예측으로 운영합니다.
  2. 데이터 분포 변화(Drift) 감지 후 주기적으로 재학습합니다.
  3. MLOps를 활용해 학습–배포–모니터링을 자동화할 수 있습니다.