[ZB 데이터스쿨 11기]16주차 학습노트

InSung-Na·2023년 4월 24일
0

Study Note

목록 보기
16/18
post-thumbnail

머신러닝 프로젝트

주제 : Google Analytics Customer Revenue Prediction

개요

  • 구글 스토어 마케팅팀은 타겟 프로모션을 진행하기 위해 준비중입니다.
  • 구글 스토어의 2년의 훈련 데이터를 활용하여 모델을 만들고 앞으로의 2개월 고객의 수익을 예측하여 프로모션 매출에 기여할 타겟을 예측하라.

목표

  • 고객별 수익 예측

데이터 크기

  • train : 2016/08/01 ~ 2018/04/30 동안의 로그데이터(23.67GB)
  • test : 2018/05/01 ~ 2018/10/15 동안의 로그데이터(7.1GB)

샘플링

  • train(40%, row=683,334, col=62)
  • test(100%, row=401,589, col=62)

데이터 정보

  • 고객들의 로그 데이터
  • 구매자는 약 1.1%, 극심한 편향 데이터

절차

  1. 데이터 이해 및 처리
    1-1. 데이터 수집
    1-2. 용량 감소
  2. 피처 엔지니어링
    2-1. 전처리
    2-2. 파생변수 생성
    2-3. 라벨인코딩
    2-4. 수익 로그 스케일링
  3. 분류 모델
    3-1. LGBM_CLF
  4. 회귀 모델
    4-1. RF_REG
  5. RFM 모델
    5-1. VIP 세그먼트

세부 내용

1. 데이터 이해 및 처리

데이터 이해

용량감소

  • 데이터가 굉장히 큰 대용량 데이터라서 전체를 사용할 수 없다.
  • 샘플링을 사용하여 train(40%), test(100%)를 사용하고 csv가 아닌 pickle를 사용한다
  • downcasting 사용하여 메모리를 압축한다

2. 피쳐 엔지니어링

전처리

  • Json파일을 파싱한 127개 피쳐 중 EDA를 통해 실제 수익 totals_transactionRevenue와 연관성이 매우 떨어지는 칼럼을 배제함 -> 46개 선정

파생변수 생성

  • 이커머스 데이터 특성을 활용하여 중요한 파생피처를 생성(상품관심도, 재방문주기, 총 생애주기, 충성도 등)
  • 시계열 피쳐(연, 월, 요일, 주) 생성
  • 분류모델의 label이 될 구매여부 피처 생성

라벨인코딩

  • 대부분의 범주데이터가 명목형이어서 원핫인코딩이 적합하지만 대규모이기 때문에 불가능
  • 따라서 라벨인코딩을 사용하고 영향을 덜 받는 트리계열 모델을 사용하기로 결정

수익 로그 스케일링

  • 모델에 적용한 수익이 대부분이 매우 낮은 값에 위치해있는 극단적인 Right Skewed분포를 가지고 있었다.
  • 왜도 완화를 해결하기 위해 로그스케일링을 적용함

3. 분류모델

LGBM_CLF

  • 실제 수익을 그대로 사용하면 모델을
  • 극심한 불균형 데이터에서 중요한 것은 구매자를 분류하는 것이므로 recall_1을 평가지표로 결정한다.
  • 모든 모델을 비교하였을 때, 트리계열의 성능은 모두 비슷해서 속도에 초점을 두었다.
  • LGBM은 스케일러 미적용, Standard, MinMax의 성능도 큰 차이가 없지만, 스케일러를 미적용했을 때 가장 좋았다.

4. 회귀모델

RF_REG

  • 분류모델의 TOP10 칼럼과 샘플링데이터로 학습하고 분류모델을 거치고 얻은 데이터 여러 회귀모델을 사용해서 최고의 모델을 선정하였다.
  • 예측값과 실제값의 최소 차이를 얻기 위하여 RMSE를 평가지표로 활용했다.

5. RFM 모델

VIP 세그먼트

  • 고객별로 R(최근성), F(빈도수), M(구매금액)으로 점수를 매겨서 Not VIP, VIP, VVIP 총 3개의 세그먼트로 분류
  • 전체 고객의 실제 수익 합계에서 VIP,VVIP가 80% 이상 차지함을 검증하였다

6. 느낀점

  • 이번 프로젝트를 통해서 대용량데이터를 다루는 방법, 스케일링과 Encoder 사용법, 파생변수의 중요성, 각 모델별 강점과 약점, RFM분석에 대해서 학습하였다.
  • 강사님께서 온라인 강의로 배운 것보다 프로젝트 하나의 가치가 훨씬 크다고 했는데 그 이유를 몸소 체험한다.
  • 타인과 소통하고 정보를 공유하는 것이 굉장히 값진 것이고 모든 단계를 처음부터 기획하는 것이기에 흐름이나 적극성이 단순 온라인 강의보다 차원이 다르다.
  • 프로젝트를 진행하면서 막히는 구간이 있으면 책을 사거나 구글링을 통해서 새로 학습하였다. 이러한 방식으로 얻은 지식은 잊혀지지 않고 계속 남을 것이다.
  • 다른 건 몰라도 프로젝트는 꼭 하는 것이 나에게 도움이 된다.

0개의 댓글