| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- Til
- ndarray
- 유데미부트캠프
- 코딩테스트
- numpy
- 판다스
- 백준
- 데이터시각화
- 스타터스부트캠프
- 데이터프레임
- 유데미코리아
- 그리디 알고리즘
- 시각화
- 정렬
- 파이썬
- 유데미
- matplotlb
- Tableau
- 유데미큐레이션
- 취업부트캠프
- DataFrame
- 부트캠프후기
- 데이터드리븐
- 태블로
- Leetcode
- python
- 넘파이
- pandas
- 데이터분석
- 브루트포스 알고리즘
- Today
- Total
Diary, Data, IT
[Tableau] Airbnb 서비스 개선 프로젝트 본문

0. 분석 계기
웅진 STARTERS 활동의 하나로서, Airbnb의 서비스 개선을 도모하는 전략을 제시하는 컨설턴트라는 컨셉으로 프로젝트를 진행했다.
프로젝트에는 미국 Airbnb의 객실 데이터를 활용했다.
1. 아이디어 도출
Airbnb(에어비앤비)의 객실 정보를 활용하여 현재 좋은 서비스를 제공하고 있는 '우수 객실'과, 서비스가 좋지 못한 '관리가 필요한 객실'(이하 관리객실)을 정의할 수 있다면, 해당 객실들에 추가적인 benefit과 penalty를 가하여 에어비앤비의 전체적인 서비스 개선을 이끌어낼 수 있다고 생각했다.
이를 위해 객실을 공정하게 평가할 수 있는 '객실 점수'를 정의할 필요가 있었다. 보유한 데이터에서 객실 점수를 정의하기 위해 활용한 정보들은 다음과 같다.
1. 리뷰 수
2. 리뷰 평점
3. 객실 등록 날짜
2. 객실점수 정의
위 변수들을 활용하여 1. 리뷰 수가 많고, 2. 평점이 높은 객실을 우수객실의 기준으로 선정했다. 다만 리뷰 수의 경우 운영기간이 늘어날수록 증가하는 관계가 있었다. 따라서 운영기간을 추가적으로 고려하여 3. 운영기간 대비 리뷰 수에 따른 객실 점수를 산정했다.
2.1 리뷰 수 정규화

하지만 위 그래프를 통해 알 수 있듯이 운영기간이 7년인 경우 객실별 평균 리뷰 수가 감소했다는 사실을 확인할 수 있다.
그 원인은 아래 그래프를 통해 찾을 수 있다.

Host Since가 2008년인 객실 수는 38여개로 매우 적었고, 2008년은 에어비앤비가 서비스를 시작한 해이기도 하다. 따라서 2008년에 등록된 객실의 경우 본격적으로 에어비앤비가 활성화되기 이전에 등록된 객실이기 때문에 상대적으로 저조한 리뷰 수를 보유했다고 판단할 수 있다.

또한 운영기간별 리뷰 수의 분포가 다른 양상을 보이고 있었다. 따라서 객관적으로 객실의 리뷰 수가 많고 적음을 평가하기 위해서는 년도별 분포를 반영하여 '운영기간별 리뷰 수 정규화'가 필요하다는 결론을 내렸다.
정규화된 리뷰 수는 추후 리뷰 평점과 곱해 객실 점수로 산출될 예정이기 때문에, 이 경우에는 평균을 1로 하는 정규분포로 정규화하는 것이 적합하다고 판단했다. N(1,1)로 정규화하면 리뷰 수가 평균적인 수준이라면 평점을 그대로 반환하고, 리뷰 수가 평균보다 많다면 평점에 1보다 큰 수를 곱해 더 높은 점수를 받는 방식으로 객실점수를 산출할 수 있다.
태블로 LOD 계산식은 다음과 같다. [리뷰 수 정규화] 필드에 1을 곱해 N(1,1)로의 정규화를 진행했다.

운영기간별 평균 = {FIXED [운영기간]: AVG([Number Of Reviews])}
운영기간별 표준편차 = {FIXED [운영기간]: STDEVP([Number Of Reviews])}
리뷰 수 정규화 = {FIXED [Room Id], [Price]:
(AVG([Number Of Reviews]) - AVG([운영기간별 평균])) / AVG([운영기간별 표준편차]) +1}
2.2 정규화 보정
운영기간별 정규화를 거친 리뷰 수의 분포는 다음과 같이 우측 꼬리가 매우 긴 형태인 것을 확인할 수 있다.

