[GA] EDA(2)

EDA 호다닥 마무리
Jun 21, 2023
[GA] EDA(2)

1. Pandas Profiling


필요없는 컬럼 날리고 Pandas Profiling에 샘플 2만개만 돌려보자
import pandas_profiling df2.profile_report()
Timestamp : 2016년 8월~17년 7월까지 총 366일의 데이터가 포함됨
notion image
방문 : 대부분이 첫 방문자(77.5%)
notion image
고객 : 국가 접속 국가는 미국(40%), 인도(5.6%) 순, 도시 수준의 세부 레벨은 확인 불가 케이스가 많아 어려워보임
notion image
notion image
유입 : 채널 광고 데이터는 없지만, 전반적으로 광고를 통한 유입<오가닉 유입 (Organic Search, Social) 의존 → 아마도 구글 채널의 메인 BM이 아니라서 ? 기기 흥미롭게도 모바일보다 PC가 3배 이상. 이커머스 채널에서 드문 케이스처럼 보임
notion image
notion image
매출 : 판매액 Skewed 데이터, 대부분 0 평균 $2, Max $2,447 판매 갯수 Skewed 데이터, 대부분 0
notion image
notion image
상관관계 :
  • 주 타겟값 중심으로 살펴보았다
    • Sales : 상식적이게도 주문수와 상관관계가 가장 높았고, 방문자 관여도를 보여주는 지표(페이지 뷰, 체류시간, 방문횟수) 도 관계가 있었다!
    • Orders : 주문 수는 매출 값보다 훨씬 더 해당 상관관계가 뚜렷했다.
  • NewVisits : 유입 채널들과 상관관계가 높다
notion image
💡
구매 정보 (구매 상품, 수량, 판매액) 방문 페이지 정보 (pagepath) 데이터있는지 확인
 

2. 어떤 요소가 Conversion에 영향을 주는지 알아보자(feat, 트리모델)

  • Conversion 정의하기
    • sales는 없는데, orders가 존재하는 목록이 16년 8월~9월 초까지 37건 존재. User수는 26건.
    • 특정날에 몰려있거나 (집중 프로모션?) 앞뒤 구매 이벤트가 있었는지 확인 (특정 상품 구매시, 무료 증정?) 해봤으나, 그런 경향성은 없었음.
    • → 품목을 확인해봐야 정확하게 알 수 있을듯
    • orders 0을 포함하는 sales가 0 초과 고객만 conversion된 고객으로 정의하자
    • notion image
 
  • 의사결정 트리모델
    • 사용 목적 : Conversion 1값을 예측하기 위한 모델을 구축하고, 분류에 영향을 준 요소를 시각화하여 Conversion에 영향을 준 상관관계 파악
    • 데이터 샘플링 : 일반적으로 stratify를 쓰지만, 타겟값 분포에 따라 영향을 주는 요소를 찾는 목표하에 모델을 만드는 거라면 다른 샘플링 방식을 고려해볼 수 있음
      • 샘플링 종류 (이번엔 언더샘플링 사용해보겠음)
        1. 언더샘플링(Undersampling): 주로 다수 클래스에 속하는 샘플을 제거하여 클래스 간 균형을 맞추는 방식입니다. conversion 값이 0인 샘플을 일부만 선택하여 데이터셋의 균형을 조정할 수 있습니다.
        1. 오버샘플링(Oversampling): 소수 클래스에 속하는 샘플을 복제하거나 유사한 데이터를 합성하여 클래스 간 균형을 맞추는 방식입니다. conversion 값이 1인 샘플을 복제하거나 합성하여 데이터셋의 균형을 조정할 수 있습니다.
        1. 적절한 가중치 부여(Weighted Sampling): 클래스 간 불균형을 해소하기 위해 각 샘플에 가중치를 부여하여 모델 학습 시 고려되도록 하는 방식입니다. conversion 값이 1인 샘플에 더 높은 가중치를 부여하여 모델이 이러한 샘플에 더 집중하도록 할 수 있습니다.
        1. 합성 샘플링(Synthetic Sampling): 소수 클래스에 속하는 샘플을 합성하여 데이터셋을 보완하는 방식입니다. 예를 들어, SMOTE(Synthetic Minority Over-sampling Technique)와 같은 알고리즘을 사용하여 소수 클래스의 샘플을 합성하여 데이터셋을 보완할 수 있습니다.
    • 열 제거 : Datetime 변수 제거 + 의미없는 열도 제거함(UserId 등)
    • 결측치 대체 : 결측치 있는 데이터를 제거하거나 대체하기 (* referral_path는 unknown 으로 대체함)
    • 결과 해석 :
      • gini지수 : 해당 노드의 불순도 ; 0~1 사이의 값 ; gini지수가 낮을 수록 노드 내 데이터가 순수하게 분류되어있음
      • value : 트리 노드에 속하는 데이터 클래스 별 개수 value=[100,200] 이면 클래스 0이 100개 클래스1이 200개 데이터가 있다는 것
stratify 적용
stratify 적용
  • PageViews, city (시카고 안 사는 경우), DurationMinute≥3.29, country(US 안 사는 경우) 요소들이 메인 요소가 됨
Undersampling 진행
Undersampling 진행
  • Pageviews, continent (America) 여부
pageview, continent 제외하고 Undersampling 진행
pageview, continent 제외하고 Undersampling 진행
 
세워볼 수 있는 가설
  • Duration Minutes가 2분 이상이면,
  • Visit Number가 6회 이상이면,
  • Pageview가 8회 이상이면,
  • → 구매 전환율이 올라갈 것이다
 
Next Step
  • 인과추론 Study 후, 해당 가설을 어떻게 상관관계가 아니라 인과관계로 추론해볼 수 있을지 검증 계획 세우기
Share article

hollyisyoon