[TIL#53 250512]

강민지·2025년 5월 13일

데이터분석_TIL

목록 보기
57/81

지난 주말 동안 데이터 전처리를 끝내고 무려 4억개의 행을 가진 대규모 데이터셋을 줄이고 줄여서... 월요일부터 바로 EDA 시작하면 되겠다고 생각했는데...!

월요일 오전에 방향 설정, 세부 주제 선정 다 하고 의기양양하게 튜터님께 점검 받으러 갔다가 다시 원점으로 돌아왔다........ 하하ㅏ


시작부터 난관

일단 가장 큰 문제는 데이터셋의 크기였다.
2019년 10월부터 2020년 4월까지 총 7개의 파일이 있었는데, 각 파일당 n천만개의 행이 들어있어서 이걸 다 합치면 4억개의 행이 돼버린다는 것...

우리의 작업 환경에서 45GB의 데이터는 감당이 안돼서 여러가지 방안을 고민했다.

  • 연말vs연초 비교로 11~1월의 데이터만 사용하기
    : 3개 파일을 합쳐도 거의 20GB인데, 이것도 너무 커서 탈락
  • 일반적인 트렌드 분석을 위해 이벤트가 많은 연말 연초를 피해 10,11,3,4월 데이터만 사용하기
    : 3개도 많았는데 4개는 더 많음.. 탈락
  • 하나의 파일만 사용하기
    : 안그래도 컬럼 수 9개밖에 안되는데 월별 분석까지 못하면 인사이트 낼 게 정말 없을 것 같아서 탈락
  • 팀원이 각각 1~2개씩 파일을 맡아서 분석하기

일단은 지표 설정을 모두 통일해서 팀원들이 각각 파일 1~2개씩 분석해보고, 시각화에 필요한 데이터만 따로 추려서 대시보드를 만드는 방식이 최선일 것 같다고 판단했다.


1차 전처리

어차피 데이터는 넘쳐나니까 결측치는 싹 날려버리고 주말동안 데이터를 뜯어보면서 전처리를 했다.

중복제거 & 이상치 처리



  • 모든 컬럼에 대해 값이 동일한 중복값 제거
  • 동일한 user_id로 동일한 event_time에 같은 행동을 하는데 서로 다른 user_session을 갖는 경우는 이상치로 판단하고 제거

두 경우 모두 가장 마지막 행 하나만 남기고 제거하였다.

이렇게 주말동안 전처리를 어느 정도 완성했고, 대시보드를 여러개 만들면 좋을 것 같아서 대시보드 구성에 대해 생각해보기로 했다.


새로운 아이디어

월요일 아침에 다른 팀원분이 한가지 아이디어를 제시해주셨다.

우리 데이터의 'event_type' 컬럼은 값이 'view', 'cart'. 'purchase'로 구성되어 있는데, 여기서 'view'에 해당하는 값이 전체의 약 86% 정도를 차지한다.
그래서 세부 주제를 "장바구니 -> 구매 전환 단계에 초점을 맞춰서 분석해보자고 했다.

이런 방식이라면

  • 데이터 크기 문제를 해결 가능하고
  • "장바구니에 상품을 담은 고객에게 맞춤형 쿠폰을 제공하는 마케팅 전략을 위하여 관련 지표에 대해 대시보드를 만들어달라는 요청을 받았다는 컨셉"으로 세부 주제를 구체적으로 설정할 수 있다

라고 생각했다

따라서 데이터를 event_type이 'cart', 'purchase' 인 것만 추출하여 분석하고,
시간/고객/상품 3가지 카테고리 중심 분석을 하여 최고 3개의 대시보드를 만들어보자고 방향을 설정했다.

원래는 "장바구니 이탈 예측을 위한 분류 모델 개발"도 하려고 했는데, 이번 프로젝트에 머신러닝은 불필요하다고 판단했고 시간도 부족할 것 같다고 생각해서 머신러닝은 하지 않기로 했다.


또 다시 원점으로...

방향 설정을 확실하게 해서 담당 튜터님께 중간 점검 + 중복값 처리에 대한 질문을 하러 갔다.

그런데 튜터님께서...

  • view를 빼고 분석하는 건 절대 안됨 !!!!!
  • 컬럼이 너무 적어서 아쉽다ㅜㅜ
    : 이건 우리도 파생변수를 많이 만들어야겠다고 생각하고 있던 부분이었음
  • 데이터가 너무 크니까 차라리 각 파일에서 랜덤으로 10만개씩 뽑아써라 !!!!

라고 오더를 내리셨다..ㅋㅋㅋ
바로 갈아 엎어 버리긔..ㅋ
4억행이 70만행이 되었지만 암튼 코드돌리기는 편해짐 ㅎㅎ

튜터님이랑 대화를 해보니까 이번 플젝을 대해서 튜터님과 수강생들의 마인드(?)가 꽤나 다르다는 걸 느꼈다.
수강생들 입장에서는 최대한 실무에서 하는 것과 비슷한 경험을 해보고, 현실에선 어떻게 적용할 수 있을지를 고민하려고 한다면
튜터님 입장에서는 포트폴리오에 '내가 이런 걸 할 줄 압니다!'를 보여주는 게 중요하다고 생각하시는 것 같다.
근데 사실 그게 맞긴함,,, 그래서 이번 플젝은 전처리나 모델링에 힘쓰지 말고 대시보드에 집중하라고 강조하신 것 같다 (사실 이건 동의,, 이번 플젝에서까지 머신러닝한다는 거 듣고 읭?!하긴 했음ㅎㅎ)


아무튼 결론은,,

랜덤 추출로 총 70만행의 데이터셋을 골라내서

  • 전체적인 매출 트렌드
  • 시간대 중심 분석 (월별, 요일별, 시간별)
  • 고객 중심 분석 (ARPU, ARPPU, AOV, 전환율, LTV)
  • 퍼널 중심 분석 (퍼널별 전환율/이탈율)

이렇게 네가지 틀로 대시보드를 만들기로 했다

0개의 댓글