[AI기획_미니프로젝트] 개인_미니 프로젝트(EDA)

Jio.B·2024년 1월 2일

교육 이수

목록 보기
9/17

프로젝트 목표 (=과제 개요)

  • 학습 서비스를 이용하는 독자들 중 누가 서비스 구독을 <연장>할지 예측하기 위한 사전 파악

분석 방향 설정

  • 누가 서비스 구독을 "연장"할까? (=예측의 근거가 될 수 있는 징후를 데이터를 통해 찾기)
    • 조사 시점에 이미 구독을 중단한 사람(p2, p4, p6)은 후순위로 고려 : 다른 프로젝트에서 다룰 영역 → (ex) 재구독률 높이기
    • 결국 최근 3개월 간 구독을 유지한 사람(p7), 중단했다가 최근 3개월 내 다시 돌아온 사람(p1, p3, p5)의 행동패턴 위주로 파악
  • 해당 서비스의 “구독 연장”은 곧 학습을 지속해나간다는 것을 의미

분석 목표

  • "학습 지속성"에 영향을 미칠 수 있는 요인 탐색
    • 사용자가 학습을 지속할 수 있는 환경을 제공, 구성하기 위한 인사이트 도출에 주력
      ⇒ 사용자의 학습 지속성 유지/강화 방안 마련
    • 본격적인 EDA에 앞서 심층분석을 위한 방향성 제시 : 1차 분석 실시 후 중요도를 고려하여 2차 분석 진행 예정

분석 과정

💡 자세한 설명은 하단 참조

결론 및 제언

  1. 구독 해지 원인 파악을 위한 유저 리서치 필수

    • 최근 3개월 이내에 구독 해지한 사용자가 전체의 약 37%에 해당하므로 원인 파악이 시급함
    • 서비스 경험 후 중단 이력이 있는 사용자들의 '중단 이유' 파악
      (나머지는 “구독률 up” 프로젝트에서 진행)
  2. 선결제 시 제공할 혜택 검토

    • 서비스 이용 기간이 3개월 미만임에도 이미 3개월 치 구독료 결제가 확인된 케이스가 전체 사용자의 약 10%에 달함
    • 이는 신규 가입자 유입과도 연관된 부분이 있을 것이라는 예측이 가능함.
    • 따라서 장기 구독을 선결제로 진행할 경우 추가 할인 등 적정 수준에서 제공 가능한 혜택에 대해 관련 부서와 논의할 필요 있음
  3. 사용자들의 선수지식 수준 파악

    • 학습 성취도와 무관하게 "낮은" 학습 난이도를 선호하는 사용자가 전체의 약 50%에 달함
    • (유저 리서치 등 추가 조사를 통해) 실제로 사용자의 다수가 '입문 수준’의 학습자라면 주요 타겟으로 설정, 입문자 수준에 초점을 둔 학습지원 서비스 재정비
    • "커뮤니티 참여도"가 제일 높은 집단 = "낮은" 학습 난이도 선호하는 집단 : 커뮤니티 활용 방안 우선 마련
  4. 전반적인 학습콘텐츠 난이도 파악

    • 학습 성취도와 무관하게 "낮은" 학습 난이도를 선호하는 사용자가 전체의 약 50%에 달함

    • 제공하고 있는 콘텐츠 난이도가 상향 평준화 되어 있는 것은 아닌지 파악하는 과정도 필요함

    • 다행히 학습성취도 부분에서 난이도와 관련한 심각한 이슈는 발견하지 못함(우선순위 배제)

    • 그러나 98%에 가까운 학습자가의 성취도가 보통 수준(중하~중상)에 머무르고 있는데, 이들의 성취도를 중상 수준 이상으로 견인할 장치가 마련된다면 구독 연장에 도움이 될 것
      = 높은 학습 성취도 → 학습 지속성 향상 → 구독 연장

    • (로그 데이터를 통해) 어떤 코스, 어떤 세션에서 가장 많은 사용자가 학습을 중단했는지 파악할 것

  5. 학습콘텐츠별 러닝타임 점검

    • 사용자들이 '하나의 세션에 투입한 평균 시간'은 200분 이내, '평균 로그인 시간'은 약 25분 이내에 집중되어 있음
    • 최소 단위 콘텐츠의 러닝타임은 8~10분(200/25) 이내가 효과적임 : '마이크로 러닝'으로 학습부담감 완화
  6. 마지막 접속 시점별 메시지 발송 내용 구분

    • 마지막 접속 시점으로부터 15일 전 까지는 재접속 사용자가 지속적으로 증가
    • 16일 이상 경과한 시점부터 재접속자 수가 급감하는 추세를 보임
    • 마지막 접속일로부터 15일 전후를 기준으로 15일 이내 접속한 사용자에겐 독려 메시지, 16일 이상 경과한 사용자에겐 동기부여 메시지 발송

