[패스트캠퍼스] making travel schedule

12
a Science School - 이이이 onal Project / 2016.11 ~ 2016.12 Making Travel Schedule

Upload: jeong-ho-lee

Post on 06-Jan-2017

122 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: [패스트캠퍼스] Making Travel Schedule

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

Making Travel Schedule

Page 2: [패스트캠퍼스] Making Travel Schedule

• Goal- 가고자 하는 여행지에서 유저의 취향에 맞는 Attraction 을 추천

- 추천 시 여행지에서 머무는 일정을 고려하여 후보 여행지 집단에서 일정치의 여행지를 추출

- 추출한 여행지들을 일정 별로 묶어 Dictionary 형태로 만든 후 json 파일로 변환하여 웹에 출력

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

Page 3: [패스트캠퍼스] Making Travel Schedule

• Why? ( 프로젝트 선정 이유 )- 일단 내가 좋아하는 것을 프로젝트 주제로 삼자 ( 여행 , 영화 )

- 여행을 갈 때 보이는 사람들의 일련의 패턴 중 알고리즘화 할 수 있는 과정을 생각해보자

- 이를 자동화 해보자

자신의 취향을 바탕으로 후보지 선정

여행 일정의 효율을 위해 후보지 주변 탐색 일정 작성

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

Page 4: [패스트캠퍼스] Making Travel Schedule

• 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

Page 5: [패스트캠퍼스] Making Travel Schedule

② 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

Page 6: [패스트캠퍼스] Making Travel Schedule

ㆍ 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

Page 7: [패스트캠퍼스] Making Travel Schedule

• 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

Page 8: [패스트캠퍼스] Making Travel Schedule

• 하루 일정을 관광지간의 거리로 기준하여 일정 작성

4) Making Schedule

Node 탐색+

Node 간 거리합

(Node 가 1개 이면 생

략 )

Node 에 해당하는 관광지 별 거리 합

거리들의 합이 일정치 이상인가 ?

하나의 일정 제작

일정의 합이 유저의 일정과

맞는가 ?결과 출력

No

No

Yes Yes

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

Page 9: [패스트캠퍼스] Making Travel Schedule

• SummaryData Science School - 이정호Personal Project / 2016.11 ~ 2016.12

1) 결과

< 결과의 Excel 출력 화면 >

• 입력

1) 본인이 인상 깊었던 장소 입력

2) 도시 : Moscow

3) 일정 : 3 일

Page 10: [패스트캠퍼스] Making Travel Schedule

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

< 결과를 토대로 Google Maps 에 찍어본 결과 ; 1 일 – 빨간색 , 2 일 – 노란색 , 3 일 – 파란색 >

Page 11: [패스트캠퍼스] Making Travel Schedule

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%

Page 12: [패스트캠퍼스] Making Travel Schedule

Data Science School - 이정호Personal Project / 2016.11 ~ 2016.12

3) 아쉬운 점

- 좀 더 빠른 반응 속도

웹 서비스를 하기에는 다소 느린 반응 속도

- 일정의 기준

지금은 단순 이동거리만을 일정의 기준으로 하고 있지만 관광지별 소요시간까지 고려하면더 나은 일정 작성이 가능

이를 개선한다면 지금보다 낮은 추천 장소가 나올 것이며 이는 곧 Precision 의 증가

4) 활용 방안

- 숙소 , 식당 추천

해당 모델은 클래스 안에 Node 별 중심 위도와 경도를 저장하고 있으므로 , 이를 기준으로식당 및 숙소 추천 또한 가능