1. 실습 개요

  • 목표

    • 2016년 2월 ~ 2021년 1월 데이터를 학습하여,
    • 2019년 10월 17일 이후 300일간의 구내식당 식수 인원(수요)을 예측하는 것
  • 데이터

    • 일자, 요일별 조/중/석식 메뉴, 식수 인원, 본사 정원 수, 휴가/출장/재택근무자 수 등
  • 데이터 이해를 기반으로 모델 선정

    • 시계열 데이터인지, 범주형 변수 포함 여부 등에 따라 적절한 알고리즘 선택
  • 유의미한 요인선택 및 추가

    • 계절성, 요일, 휴일, 날씨 등 예측에 영향을 줄 수 있는 변수 반영
    • 도메인 지식을 바탕으로 feature engineering 수행
  • 하이퍼파라미터 튜닝을 통한 성능 개선

    • Grid Search, Random Search, Optuna 라이브러리 등 활용
  • 하이브리드 또는 앙상블 모델 고려

    • 서로 다른 예측 모델의 결과를 조합하여 예측 정확도 향상
    • 최근 우수한 성능을 지속적으로 입증

2. 데이터 분석 (EDA) 및 전처리

  • 예측 전 데이터 이해의 중요성

    • 예측 모델 적용 전, 시계열 데이터의 기본 구조와 특성 파악이 필수
    • 예측하고자 하는 시계열 데이터에 다음 요소가 있는지 확인: 추세 / 계절성 / 불규칙성
  • 데이터 이해가 모델 성능 결정

    • 데이터의 구조를 모르고 모델을 적용하면 오적합/과소적합 발생 가능
    • 정확한 모델 선택과 튜닝을 위하여, 데이터 특성에 대한 이해로부터 적절한 전처리 수행 및 변수 추가 필요
  • Target Value 설정

    • 단순 식수 인원이 아닌 식사 비율(식수 인원 / 총 잠재 식사 가능 인원)을 예측 목표로 설정
  • 데이터 특성 파악

    • 추세(Trend)
      • 2019년까지 감소하다가 이후 증가하는 경향
    • 계절성(Seasonality)
      • 월별: 연초(1,2월)에 많고 연말(11,12월)에 적음
      • 요일별: 월요일이 가장 많고 금요일로 갈수록 감소
    • 메뉴 지수(선호도) 산출
      • 육류 선호도가 높고 채소/해산물 선호도가 낮음
      • 메뉴 텍스트 분석을 통해 선호 지수 파생 변수 생성 (방법 A: 카테고리 분류, 방법 B: 과거 식사 비율 평균)
  • 파생 변수 생성

    • 날짜 분해(연/월/일/요일)
    • 메뉴 토큰화 및 선호 지수 계산
    • 외부 변수(날씨, 공휴일 등)

3. 예측 모델별 실습 및 특징

A. 회귀분석 (Regression Analysis)

  • 방법: statsmodels 라이브러리의 OLS(최소제곱법) 사용
  • 변수: 연도, 월, 요일, 메뉴 선호 지수, 전일 식수 인원 등
  • 결과: P-value를 통해 유의미한 변수 확인 ( 값 등을 통해 설명력 확인). 기본적인 추세는 파악하나 복잡한 패턴 예측에는 한계가 있음

B. 시계열 예측 모델 (SARIMA)

  • 방법: 과거 데이터(AR), 차분(I), 이동평균(MA)에 계절성(S)을 추가한 SARIMA 모델 사용
  • 최적화: Grid Search 또는 pmdarima 라이브러리를 통해 최적의 파라미터(AIC 기준) 탐색
  • 한계: 주간 패턴은 반영하지만, 예측값이 일정한 형태로 반복되어 실제 데이터의 비선형적 변동성을 충분히 반영하지 못함

C. 머신러닝 모델 (Random Forest)

  • 방법: 다수의 의사결정나무를 결합한 앙상블 모델
  • 특징: 비선형적 관계를 잘 학습하며, 하이퍼파라미터(n_estimators, max_depth 등) 튜닝이 중요
  • 결과: 시계열 모델보다 데이터의 불규칙한 변동성을 더 잘 포착함

D. 하이브리드 모델 (Hybrid Model)

  • 개념: 통계 모델(Holt-Winters) + 머신러닝 모델(Random Forest) 결합
  • 작동 원리
    1. 통계 모델로 기본적인 추세와 계절성을 예측
    2. 발생한 오차(Residual)를 머신러닝 모델이 학습하여 예측
    3. 최종 예측값 = 통계 모델 예측값 + 머신러닝이 예측한 오차값
  • 성과: 단일 모델들보다 오차(MSE, MAE)가 낮고 설명력()이 높아 가장 우수한 성능을 보임

E. 딥러닝 모델

  • 방법: LSTM(Long Short-Term Memory) 활용
  • 특징: 시계열의 흐름 학습에 강력하지만, 과적합 방지와 하이퍼파라미터 튜닝이 까다로움

4. 결론 및 요약

  • 데이터 이해 필수

    • 시계열 특성(추세, 계절성)과 변수 특성을 파악해 적절한 모델을 선정해야 함
  • Feature Engineering

    • 메뉴 선호 지수, 외부 변수(날씨, 휴일) 등 유의미한 파생 변수 생성이 예측 성능에 큰 영향을 미침
  • 성능 개선 전략

    • 하이퍼파라미터 튜닝 (Grid Search 등)
    • 하이브리드 또는 앙상블 모델 도입 (서로 다른 모델의 장점을 결합하여 정확도 향상)