아쉬운 점

  • (1) 제공된 데이터셋이 결측치도 없고, 외관상 잘 정제되어 보였기 때문에 전 처리에 큰 노력을 기울이지 않고 바로 분석에 돌입
    • 그 결과 기껏 분석한 산출물의 결과값이 유의하지 않은 경우가 다수 : 분석을 했으나 인사이트를 찾을 수 없다.
  • (2) 메타 데이터가 함께 제공되었다는 이유로 컬럼에 대한 정의를 보다 명확하게 파악하지 않고 시작했다(info, describe만 가볍게 훑어본 정도)
    • 그 결과 분석 과정에서 데이터 값이 이상하다는 것을 느끼고 도중에 많이 헤맸다.
    • 데이터에 대해 추가적으로 질문하거나 심층 데이터를 얻을 수 없어 추측에 의존한 분석을 진행할 수 밖에 없었다
  • 결국 주어진 시간 내에 과제를 완료하려다 보니 내가 한 것은 표면적인 1차 탐색 뿐이었다.
    • 현상에 대한 구체적인 원인, 뾰족한 액션을 도출하는 것은 불가능
    • 이 안에서 사소한 인사이트라도 도출해보려고 하니 과대 해석이 포함된 것 같다
    • (시간 관계 상 내 의견에 대한 검증도 불가능)

회고

  • 분석하는 동안 재밌었고 시간 가는 줄 몰랐다는 점에서 긍정적인 측면이 있지만
  • 투입한 시간(약 3.5일)에 비해 산출물의 결론이 너무 열린 결말은 아닌지…
  • 파이썬, 통계 공부를 더 열심히, 반복하면서 해야겠다.
    • 파이썬 스킬 부족 : 내가 더 해보고 싶은 방법이 머릿속으로는 그려졌으나, 실행 과정에서 코드 에러 빈번하게 발생 ⇒ 막히는 부분은 chat CPT의 도움을 구하기는 했으나 심층적인 분석에는 큰 도움이 되지 못했다. 내가 실력을 더 기르는 방법 뿐..
    • 통계 지식 : 정확히 기억은 나지 않지만 통계 시간에 배웠던 이론들을 접목했다면 지금처럼 파이썬 스킬이 부족하더라도 조금 더 깊이 있는 통찰이 가능하지 않았을까 하는 아쉬움이 들었다.
  • 그래도 이렇게 부족한 수준임에도 내 힘으로 미니 프로젝트 한 사이클을 마칠 수 있었던 것은 과거 경력, 경험지식에 많이 의존했기 때문이라고 생각한다(도메인 지식이 분석에 미치는 영향은 엄청난 것 같다)
    • 반대로 이번에는 내가 익숙한 분야를 다룬 과제여서 이 만큼이라도 이룬 것이지, 생소한 영역이었다면 과제를 시간 내에 마치지 못했을 수도 있겠다는 생각이 들었다.

멘토님 피드백

: 제한적인 시간 내에 본인 역량에 맞게 업무 수행

  • 상관 관계를 통해 분석 방향을 잘 잡았고
  • 주피터 노트북으로도 분석 내용과 포인트를 잘 정리해놨음
  • 데이터 분석가로써 의심과 파고들기를 잘해줌
  • 가설 수립과 그에 대한 본인의 의견을 잘 정리함
  • 결론까지 잘 마무리했으면 더 완성도가 높았을 것 같아서 아쉬움

💡분석 과정 (상세)

part.1

  • payment_pattern 사용자 비중(0~7) 균등 : 모두 12~13% 이내의 수치를 나타냄
  • subscription_type : Basic과 Premium이 각각 6:4 비중
    • Basic은 'pattern 7'에 해당하는 사용자(3개월 full 결제)가 가장 많은 것으로 나타남
    • Premium은 'p1' 사용자(마지막 한 달 만 결제)가 가장 많았고 'p4'(첫 달만 결제), 'p5'(첫 번째, 세 번째만 결제) 사용자가 가장 적음
  • [문제점] 전체의 사용자 중 약 37%가 최근 3개월 이내 구독 해지 : 결제 패턴 p2, p4, p6 해당
  • [의견 1] 현재 구독 상태를 유지 중인 p1(마지막 1달), p3(마지막 2달), p7(full) 유형을 '구독 연장' 우선순위 대상**으로 공략해야 함 (타겟 마케팅 필요)
  • [의견 2] 서비스 경험 후 중단 이력이 있는 사용자***를 대상으로 유저 리서치를 진행하면 구독 연장에 도움이 될 인사이트 도출 가능성 있음

