Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[패스트캠퍼스] Making Travel Schedule

1,335 views

Published on

패스트캠퍼스 데이터 사이언스 SCHOOL 3기 프로젝트_Making Travel Schedule_유저 취향에 따른 여행 일정 작성 모델

Published in: Data & Analytics
  • Login to see the comments

[패스트캠퍼스] Making Travel Schedule

  1. 1. Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12 Making Travel Schedule
  2. 2. • Goal - 가고자 하는 여행지에서 유저의 취향에 맞는 Attraction을 추천 - 추천 시 여행지에서 머무는 일정을 고려하여 후보 여행지 집단에서 일정치의 여행지를 추출 - 추출한 여행지들을 일정 별로 묶어 Dictionary 형태로 만든 후 json 파일로 변환하여 웹에 출력 Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  3. 3. • Why? (프로젝트 선정 이유) - 일단 내가 좋아하는 것을 프로젝트 주제로 삼자 (여행, 영화) - 여행을 갈 때 보이는 사람들의 일련의 패턴 중 알고리즘화 할 수 있는 과정을 생각해보자 - 이를 자동화 해보자 자신의 취향을 바탕으로 후보지 선정 여행 일정의 효율을 위해 후보지 주변 탐색 일정 작성 Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  4. 4. • How? (프로젝트 구현 과정) ① Data for Trip Information Trip Advisor Web Service와 Google maps Open API를 활용하여 데이터 수집 1) 데이터 수집 Trip Advisor • 도시 별 관광지 이름 • 관광지 별 타입 (박물관, 관광 명소, 산책로 등) • 관광지 별 리뷰 정보 Google Maps Open API • 관광지 별 위도, 경도 정보 • 관광지 별 ID Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  5. 5. ② Data for User Preference 유저가 선호하는 관광지를 Google Maps Open API의 place_id 형식에 맞춰 저장 ③ Making Database 위의 정보들을 4 개의 Table로 MySQL에 저장 Geoinfos • 관광지 ID, 이름 • 도시, 주소 • 위도, 경도 Ratings • 관광지 별 리뷰 수 • 관광지 별 평점 Types • 관광지 Type Users • User ID • 유저 선호 기방문 관 광지 (Google Maps Place_ID) Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  6. 6. ㆍContent Based Filtering - Trip Advisor Open API 접근 미승인으로 유저들에 대한 대량의 Data Set이 없어 본인과 지인들이 방문한 장소를 ID 별로 입력 - 상대적으로 적은 Data Set으로 추천 알고리즘을 구현해야 하므로 Collaborating Filtering이 아닌 Content Based Filtering 방법 선택 2) 유저 선호도 파악 회원 정보 입력 • 회원 ID, Target City 입력 선호도 계산 • 회원 선호 방문지 Filter • 방문지들의 Type을 Count하 여 선호도 파악 Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  7. 7. • User 들의 선호도가 높은 관광지 별로 주변 관광지를 탐색 - 관광지의 위도, 경도 정보를 거리로 전환하여 일정 거리에 있는 관광지들을 탐색 (해당 거리는 User 별로 Customizing) - 탐색하여 나온 관광지와 기준 관광지를 하나의 Node로 Grouping 3) Making Node User 선호 관광지 1 <Node : 0> 주변 관광지 1 주변 관광지 2 주변 관광지 3 User 선호도를 기준으로 추출된 관광지 User 선호도와 관련 없는 관광지 Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  8. 8. • 하루 일정을 관광지간의 거리로 기준하여 일정 작성 4) Making Schedule Node 탐색 + Node 간 거리 합 (Node 가 1개 이면 생략) Node에 해당 하는 관광지 별 거리 합 거리들의 합 이 일정치 이 상인가? 하나의 일정 제작 일정의 합이 유저의 일정 과 맞는가? 결과 출력 No No Yes Yes Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12
  9. 9. • Summary Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12 1) 결과 <결과의 Excel 출력 화면> • 입력 1) 본인이 인상 깊었던 장소 입력 2) 도시 : Moscow 3) 일정 : 3일
  10. 10. Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12 <결과를 토대로 Google Maps에 찍어본 결과; 1일 – 빨간색, 2일 – 노란색, 3일 – 파란색>
  11. 11. Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12 2) 모델 평가 추천 장소 : 29 비추천 장소 실제 방문 : 20 True Positive : 16 False Negative : 4 실제 미방문 : - False Positive : 13 True Negative : - • Precision : 55 % • Recall : 80%
  12. 12. Data Science School - 이정호 Personal Project / 2016.11 ~ 2016.12 3) 아쉬운 점 - 좀 더 빠른 반응 속도 웹 서비스를 하기에는 다소 느린 반응 속도 - 일정의 기준 지금은 단순 이동거리만을 일정의 기준으로 하고 있지만 관광지별 소요시간까지 고려하면 더 나은 일정 작성이 가능 이를 개선한다면 지금보다 낮은 추천 장소가 나올 것이며 이는 곧 Precision의 증가 4) 활용 방안 - 숙소, 식당 추천 해당 모델은 클래스 안에 Node 별 중심 위도와 경도를 저장하고 있으므로, 이를 기준으로 식당 및 숙소 추천 또한 가능

×