Post

공유오피스 출입데이터 분석 팀프로젝트6 - 모델 성능 비교 및 코드 정리

최종 분석 주제 : 공유오피스 무료 체험 유저의 유료 결제 전환 예측 및 데이터 수집 전략 제안

오늘 할 일

  • 오전까지 모델링 개선 작업해서 팀원과 공유 → 제일 성능 좋은 코드 사용하기
    1. 결제 전환 재현율 개선 :
      1. 클래스 가중치, SMOTE, 다중공선성 확인 필요
      2. 추가 EDA해서 불필요한 파생변수 제거 필요
  • 오후부터 보고서 초안 작성 시작하기

오늘 한 일

  1. 모델링 개선 작업해서 팀원과 공유 → 제일 성능 좋은 코드 사용하기
  2. 보고서 초안 작성 시작하기
    1. 데이터 전처리 코드 정리하기
    2. EDA

내일 할 일

  • 보고서 초안 작성하기(계속)
    • 분석 배경 보완
    • 팀원 보고서 정리
    • 후속과제 아이디어

Issues & Challenges

모델링 성능 비교

  • 전반적으로 ACCURACY와 RECALL(유료 결제 전환 유저) 수치가 낮게 나왔음
  • 하이퍼파라미터 튜닝과 전처리를 좀 더 세심하게 조정하는 방안이 있겠지만 시간적인 한계 발생
  • 근본적으로 EDA 결과, 결제 전환 유저와 무료 체험 유저가 데이터셋에서 패턴이 비슷하게 관찰됨
  • 따라서, 데이터의 한계로 모델링의 개선이 제한적임을 인지하고 모델링 성능을 높일 수 있는 로그 설계(데이터수집) 방안을 제안하는 방향으로 비즈니스 제안을 제시하고자 함

image.png

데이터 전처리 코드 정리하기 : 결측치 → 중복값 → 이상치 → 파생변수 생성 → 결합

  1. 데이터 전처리
    1. 중복값 제거 : 테이블 별 제거
    2. 결측치 처리 : 없음
    3. 이상치 처리 :
      1. TRIAL_ACCESS_LOG 테이블
        1. cdate 마이크로초 제거 및 +9시간 추가(trial_visit_info 테이블의 시간이 KST이므로 9시간 차이나는 것을 확인후 변환하였음)
        2. 비정상 체크인 검토 → 총 2,153개 행 감소
          1. 입실과 퇴실 갯수가 일치하지 않는 유저 : 1,762명
          2. 입실(1)로 시작하지 않거나 퇴실(2)로 끝나지 않는 유저 : 403명
            1. 1초간격으로 입실 혹은 퇴실 정보를 추가 (414건)
          3. 입실 또는 퇴실이 2번 이상 연속으로 나오는 경우 : 1,682명
            1. 입실(1)이 연속이면 마지막 데이터만 유지(앞단 입실 정보는 퇴실정보가 사라졌으므로 정확한 측정 불가)
            2. 퇴실(2)이 연속이면 첫번째 데이터만 유지(뒷단 퇴실 정보는 입실정보가 사라졌으므로 정확한 측정 불가)
            3. 2,567건 제거
    4. 파생변수 생성 및 데이터 결합(TRIAL_ACCESS_LOG 유저 기준)
      1. 데이터 결합전
        1. TRIAL_REGISTER
          1. 체험신청일(평일/주말) : weekday_or_weekend
          2. 체험신청 요일 : day_of_week
          3. 체험신청월 → 불필요하다 판단하여 삭제
          4. 완료후 TRIAL_PAYMENT 테이블에 결합
        2. TRIAL_ACCESS_LOG (SITE_AREA 테이블과 결합)
          1. 파생변수 생성
            1. 총체류시간 : total_stay_time
            2. 일별 평균 체류시간 : daily_average_stay_time
            3. 평일 체류시간 : weekday_stay_time
            4. 주말 체류시간 : weekend_stay_time
            5. 총입퇴실횟수 : visit_count
            6. 첫 방문 시간대(아침/오후/저녁) → 새벽 출입자 발생하여 삭제
            7. 첫 방문 날짜(년,월,일,시간)
              1. first_visit_year
              2. first_visit_month
              3. first_visit_day
              4. first_visit_hour
            8. 주말 방문일 수 : weekend_days
            9. 평일 방문일 수 : weekday_days
            10. 가장 많이 방문한 지점id : most_visited_site
            11. 가장 많이 방문한 지점의 면적 : most_visited_site_area
            12. 방문한 총 지점 수 : total_sites_visited
        3. 데이터 결합 : TRIAL_ACCESS_LOG 고유 유저 수 기준으로 결합
          1. 분석 대상 : 무료체험 신청 후 공유 오피스를 실제로 방문한 유저
          2. TRIAL_ACCESS_LOG(방문) 고유 유저수 : 6,026명
            1. 결제 2,337명(39%), 미결제 3,689명(61%)
          3. TRIAL_PAYMENT(모든 무료체험 신청자) 고유 유저수 : 9,624명
            1. 결제 2,337명(24%), 미결제 7,287명(76%)
          4. 무료체험 신청후 미방문 유저(c - b) : 3,598명(37%)
          5. 방문 고유 유저수 선택 이유 :
            1. 미방문 유저가 약 37% 존재하고, 포함해서 분석하면 방문데이터 결측치 유저가 너무 많음
            2. 방문 유저 기준으로 하면 결제 비율은 약 39%로 데이터 불균형 문제가 없음
            3. 미방문 무료체험 유저는 방문 정보가 없어 예측 모델에 활용할 수 있는 변수가 제한적임
            4. 미방문 이유(외부요인, 개인사정 등)를 알 수 있는 데이터가 없어 분석이 제한적임
            5. 방문 패턴 기반으로 결제 가능성을 판단하는 데 더 집중할 수 있음
            6. 결과 활용 :
              1. 방문한 유저 중 결제 가능성이 높은 유저를 정의할 수 있음
              2. 방문 데이터를 기반으로 결제를 유도할 수 있는 전략(지점 최적화, 시간대 맞춤형 프로모션)을 제안할 수 있음
      2. 데이터 결합후
        1. 파생변수 추가 : 체험신청후 첫방문까지 일수 days_to_first_visit

