1. Pandas Profiling
필요없는 컬럼 날리고 Pandas Profiling에 샘플 2만개만 돌려보자
import pandas_profiling df2.profile_report()
Timestamp : 2016년 8월~17년 7월까지 총 366일의 데이터가 포함됨
방문 : 대부분이 첫 방문자(77.5%)
고객 :
국가
접속 국가는 미국(40%), 인도(5.6%) 순, 도시 수준의 세부 레벨은 확인 불가 케이스가 많아 어려워보임
유입 :
채널
광고 데이터는 없지만, 전반적으로 광고를 통한 유입<오가닉 유입 (Organic Search, Social) 의존 → 아마도 구글 채널의 메인 BM이 아니라서 ?
기기
흥미롭게도 모바일보다 PC가 3배 이상. 이커머스 채널에서 드문 케이스처럼 보임
매출 :
판매액
Skewed 데이터, 대부분 0 평균 $2, Max $2,447
판매 갯수
Skewed 데이터, 대부분 0
상관관계 :
- 주 타겟값 중심으로 살펴보았다
- Sales : 상식적이게도 주문수와 상관관계가 가장 높았고, 방문자 관여도를 보여주는 지표(페이지 뷰, 체류시간, 방문횟수) 도 관계가 있었다!
- Orders : 주문 수는 매출 값보다 훨씬 더 해당 상관관계가 뚜렷했다.
- NewVisits : 유입 채널들과 상관관계가 높다
구매 정보 (구매 상품, 수량, 판매액)
방문 페이지 정보 (pagepath) 데이터있는지 확인
2. 어떤 요소가 Conversion에 영향을 주는지 알아보자(feat, 트리모델)
- Conversion 정의하기
- sales는 없는데, orders가 존재하는 목록이 16년 8월~9월 초까지 37건 존재. User수는 26건.
- 특정날에 몰려있거나 (집중 프로모션?) 앞뒤 구매 이벤트가 있었는지 확인 (특정 상품 구매시, 무료 증정?) 해봤으나, 그런 경향성은 없었음.
- → 품목을 확인해봐야 정확하게 알 수 있을듯
- orders 0을 포함하는 sales가 0 초과 고객만 conversion된 고객으로 정의하자
- 의사결정 트리모델
- 사용 목적 : Conversion 1값을 예측하기 위한 모델을 구축하고, 분류에 영향을 준 요소를 시각화하여 Conversion에 영향을 준 상관관계 파악
- 데이터 샘플링 : 일반적으로 stratify를 쓰지만, 타겟값 분포에 따라 영향을 주는 요소를 찾는 목표하에 모델을 만드는 거라면 다른 샘플링 방식을 고려해볼 수 있음
- 언더샘플링(Undersampling): 주로 다수 클래스에 속하는 샘플을 제거하여 클래스 간 균형을 맞추는 방식입니다. conversion 값이 0인 샘플을 일부만 선택하여 데이터셋의 균형을 조정할 수 있습니다.
- 오버샘플링(Oversampling): 소수 클래스에 속하는 샘플을 복제하거나 유사한 데이터를 합성하여 클래스 간 균형을 맞추는 방식입니다. conversion 값이 1인 샘플을 복제하거나 합성하여 데이터셋의 균형을 조정할 수 있습니다.
- 적절한 가중치 부여(Weighted Sampling): 클래스 간 불균형을 해소하기 위해 각 샘플에 가중치를 부여하여 모델 학습 시 고려되도록 하는 방식입니다. conversion 값이 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개 데이터가 있다는 것
샘플링 종류 (이번엔 언더샘플링 사용해보겠음)
- PageViews, city (시카고 안 사는 경우), DurationMinute≥3.29, country(US 안 사는 경우) 요소들이 메인 요소가 됨
- Pageviews, continent (America) 여부
세워볼 수 있는 가설
- Duration Minutes가 2분 이상이면,
- Visit Number가 6회 이상이면,
- Pageview가 8회 이상이면,
- → 구매 전환율이 올라갈 것이다
Next Step
- 인과추론 Study 후, 해당 가설을 어떻게 상관관계가 아니라 인과관계로 추론해볼 수 있을지 검증 계획 세우기
Share article