내일배움캠프_QAQC 1기/TIL

[12/30] TIL_강의, 과제 해설

이지응:) 2024. 12. 30. 20:50
데이터 리터러시

 

데이터 리터러시는 1주차 밖에 없어서 금방 다 들었습니다!

데이터 리터러시가 무엇인지, 데이터 분석 접근법이 무엇인지, 데이터의 종류와 활용법, 데이터 분석 접근법의 단계인 문제 정의, 결론 도출과 이떄 필요한 지표 설정에 대해 배웠습니다.

 

데이터 리터러시

데이터를 읽고 이해하고 분석하여 결과를 의사소토에 활용할 수 있는 능력을 말합니다.

 

데이터 분석 접근법

3가지 단계로 구분되며, 데이터 분석이 목적이 되지 않도록 '왜?'를 항상 생각해야 합니다.

 

문제 정의

분석하려는 특정 상황이나 현상에 대한 명확하고 구체적인 진술로, 프로젝트의 목표를 설정하고 분석 방향을 설정합니다.

문제정의의 팁

  • 결과를 공유하고자 하는 사람이 누구인지 정의하기
  • 결과를 통해 원하는 변화를 생각하기
  • 회사 소속이라면, 경영자의 입장에서 보려고 노력하기
  • 많은 사람들과 의견 나눠보기
  • 반드시 혼자 오래 고민해보는 시간을 가지기

 

문제 정의 방법론

1. MECE(Mutually Exclusive, Collectively Exhaustive)

문제 해결과 분석에서 널리 사용되는 접근 방식으로 복잡한 묹를 체계적으로 분해하고 구조화된 방식으로 분석할 수 있습니다.

분류 기준이 명확해야 하고, 중복되거나 누락된 정보가 있으면 안됩니다.

 

2. 로직 트리(Logic Tree)

MECE 원칙을 기반으로 복잡한 문제를 더 작고 관리하기 쉬운 하위 문제로 분해하는 데 사용합니다.

일반적으로 도표 형식으로 표현되어 쉽게 파악할 수 있습니다.

로직트리 예제

 

 

데이터 유형

정성적 데이터와 정량적 데이터가 있습니다.

  정량적 데이터 정성적 데이터
유형 정형 데이터
반정형 데이터
비정형 데이터
특징 및 관점 여러 요소의 결합으로 의미 부여
주로 객관적 내용
객체 하나가 함축된 의미 내포
주로 주관적 내용
구성 및 형태 수치나 기호
데이터베이스, 스프레드 시트
문자나 언어
웹, 로그, 텍스트 파일
위치 DBMS, 로컬 시스템 등 내부 웹사이트, 모바일 플랫폼 등 외부
분석 통계 분석 시 용이 통계 분석 시 어려움

 

비즈니스 목표를 위해서 두 가지 데이터를 적절하게 활용하는 것이 좋습니다.

 

지표 설정

지표

특정 목표나 성과를 측정하기 위한 구체적이고 측정 가능한 기준

목표 달성도를 평가하고 전략적 겨렂ㅇ에 필요한 핵심 정보를 제공

정의한 문제에 대해 정확하게 파악하기 위해서 필요

'어떤 결과를 기대하는가?'에 대한 정량화된 기준

 

주요 지표

1. Active User(활성 유저)

정의에 따라 전략과 방향이 달라지며 투자를 위한 서비스 지표에 중요한 역할을 하게 됩니다.

 

2. Retention Ratio(재방문율)

고객이 서비스를 지속적으로 이용하고 있는지 파악할 수 있습니다.

서비스 성장에 있어서 매우 중요한 지표라고 할 수 있습니다.

측정 방법에는 N-day 리텐션과 Unbounded 리텐션, Bracket 리텐션 3가지가 있습니다.

  • N-day 리텐션

최초 사용일로부터 N일 후에 재방문한 활성 유저의 비율

습관적으로 사용하거나 반복적으로 행동을 유도하는 제품에 적합

유저가 활성 유저로 집계된 최초 날을 Day 0으로 설정

  • Unbounded 리텐션

특정 날짜를 포함하여 그 이후에 재방문한 유저의 비율

유저가 정기적으로 반복해서 방문하는 서비스가 아닐 경우 적함

채용 사이트, 쇼핑몰, 부동산 매물 서비스 등 사용 빈도가 높지 않은 서비스에 활용하기 적절한 지표

절대적인 수치보다는 지표가 어떻게 변화하는지에 대해 트렌드를 보는 용도로 활용하는 것을 권장

  • Bracket 리텐션

설정한 특정 기간을 기반으로 재방문율을 측정하며, N-day 리텐션을 확장한 개념

서비스 사용주기가 길거나 주기적인 경우 사용하기 적합한 지표

 

3. Funnel(퍼널)

유저들이 어디서 이탈하는가를 확인하기 위한 구조화로 잠재고객을 유입시키며 최종적인 목표 액션을 달성할 때까지의 과정

 

4. LTV(Life Time Value, 고객 평생 가치)

한 명의 유저가 생애 주기 동안 얼마만큼의 이익을 주는지를 정량적으로 지표화 한 것

유저와의 관계를 측정하고 이를 사업적 이익으로 가져가는데 중요한 지표