이 정규화 결과를 그대로 객실 점수에 활용하기에는 한 가지 문제가 있었다.
최종적인 객실 점수는 0 - 100사이의 점수로 도출되어야 하는데, 이대로 100점 환산을 하게 되면 분포의 우측 꼬리에 위치하는 소수의 객실만 높은 점수를 받게 되며 대다수의 객실이 매우 낮은 점수를 받게 되어 객실 점수가 고르게 분포하지 못했다. 또한 이렇게 산출된 점수는 리뷰 수가 이상치에 취급될 정도로 매우 많은 소수의 객실을 100점의 기준으로 두게 되므로 다소 엄격한 점수이기도 했다.
따라서 정규화 결과가 일정 수치를 넘어가지 않도록 설정하는 추가적인 보정을 진행했다.
결정된 기준 수치는 3.33으로 N(1,1)에서 상위 1%에 해당하는 지점이다. 태블로 계산식은 아래와 같다.
IF [리뷰 수 정규화] >= 3.33 THEN 3.33
ELSEIF [리뷰 수 정규화] <0 THEN 0
ELSE [리뷰 수 정규화]
END
2.3 객실점수 산출 및 100점 환산
추가적인 보정을 거친 결과를 리뷰 평점과 곱해 최종적인 객실 점수를 산출했다.
앞서 언급한 것처럼, N(1,1)을 따르는 리뷰 수 정규화와 평점을 곱하여 리뷰 수가 평균적인 수준일 경우 평점이 그대로 객실점수로 반환되며, 리뷰 수가 평균보다 높은 수준일 경우 평점보다 더 높은 객실 점수를 받도록 설계했다.
마지막으로, 객실 점수를 일반적으로 사용하는 점수의 범위인 0 - 100 사이로 환산했다. 이를 구현한 태블로 계산식은 아래와 같다.
객실점수 = {FIXED [Room Id], [Price]: AVG([리뷰 수 정규화 - 보정]) * AVG([Review Scores Rating])}
객실점수 - 100 환산 =
IF ISNULL([객실점수]) THEN 0
ELSE [객실점수] / {FIXED: MAX([객실점수])} * 100 END
3. 우수 객실/관리 객실 선정

최종적인 우수 객실은 1. 리뷰 수가 많고, 2. 리뷰 평점이 높다는 2가지 조건을 모두 만족해야 하기 때문에 다소 엄격한 기준으로 선정하고자 했다. 상위 5%의 객실을 포함하는 85점 이상을 기본으로 하되, 대시보드에서는 기준을 조금 더 완화하거나 엄격하게 설정하며 적절하게 조정할 수 있도록 객실 점수의 범위를 80점에서 90점 사이로 구성했다.

관리 객실의 기준은 객실 점수 이외에도 운영 기간을 포함하여 고려할 필요가 있었다. 객실 점수 산출 과정에서 리뷰 수가 반영되는데 운영기간이 짧은 객실의 경우 리뷰 수가 적다고 당장 페널티를 부과하기에는 무리가 있으며, 점차 개선될 여지가 충분하기 때문에 운영기간이 3년 이하인 객실의 경우 관리 대상에서 제외했다. 다만 이 경우에도 대시보드에서는 기준을 완화하여 운영기간을 3년에서 5년 사이로 조절할 수 있도록 구성하였다.
추가적으로 관리 객실은 서비스 중단을 고려할만한 객실이라고 생각하여, 기준을 선정하는데 매출을 추가적으로 활용했다. 전체 매출에 영향이 미미한 객실들은 서비스를 중단할만한 근거가 있다고 판단했다. 그 결과 운영기간이 3년 이상인 객실들 중, 객실 점수가 20점 이하인 약 60%의 객실이 매출의 10%가량을 차지하며, 객실 점수가 15점 이하인 46%의 객실은 매출의 5%도 내지 못하고 있다는 사실을 파악했다.
그래프를 통해 적어도 객실 점수가 15점 이하인 객실의 경우 서비스 중단 혹은 추가적인 관리가 분명하게 필요하다고 판단했다. 최종적으로 운영기간이 3년 이상이며, 객실 점수가 15점 이하인 객실을 관리 객실로 설정하였다. 대시보드는 추가적인 조정을 할 수 있도록 객실 점수의 범위를 10점에서 20점 사이로 설정했다.
4. 대시보드 구성


대시보드는 크게 1. 우수 객실 리스트, 2. 관리 객실 리스트를 포함하여 2가지 페이지로 구성했다. 각 대시보드에서 확인할 수 있는 내용은 아래와 같다.
4.1 전체 현황