part.2

  • subscription_duration : 사용자가 서비스에 가입한 기간 (월)
  • 서비스 가입기간 평균 12개월, 최소 1개월, 최대 23개월
    • 서비스 가입 기간이 3개월 미만인 사용자는 전체의 8.79 %
  • 최근 3개월 모두 결제한 사용자 p7의 데이터를 따로 보면 의아한 부분이 있음
    • [의문점] 서비스 가입 기간이 최소 1개월인데 최근 3개월 치 결제가 확인되었다?
    • 서비스 가입 기간이 3개월 미만인 p7 사용자가 적지 않음 (1개월: 53명, 2개월: 62명 = p7의 약 9% 해당)
    • 이 경우, "3개월 치 이상" 구독 서비스를 한 번에 결제한 것으로 추정 → 3개월 이상 결제 시 할인율이 높았던 것으로 추정
    • 실제로 전체 Basic 사용자 중에서 p7 비중이 가장 높았음 → Basic 사용자에게 "선결제" 혜택의 중요성 확인 필요
  • [의견 3] 장기 구독을 선결제로 진행할 경우, 추가 혜택을 제공**한다면 구독 연장에 긍정적인 영향이 있을 것이다

part.3

  • preferred_difficulty_level (선호하는 난이도)
  • 사용자들이 가장 선호하는 학습난이도는 ‘LOW’
    • 학습난이도 중 낮은 수준(Low)을 선호하는 사용자가 가장 많음
    • 여기에서 두 가지 가설을 제시할 수 있음
      • (가설 1) 사용자 중 **'입문자'가 차지하는 비중이 크다 = 주요 타겟을 '입문자'로 설정하되, Medium, High에 해당하는 콘텐츠로 이어지는 과정에서 난이도의 갭이 갑자기 커지는 일이 없도록 유의
      • 즉 스캐폴딩 설계에 관심을 기울여야 사용자가 구독 상태를 연장할 가능성이 높아질 것
        ⇒ 멘토링, 질의응답, 학습내용 리뷰 등 과도한 부담감을 느끼지 않고 학습을 이어갈 수 있는 다양한 장치 필요
        scaffolding : 학습자에게 적절한 인지적 도움, 안내를 제공하여 학습을 촉진하는 전략
      • (가설 2) 어쩌면 우리가 제공하는 콘텐츠 난이도가 전반적으로 "상향 평준화"되어 사용자 입장에선 어렵게 느껴지는 경우가 많다는 것을 반증하는 메시지일 가능성도 있음
      • 전반적인 콘텐츠 난이도 검토 & 사용자 리서치 병행 필요

part.4 (part 3_가설 1 관련)

  • community_engagement_level (커뮤니티 참여도)
  • 사용자 중 다수가 입문자(초보자)라면 그들을 위한 “학습지원 전략이 보강”될 필요가 있음(스캐폴딩)
  • '낮은' 학습 난이도를 선호하는 사람들의 커뮤니티 참여도 확인
    • 낮은 학습난이도를 선호하는 사용자가 커뮤니티 참여도가 높음
    • [의견 4] ’낮은 학습난이도를 선호하는 사용자’들을 위한 전략으로  커뮤니티를 적극 활용하는 것이 효과적일 것

part. 5(part3_가설 2 관련)

  • 현재 우리가 제공하는 콘텐츠 난이도가 “상향 평준화” 되어 있는 것일까?
  • recent_learning_achievement (최근 학습성취도)

