/ML_team2_Recommend-Travel-Route

[KHUDA-5th] ToyProject

Primary LanguageJupyter Notebook

선호도 기반 제주도 여행 경로 추천

숙소와 가깝고 여행 스타일이 유사한 다른 여행객들이 방문한 여행지들의 평점을 반영하고 이를 재구성하여 최적의 여행 경로를 추천합니다.

🙌 Members

KHUDA 5기 ML 세션 2조, 해보조☀️입니다.


김민권 김시우 김정환 이두원
이태웅 장서연 허윤지

1. Overview

image

image

2. Data Preprocessing

image

여행객의 정보가 담겨 있는 여행객master.csv의 여행 스타일 7가지 특성 (자연vs도시, 숙박vs당일, 새로운지역vs익숙한지역, 휴양/휴식vs체험활동, 잘 알려지지 않은 방문지vs알려진 방문지, 계획에 따른 여행vs상황에 따른 여행, 사진 촬영 중요하지 않음vs사진 촬영 중요) 을 추출했습니다. 이때 여행객의 숙소는 이미 정해졌기 때문에 편하지만 비싼 숙소vs불편하지만 저렴한 숙소 는 추출하지 않았습니다. 이로써 8개의 특성(여행객ID, 여행스타일7개)과 3200개의 샘플로 전처리 하였고 이를 traveler_master.csv파일에 저장하였습니다.

image

방문지 정보가 담겨있는 방문지 정보.csv의 62273개의 샘플 중 위도, 경도가 없는 일부 데이터들의 값들을 추가하였습니다. 또한 ‘올레길’, ‘올레길 주차장’처럼 같은 장소를 다른 표기로 기재된 장소를 한 장소로 통일했습니다. 방문지를 관광지 그리고 식당/카페로 분류하기 위해 호텔, 집, 사적 장소들을 데이터에서 배제하였습니다. 관광지와 식당/카페를 구분하여 식당이면 RES, 관광지면 TOU로 새로운 특성을 추가하고 프로젝트에 활용되지 않는 특성을 제거하여 데이터를 간소화했습니다. 이로써 11개의 특성(여행객ID, 여행ID, 방문 순서, 장소, 여행 유형, 경도, 위도, 만족도, 재방문의향, 추천의향)과 39059개의 샘플로 전처리하였고 이를 visit_info.csv 파일에 저장하였습니다.

image

여행 정보가 담겨있는 여행.csv의 데이터 중 여행객 ID와 주요 이동 수단 특성을 추출했습니다. 이를 travel.csv파일에 저장하였습니다. visit_data에 travel.csv와 visit_info.csv 파일을 travel ID 기준으로 합치고 visit_final에 traveler_master.csv를 travel ID 기준으로 합쳤습니다.

3. Modeling

image

제주도 여행객 숙소의 위도, 경도 데이터를 활용하여 군집을 분류했습니다. 이때 최적의 클러스터 개수(k) 값을 찾기 위해 k를 제주도 읍면리의 총 개수인 43개까지 점차 증가시키면서 클러스터링을 수행하고, 이에 따른 SSE(Sum of Squared Errors) 값을 계산하여 그래프로 나타냈습니다.

image

k=5를 최적의 클러스터 개수로 선정하였습니다. 데이터의 위도, 경도 상 센트로이드(centroid)는 아래와 같이 나왔습니다. 각 데이터를 군집화하였을 때 위와 같이 숙소의 위치가 분류됨을 확인하였습니다.

image

사용자의 여행 스타일 데이터를 입력 받습니다.

image

image

자동차의 유무로 두집단을 나눕니다.

image

MSE 평균 제곱 오차 방법을 이용하여 숙소의 군집에 포함된 범위에서 여행 스타일이 유사한 여행객 상위 5명을 선정합니다. 이때 유사도 측정을 위해 MSE 평균 제곱 오차 방법을 선정한 이유는 선호도가 나타내는 특징 공간 내에서 벡터의 방향의 유사도 보다는 벡터의 길이의 유사도를 따져야 하기 때문입니다.

image

여행지 만족도는 1부터 5까지의 점수로 구성된 방문지 정보의 특성인 만족도, 재방문 의향 그리고 추천 의향 점수의 합으로 정의했습니다.

image

선호도가 유사한 5명의 여행객의 방문지 정보를 추출한 후 관광지식당/카페로 분류합니다. 그 다음 관광지 그룹을 만족도가 높은 순으로 정렬한 후 중복 위치를 제외한 4가지 여행지를 추출합니다.

image

선정한 장소 네 곳을 지도에 표시하여 숙소에서 각 장소와의 거리 계산 후, 숙소와 가장 가까운 장소 A를 선정합니다. A에서 남은 장소와 거리 계산 후 A와 가장 가까운 장소 B를 선정합니다. B에서 남은 장소와 거리 계산 후, B와 가장 가까운 장소 C를 선정한다. 남은 D는 마지막 장소로 관광지만으로 구성된 A-B-C-D 경로를 완성합니다.

image

4. 개선점 및 차별점

image

image

📈 Data