EDA

  1. 히스토그램 분석
    1. 총 체류시간 : 대부분의 유저는 무료체험 기간 3일 동안 총 체류 시간이 12시간(43,200초) 미만으로 이용시간이 짧은 것으로 관찰됨
    2. 입실/퇴실 빈도 : 무료체험 기간 동안 입실과 퇴실의 빈도가 20회 미만으로 낮은 값에 밀집되어 있음
    3. 첫 방문까지 걸린 일수 : 대부분의 유저는 무료체험 신청 후 다음날에 방문하는 것으로 관찰됨
    4. 첫 방문 시간대 : 무료체험 신청후 첫방문 시간으로는 업무 시간대(9시~17시)에 집중되어 있음
    5. 첫 방문 월 : 연초보다 연말에 무료체험 유저가 집중되는 경향이 관찰됨
    6. 주중/주말 체류시간 : 주말보다 주중의 체류시간이 조금 더 길게 이용하는 것으로 관찰됨
    7. 선호하는 지점의 평수 : 평수가 넓은 지점이 유저가 더 많이 방문하는 것으로 관찰됨

1.png

  1. 결제 여부에 따른 체류시간 비교
    1. 유료 결제로 전환하지 않은 유저가 평균적으로 더 긴 체류시간을 갖는 것으로 관찰됨. 이는 체류시간이 결제 여부를 결정하는 중요한 요인이 아닐 수 있음

      2.png

    2. 체류시간 구간별 결제 여부를 확인해보니, 모든 시간대에서 유료 결제로 전환되지 않은 유저가 더 오래 이용하는 것으로 관찰됨. 특히, 1-4시간, 4-8시간 공유오피스를 이용한 유저층에서 유료 결제로 전환되지 않은 유저가 더 많은 경향이 관찰됨

      3.png

  2. 결제 여부에 따른 입실/퇴실 빈도 비교
    1. 입실/퇴실 빈도도 체류시간과 비슷한 양상으로 유료 결제로 전환되지 않은 유저가 입실과 퇴실을 더 많이 행동한 것으로 관찰됨

      4.png

  3. 체험 신청일과 첫 방문일 간 차이 분석
    1. 무료체험을 신청한 유저는 2일 이내 방문하는 것으로 관찰됐으며, 결제 전환 여부와 상관없이 무료체험 신청 후 1일 후 방문하는 것으로 관찰됨

      5.png

  4. 결제 여부에 따른 지점 선호도
    1. 평수가 넓은 공유오피스를 선호하는 것으로 관찰됨

      6.png

  5. 결제 여부에 따른 요일 패턴
    1. 공유오피스 이용은 주말보다 평일에 방문하는 것으로 관찰됨

      7.png

  6. 무료체험 신청후 첫 방문한 유저 비교
    1. 무료체험 신청 유저의 첫 방문 월을 비교해보니, 유료 결제로 전환되지 않은 유저는 12월, 9월, 8월에 가장 많이 방문하였고, 유료 결제로 전환된 유저는 9월, 6월, 8월에 가장 많이 방문한것으로 관찰됨

      8.png

    2. 첫 방문 시간을 비교해보니, 오후 12시부터 15시까지 가장 많이 방문한 것으로 관찰됨.

      9.png

Reflection

  • 어제 모델링에 일부 코드가 제대로 작성되지 않아 하이퍼파라미터 튜닝시 데이터를 학습데이터와 테스트데이터로 분리하지 않고 작동되고 있음을 확인했다. 그래서 혹여나 모델 성능이 개선되지 않을까 기대하며 코드를 다시 만들어 학습을 시켜봤지만 개선되지 않았다. 원인으로는 EDA시 무료체험 유저와 유료결제 전환 유저의 행동 패턴이 유사하여 모델이 예측을 정상적으로 하지 못하고 있는것이다. 그래서 우리팀은 데이터분석을 위한 로그 설계가 제대로 이루어지지 않았다고 판단하여 데이터 수집방안을 제안하는 방향으로 주제를 설정하였다. 다른팀들도 모델 성능이 그리 좋지 않았고, 가이드라인과 다르게 메인데이터를 메인으로 사용하지않고 외부데이터 중심으로 프로젝트를 풀어나가고 있는 것 같다. 프로젝트를 진행하면서 우리가 제공받은 기업의 데이터 뿐만아니라 오늘 강사님의 피드백처럼 기업들이 데이터의 중요성을 인지하지 못하여 초기 세팅이 적절하게 설계되지 않아 분석조차 할 수 없는 기업들의 데이터가 대부분이라는 느낌을 받았다. 문득 회사에서 사용하던 ERP가 떠올랐는데, 생각보다 ERP를 활용하지 못하거나 구축조차 못한 기업들이 많았고 ERP 구축 경험자를 우대하는 곳이 많았었다. 데이터분석가 또한 로그설계 경험자 혹은 관련경험을 보유한 사람을 우대할 수 있다고 판단이 들었다. 데이터분석을 위한 올바른 데이터 설계를 고민하는 연습도 해봐야겠다.
This post is licensed under CC BY 4.0 by the author.