(장애 요소) 제공된 데이터만으로는 학습 성취도에 대한 깊이 있는 탐색이 어려움

  • '최근 학습성취도'의 정확한 산출 기준이 모호(단위 기간이 일? 주? 월?)
  • 주어진 데이터만으로는 '최근 학습성취도'가 의미하는 바가 정확히 무엇인지 알 수 없음
    - 단순 진도율을 의미하는가? : 이전 대비 수강 완료한 콘텐츠 비율?
    - 접속 시간(로그인) 기준? 실제로 콘텐츠를 시청한 시간 기준?
    - 중간 퀴즈, 평가 등의 결과로 산출하는 것인가?
  • 해당 컬럼은 퍼센트(%) 단위의 값을 의미하는 것 같지만 ⇒ 전체 성취도 케이스의 평균은 75, 최소값은 35.9
  • 성취도가 100 이상인 케이스는 58개 : 평균 102.7 , 최대 112.6 (편차는 크지 않아 보임)
  • 이전 시점 대비 학습 진행률을 의미한다고 여기는 것이 논리적
    ⇒ (전제 설정) 성취도 100 이상 = 바로 직전 시점 보다 많은 양의 학습을 진행함_시청시간 기준
  • 박스 플롯으로 시각화 = 바로 눈에 띄는 특징이 없다
    • 학습성취도가 중앙값 인근에 집중 분포 ⇒ 5단계로 범주화하여 다시 시각화 : 'Low', 'Medium-Low', 'Medium', 'Medium-High', 'High’
    • 5단계 범주 적용한 파이 차트 : Low : 0.84 % , High : 1.35 %
    • 5단계 범주 적용한 카운트 플롯
  • 다행히 낮은 학습난이도를 선호하는 사용자의 성취도가 크게 떨어지지 않고 적정선을 유지하고 있는 것으로 보임(Medium 수준에 포진)
  • 전반적으로 선호하는 난이도와 관계없이 학습성취도가 크게 떨어지거나 높아진 케이스가 눈에 띄지 않음 : 일반적인 패턴으로 생각할 수 있음
  • 콘텐츠 난이도의 상향 평준화는 크게 우려하지 않아도 괜찮을 듯함(우선순위에서 제외)
  • 다만 낮은 학습난이도를 선호하는 학습자의 다수가 보통 수준(Medium)의 성취도에 집약되어 있다는 점에서,
    • (의견 5-1) 이들의 학습 성취도를 중상(Medium-High) 이상으로 견인할 장치 마련을 권장함
      • 높은 학습성취도 → 학습 지속성 향상 → 구독 연장의 추진력으로 작용
    • 또한 전체적으로 보았을 땐 성취도 수준이 일반적인 패턴을 보였지만 ⇒ Low와 High를 보았을 때
      • 중단된 세션의 편차가 완료한 코스의 편차 보다 크다는 점에 주목할 필요가 있음.
      • (의견 5-2) 2차 분석을 위해서...
        • (1) 학습성취도가 낮은/높은 사용자들이 각각 "어떤 코스"의 "어느 세션"에서 많이 중단했는지 분석
        • (2) 분석 시점을 중심으로 세션을 중단하고 몇 일이 경과한 것인지 확인
        • (3) 자주 언급된 세션에서 중단한 사용자 그룹에서 인터뷰 대상 선정, 세션 중단의 직접적인 원인 파악 : 난이도(너무 어려워서, 너무 쉬워서 중단)의 문제인지 흥미의 문제인지, 기타 사유에 의한 것인지 등

part.6

  • averagetime_per_learning_session (각 학습 세션에 소요된 평균 시간분)
  • 각 학습 세션에 소요된 평균 시간(분)을 살펴보자 (콘텐츠별 실제 러닝타임은 모르지만...)
    • 사용자들이 '하나의 세션에 투입한 평균 시간'은 200분 이내, '평균 로그인 시간'은 약 25분 이내에 집중되어 있음
    • (의견 6) 최소 단위 학습콘텐츠의 러닝타임은 8~10분(200/25) 이내가 효과적임 : '마이크로러닝'으로 학습부담감 완화
    • 학습 콘텐츠별 러닝타임 확인 필요

part.7

  • recentlogin_time (최근 로그인한 시간일)
  • 평균 15일(=중앙값), 최소 1일, 최대 29일
    • 사용자가 마지막으로 접속한 시점을 범주화

    • plot으로 시각화

    • 하루 전과 두 번째 구간(2~5일 전) 사이의 갭이 가장 큰 것으로 나타남 : 하루 만에 재접속하는 사람은 약 7%에 불과

      • 이 부분은 분석 시점이 무슨 요일 인지에 따른 영향이 클 것으로 예상
      • 월요일에 분석 시, 주말 접속자가 평일보다 많았을 것 ⇒ 날짜 데이터 없으므로 확인 불가
    • 마지막 접속 시점으로부터 15일 전 까지는 재접속 사용자가 지속적으로 증가, 16일 이상 경과한 시점부터 재접속자 수가 급감하는 추세를 보임

    • (의견 7) 마지막 접속일로부터 15일 전후를 기준으로 15일 이내 접속한 사용자에겐 독려 메시지, 16일 이상 경과한 사용자에겐  동기부여 메시지 발송


      나중에 밝혀진 데이터 출처는 dacon : https://dacon.io/competitions/official/236179/data

0개의 댓글