LTV를 산출하는 방법은 매우 다양하며, 서비스마다, 관점마다 다르기 때문에 다각도로 고민이 필요함

 

읽어보면 좋을 자료들을 남겨두겠습니다!

https://playinpap.github.io/retention-ltv-simulation/

https://blog.toss.im/article/tossbdm

https://eopla.net/magazines/1519

 

북극성 지표

제품과 서비스의 성공을 의미하며 장기 성장을 위해 필수적으로 모니터링 해야 합니다.

북극성 지표의 유형

  수익 모델 서비스 유형 서비스 예시
사용시간 광고, 사용료 sns, 플랫폼, 스트리밍 유튜브, 인스타, 넷플릭스
거래량 판매액, 수수료 커머스, 매칭서비스 쿠망, 크몽, 에어비엔비
효용 사용료 생산성 도구, 헬스 케어 앱 슬랙, 줌, 자라

 

북극성 지표가 중요한 이유

제품/사업 조직이 무엇에 최적화되어야 하고, 무엇을 포기해도 되는 지에 대한 방향 제시

서로 상반된 목표에 집중하거나, 중복으로 일하는 것을 방지

 

결론 도출

결론은 분석된 데이터 결과를 바탕으로 이끌어낸 의미나 통찰로, 데이터에 기반한 해석, 추론 또는 권고 사항을 포함합니다.

결론은 단순하고 쉽게 전달해야 하며, 흥미를 유발해야 하고, 대상자 관점에서 접근하는 것이 좋습니다. 또한 화려한 그래프보다는 대상이 직관적으로 이해할 수 있도록 구성해야 합니다.


 

데이터 분석 종합반

 

3주차 강의를 들었습니다.

공부 한 자료 :

https://colab.research.google.com/drive/1LBQHun7j3B-50qn8dGtreun0l-SvAZCm#scrollTo=0ZLWTAQ7ha6i

 

실제 데이터를 분석하여 그래프 그리는 것을 했습니다. 그래프 쓰는게 확실히 어려운 것 같습니다...!

1. pandas 사용 선언

import pandas as pd

 

2. 데이터 불러오기

sparta_data = pd.read_table('파일 경로', sep=',')

 

3. 데이터 전처리

우리가 원하는 타입의 형태로 데이터 변경

문자열의 형태인 날짜를 시간의 데이터 형태로 변경

format='%Y-%m-%dT%H:%M:%S.%f'
sparta_data['access_date_time'] = pd.to_datetime(sparta_data['access_date'], format='mixed')
sparta_data.tail(5)

to_datetime() : 괄호 안 해당 열의 데이터를 날짜와 시간 데이터로 변경

[날짜 컬럼].dt.day_name : 요일 추가

[날짜 컬럼].dt.hour : 해당 날짜의 시간 값 가져옴

groupby('컬럼명') : 데이터를 특정 기준으로 그룹화하여 처리

agg("변수") : 변수 안 데이터 별 합계 구하기

sort_index() : 데이터 오름차순 정렬

sort_index(ascending=False) : 내림차순 정렬

set() : 데이터의 중복값 제거

drop_duplicates() : 칼럼의 중복 데이터 제거

.reset_index() : 인덱스 정렬

.sort_values( by = ["정렬 기준이 될 레이블"] ) : 지정 값을 기준으로 레이블 정렬

merge() : 두 테이블 병합

 

4. matplotlib, numpy 사용 선언

numpy : 데이터 연산을 빠르고 쉽게 할 수 있게 도와주는 라이브러리

 

5. 그래프 그리기

#그래프 사이즈
plt.figure(figsize=(10,5))

#그래프 x축 y축
plt.bar(weekdata.index, weekdata)

#그래프 명
plt.title('요일별 수강 완료 수강생 수')

#그래프 x축 레이블
plt.xlabel('요일')

#그래프 y축 레이블
plt.ylabel('수강생(명)')

#x축 레이블을 90도로 변환 
plt.xticks(rotation=90)

#그래프 출력
plt.show()
#그래프 사이즈 변경
plt.figure(figsize=(10,5))

#그래프 x축 y축
plt.plot(hourdata.index, hourdata)

#그래프 명
plt.title('시간별 수강 완료 사용자 수')

#그래프 x축 레이블
plt.xlabel('시간')

#그래프 y축 레이블
plt.ylabel('사용자(명)')

#x축 눈금 표시 하기
plt.xticks(np.arange(24))

#그래프 출력
plt.show()

막대그래프의 경우 bar를 사용하고 꺽은선 그래프의 경우 plot을 사용합니다. 

np.arange() : 괄호 안의 숫자만큼 배열을 생성해 줍니다.

 

6. 지도 라이브러리

folium : 분석한 데이터의 결과를 지도에 그리기 위한 라이브러리

MakerCluster : 가까운 거리의 maker들을 군집시켜 해당 건수를 표현

 

그래프 그리는 건 아직 어려워서 그때 그때 코드를 찾아보면서 해야 할 것  같습니다..ㅜ


과제 해설
[QAQC 1기] Python 개인 과제 해설

 

박영선 튜터님꼐서 과제 해설 라이브를 진행하셨습니다.

해설과 다르게 푼 문제가 있었는데, 3-2에서 저는 **(1/2)를 사용했는데 math.sqrt를 사용하면 제곱근을 구할 수 있었습니다.