대시보드 상단에 전체적인 현황을 확인할 수 있는 그래프들을 수록했다. 해당 그래프들을 통해 지역별로 숙소가 어느정도 분포하는지, 가격은 어느정도로 형성되어있는지 확인할 수 있다. 또한 운영기간 필터를 통해 운영기간에 따라 리뷰 수가 어떻게 분포하는지도 볼 수 있다.
해당 현황들은 대시보드 좌측 바에 위치한 [현황 선택]을 통해 전체 객실 기준, 우수 객실 기준, 관리 객실 기준으로 나누어서 확인할 수 있도록 구성했다. 이를 통해 전체와 비교해 우수/관리 객실의 특성을 쉽게 파악할 수 있다.
4.2 우수/관리 객실 비중 및 매출

해당 대시보드의 주 목적인 우수 객실과 관리 객실의 비중을 확인할 수 있는 그래프이다. 대시보드 우측 상단에 위치한 우수/관리 객실의 기준을 조절할 수 있는 매개변수의 영향을 받는다. 설정한 기준에 해당하는 객실 수와, 전체에서 해당 객실들이 차지하는 매출의 비중을 나타냈으며, 아래의 누적 비율 그래프를 통해 각각의 기준에 따른 비중과 매출 비율을 대략적으로 알 수 있다. 해당 그래프를 통해 적절한 우수/관리 객실의 기준을 정하는데 활용할 수 있다.
4.3 우수/관리 객실 리스트

매개변수로 설정한 우수/관리 객실 기준을 만족하는 객실들의 리스트이다. 객실명과 호스트, 지역, 가격 등 객실에 대한 구체적인 정보를 포함하도록 구성하여 해당 객실들을 빠르고 간편하게 관리할 수 있도록 의도했다. 해당 리스트에서 가격 앞에 있는 원은 지역 평균보다 가격이 높은 경우 색칠되어있어 대략적인 가격을 비교할 수 있다.
우수 객실 리스트의 경우 리스트 우측 상단에 매개변수를 지정하여, 전체/신규 우수객실/스테디셀러로 추가적인 기준을 설정할 수 있다. 신규 우수객실(New)의 경우 운영기간이 2년 이하인 우수 객실을 의미하며, 스테디셀러의 경우 운영기간이 5년 이상인 우수 객실을 의미한다. 해당 매개변수를 통해 우수 객실 중에서도 빠르게 성장한 객실과, 꾸준히 사랑받는 객실에 조금 더 주목하여 해당 객실들을 추천하는 등 추가적인 서비스를 제공할 수 있을 것으로 기대한다.
5. 결론
1) 객실 점수를 도입하여 우수 객실과 관리 객실을 파악하고 효율적인 관리를 도모할 수 있다.
에어비앤비에는 현재 객실 이용자들이 평점을 남길 수 있는 서비스가 존재하지만, 평점은 평균 91점으로 매우 높은 편이며, 전체 객실의 평균 리뷰 수는 11.97개로 매우 적은 편이다. 따라서 단순 평점만으로 객실을 평가하기에는 무리가 있다.
따라서 평점과 리뷰 수, 운영기간을 이용한 종합적인 객실 점수를 새롭게 정의하고, 이를 통해 우수 객실과 관리 객실의 리스트를 추출하였다. 우수 객실은 추천에 활용하거나 새로운 benefit을 제공하고, 관리 객실의 경우 penalty를 가하거나 객실 서비스 개선을 요청하여 전체적인 에어비앤비의 서비스 개선을 도모할 수 있다.
2) 관리 객실은 매출 비중이 매우 적어 서비스 중단을 고려할 필요가 있다.
정의된 관리 객실의 매출을 추정한 결과 운영기간이 3년 이상인 객실 중 객실 점수가 15점 이하인 46%의 객실은 매출의 5%도 내지 못하고 있다는 사실을 파악할 수 있었다. 이 46%의 객실들을 에어비앤비에서 관리하기 위한 비용은 매우 많이 소요될 것이고, 오히려 서비스를 중단했을 때 더 이익이 될 수 있다. 해당 객실들이 에어비앤비에 가져다주는 수익과 해당 객실들을 에어비엔비에서 서비스하는 과정에서 필요로하는 비용을 계산하여 순이익을 가져다주지 못한다면 서비스 중단도 고려할 필요가 있다. 이러한 과정을 통해 서비스가 제대로 제공되지 않는 많은 객실을 제외하여 필요한 리소스를 줄이고, 순이익을 증가시키는 효율적인 전략을 세울 수 있을 것이다.
Airbnb Strategy Dashboard
Airbnb Analysis Dashboard
public.tableau.com
'Project' 카테고리의 다른 글
| [Tableau] Superstore Sales Tracking 프로젝트 (0) | 2023.07.10 |
|---|---|
| [미니프로젝트] 전국과 제주도 상권 정보 분석/데이터 시각화 (2) | 2023.02.20 |