grep

데이터사이언스팀이 예측모델을 개발하고 운영하는 방법을 소개합니다.

컬리

2023년 1월 7일

원문에서 보기 ↗

안녕하세요? 데이터사이언스팀 송훈화입니다.

저는 아래 2가지 목적을 가지고 이번 포스트를 작성하였습니다.

  1. 데이터사이언스팀은 채용을 진행 하고 있습니다.
    • 팀의 주요 업무를 소개하고 문화도 같이 소개합니다.
    • 저희 팀에서 같이 문제를 풀어가고자 하시면 아래 링크를 통해 적극적인 지원 부탁드리겠습니다.
  2. 모델을 개발하고 운영하면서 그 과정에서 배운 점과 경험을 공유 하고자 합니다.
    • 이미 모델 개발 측면(알고리즘, feature engineering, validation, parameter tuning 등)의 방법론은 책이나 블로그를 통해 많이 공유되고 있습니다.
    • 반면에 모델을 비즈니스 현장에 적용하는 과정에 대한 경험이나 과정은 많지 않은 것 같습니다.
    • 이번 포스트에서는 모델 개발후 실제 현장에 모델을 배포/운영하는 과정을 중심으로 기술하였습니다.

1. 데이터사이언스팀을 소개합니다.

1.1 수요예측모델 개발 및 운영은 팀의 핵심 업무입니다.

1.2 수요예측은 다음과 같은 방식과 구조로 진행하고 있습니다.

1.3 개인화 모델링 및 추천/랭킹 모델을 통해 효율적인 타깃팅을 진행하고 있습니다.

1.4 MLOPS 도입을 통해 안정적인 서빙 환경을 구축하고 있습니다.

1.5 데이터사이언스팀의 문화와 업무 방식을 소개합니다.

2. 수요예측 모델 개발/운영을 통해 배운 것들을 공유합니다.

2.1 모델 배포후 사후 대응이 상당히 중요합니다.

2.2 예측성능 분석시 다각적인 접근과 세심한 판단이 필요합니다.

2.3 전통적인 시계열 모델 보다는 다수의 Regression으로 앙상블 방식을 활용합니다.

2.4 수요예측 모델링 실험에서는 Overfitting과 특히 Leakage를 주의해야 합니다.

biz_datebiz_hourregion_group_codeord_cnt
2022-12-011SEOUL100
2022-12-012SEOUL120
2022-12-013SEOUL150
2022-12-021SEOUL80
2022-12-022SEOUL110
2022-12-023SEOUL120
2022-12-031SEOUL10
2022-12-032SEOUL20
2022-12-033SEOUL30
# 과거 1일전부터 30일까지
# 지역별 시간대별 실제 발생한 주문수(ord_cnt)를 shift 하는 코드 예시
max_lagging_n = 30
for n in np.arange(1, max_lagging_n):
    df[f'ord_cnt_d{n}'] = df.groupby(['region_group_code', 'biz_hour'])['ord_cnt'].shift(n)
biz_datebiz_hourregion_group_codeord_cntord_cnt_d1
2022-12-011SEOUL100null
2022-12-012SEOUL120null
2022-12-013SEOUL150null
2022-12-021SEOUL80100
2022-12-022SEOUL110120
2022-12-023SEOUL120150
2022-12-031SEOUL1080
2022-12-032SEOUL20110
2022-12-033SEOUL30120

biz_datebiz_hourregion_group_codeord_cntord_cnt_d2ord_cnt_roll_d2
2022-12-011SEOUL100nullnull
2022-12-012SEOUL120nullnull
2022-12-013SEOUL150nullnull
2022-12-021SEOUL80nullnull
2022-12-022SEOUL110nullnull
2022-12-023SEOUL120nullnull
2022-12-031SEOUL10100null
2022-12-032SEOUL20120null
2022-12-033SEOUL30150null
2022-12-041SEOUL1008090
2022-12-042SEOUL100110115
2022-12-043SEOUL100120135

2.5 여전히 문제 정의 및 프로젝트 관리는 중요합니다.

마무리