ML mini-project 1 : 의류 판매량 예측

최원빈·2023년 8월 7일

ML mini projects

목록 보기
1/21
post-thumbnail

해당 포스트는 패스트 캠퍼스에 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝 SIGNATURE를 공부한 뒤 각색하여 복습을 위해 작성하였습니다.

프로젝트 진행과정

  • 수업내용에서 배운 6 steps을 토대로 진행과정을 작성
    (원래 7 steps 이지만 여기서 마지막 부분인 Model Operation 부분 생략)

01. Problem Definition (문제정의)

  • 의류를 생산할 때 대략 8주 정도의 lead time이 있는데, 이 lead time을 고려하여 생산량을 조절하여 재고비용을 줄이고자 함
  • 해당 미니 프로젝트에서는 반팔옷의 생산량을 예측하는 것에 중점을 둠

02. Expected Effects (기대효과)

  • 정량적으로 어떤 효과를 기대할 수 있을지 표현하고 싶었지만 더 자세한 데이터가 주어지지 않아 정성적으로만 기대효과 표현

03. Solution (해결방안)

  • 두가지 방식의 모델링을 통해 적정 생산량 예측

04. Priority (우선순위 결정)

  • 먼저, DeepAR 모델을 통해서 시계열 분석을 진행
  • 이후, 더 많은 feature들을 통해 모델링이 가능한 RandomForest를 통해 분석 진행

05. Data Analysis (데이터 분석)

  • Data Check : 먼저 data를 보고 (EDA 과정) 데이터 분포 및 특징을 파악
  • DeepAR Modeling : 시즌별 판매량을 예측할 수 있도록 데이터 변형 및 outlier 확인, 이후 모델을 통하여 판매량 예측
  • RandomForest Modeling : 단변량 데이터를 window slice를 통해 여러개의 다변량 데이터로 변형, 이후 모델을 통하여 판매량 예측

05-1. Data Check

  • Data Info Check : data의 shape, type, null values 확인
  • Data Readiness Check : 시즌별 (16SS, 17SS, etc)로 groupby를 하여 시즌별 판매량을 target label로 선정
  • Data sampling : 데이터가 적거나 혹은 많을 때 데이터를 수를 조정하는 단계지만, 해당 미니 프로젝트의 데이터의 수는 약 1460개로 (날짜기준) 적당하여 해당 과정은 스킵
  • 데이터 명세서

05-2. DeepAR Modeling

  • 시계열 분석을 위해 사용할 데이터 형태 (단변량 데이터)
  • 예측하고자 하는 부분 →\to 갑자기 판매량이 뚝 떨어지는 부분
  • 이 부분을 예측해야 생산량을 조절하여 재고비용 축소 가능
  • 그런데 outlier가 있는 경우 →\to 이 미니 프로젝트에서는 '큰손'들이 물건을 대량으로 구매 후 몇개만 구매하고 다시 대량으로 환불하는 경우 →\to 전처리 필요
  • 해당 부분 처리 후 데이터 모양이 안정화 되는 것 확인
  • DeepAR 모델
    →\to LSTM 기반의 확률론적 시계열 예측 딥러닝 모델
    →\to 기존 통계에 기반한 모델들과 달리 수백, 수천만개의 방대한 다중 시계열 데이터 기반 예측 가능
  • 사용 패키지, 진행 과정, 코드

05-3. RandomForest Modeling

  • RandomForest 모델 소개
  • 모델링 이전 데이터 변환
    →\to 단변량의 데이터로는 RandomForest 모델을 통해 좋은 성능을 얻기 어렵기 때문에, 다변량 데이터로 변환
    →\to 기울기, 표준편차, 평균, 왜도, 첨도, 최소값, 최대값 등의 통계 기반의 feature 추출
  • 사용 패키지, 진행 과정, 코드

06. Performance Monitoring (성능 측정)

  • RandomForest 모델 기준으로, hyper-parameter를 조절했을 때, loss가 점점 줄어드는 것을 확인 가능
  • 또한, 직접 그래프로 나타냈을 때 주황색 (예측값)이 점점 파란색 선 (label 값)에 가까워지는 것을 확인

06. Lesson Learned

  • 시계열 분석에서 가장 중요한 부분
    • 데이터 확인이 무엇보다 중요한 분석이 시계열 분석
    • 날짜형 데이터 타입을 다룰 때, 날짜 형식이 다를 수 있으므로 확인 필요 (UTC, KST) →\to 현업에서 이러한 기본적인 것이 중요
    • 날짜 사이에 결측치가 있는지 확인필요 →\to 결측치 있으면 다 틀어질 수 있음
    • 모델링을 할 때, 데이터의 특성을 가장 잘 반영할 수 있는 hyper-parameter 세팅 필요
  • 단변량 데이터만으로 시계열 특성이 충분히 반영되지 않을 때
    • 단변량 데이터를 window size를 기준으로 다변량 feature 생성
    • 요일별로 특성을 나타내는 경우 효과가 좋은 경우가 있음
    • Feature를 추가할 때는 어떠한 이유 혹은 목적으로 추가하게 되었는지 설명할 수 있어야 함
  • GMT, UTC, KST 정리
    • GMT (Greenwich Mean Time)
      • 영국의 그리니치 천문대를 기준으로 태양의 위치를 측정하여 만든 표준시
    • UTC (Coordinated Universal Time)
      • 세계 표준시 (GMT는 주로 영국 등 일부 국가에서만 이용하는 시간대)
    • KST (Korean Standard Time)
      • UTC + 9:00
        • ex) UTC 9:00 ➡ KST 18:00

*참고자료

여기까지 읽어주신 분이 계시다면 부족하지만 감사드립니다:)

profile
차가운 머리와 따뜻한 마음

0개의 댓글