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: 과거 식사 비율 평균)
- 추세(Trend)
-
파생 변수 생성
- 날짜 분해(연/월/일/요일)
- 메뉴 토큰화 및 선호 지수 계산
- 외부 변수(날씨, 공휴일 등)
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) 결합
- 작동 원리
- 통계 모델로 기본적인 추세와 계절성을 예측
- 발생한 오차(Residual)를 머신러닝 모델이 학습하여 예측
- 최종 예측값 = 통계 모델 예측값 + 머신러닝이 예측한 오차값
- 성과: 단일 모델들보다 오차(MSE, MAE)가 낮고 설명력()이 높아 가장 우수한 성능을 보임
E. 딥러닝 모델
- 방법: LSTM(Long Short-Term Memory) 활용
- 특징: 시계열의 흐름 학습에 강력하지만, 과적합 방지와 하이퍼파라미터 튜닝이 까다로움
4. 결론 및 요약
-
데이터 이해 필수
- 시계열 특성(추세, 계절성)과 변수 특성을 파악해 적절한 모델을 선정해야 함
-
Feature Engineering
- 메뉴 선호 지수, 외부 변수(날씨, 휴일) 등 유의미한 파생 변수 생성이 예측 성능에 큰 영향을 미침
-
성능 개선 전략
- 하이퍼파라미터 튜닝 (Grid Search 등)
- 하이브리드 또는 앙상블 모델 도입 (서로 다른 모델의 장점을 결합하여 정확도 향상)