얘는 식당정보를 api로 얻어서 id만 추출해서 자세한 식당정보를 다시 얻은 다음에 sqlite에 적재하는 코드입니다
얘는 머신러닝 모델을 만드는 코드입니다
얘는 데이터를 통합하여서 전처리를 진행하는 코드입니다.
얘는 위에서 얻은 데이터가 적재된 데이터베이스 파일입니다. 안에 save_df가 적재된 테이블 이름입니다.
얘는 데이터베이스에서 export를 통해서 얻은 csv파일입니다
얘는 모델을 만들고 이를 피클로 인코딩된 파일입니다.
얘는 플라스크를 실행하는 파일입니다.
얘는 blueprint파일로 __init__에 적용되어집니다
추가) procfile과 requirement는 배포시도를 실패하여서 안보셔도 됩니다.
여행에서 중요한 것중에 하나는 맛있는 밥을 먹는 것. 따라서 괜찮은 식당을 찾는게 중요함. 이 프로젝트에서는 머신러닝을 사용해서 식당을 추천하는 것을 구현함. 이때 식당데이터는 트립어드바이저 api를 사용해서 구현함. api를 이용해서 데이터를 불러와서 sqllite로 데이터베이스를 이용해서 데이터를 관린하고 식당을 추천하는 모델을 만들고 이후 metabase를 이용한 시각화와 flask를 이용한 배포를 구현함
트립어드바이저에 있는 식당 데이터를 가져옴
Sqlite 데이터 베이스에 저장
Xgboost를 이용한 머신러닝 모델 개발
모델을 피클링해서 플라스크를 통한 웹서비스 개발
메타베이스를 이용한 대시보드로 데이터 분석
xgboost를 이용해서 모델링을 진행하였고 평가지표는 0.8정도가 나왔다. 이후 테스트를 진행할때 식당카테고리는 피자이고 음식랭크는 35,서비스는 40,가격은40 리뷰의 개수는 33개이고 식당순위는 100위일때 만족도 예측1이 예측되는 것을 볼 수 있다.
처음에는 데이터 수집시에 코드를 잘못짜서 21시간 수집한 데이터가 70여개정도밖에 안나와서 당황하였고 데이터 수집시 신중해야 한다는 것을 배웠다.
데이터를 수집할 때 대부분이 완벽한 칼럼정보를 가지고 있다고 생각하여서 완벽한 칼럼정보를 가지고 있는 것만 수집하였는데 생각보다 수가 적어서 완벽한 데이터는 없다고 느꼇다. 이 경우에 결측치를 대치하는 방법이 있겠지만 실제 음식점데이터인데 대치를 해야하나에 대한 궁금증이 들었다. (예를 들면 가격이 없는데 이걸 최빈값이나 평균값으로 대치 할 수는 없다.)
Heroku를 이용한 배포를 시도하였으나 아직 지식이 부족한 것 같아서 못하였는데 앞으로 heroku에 대해서 더 공부를 해야겠다.
마지막으로 데이터를 거의 40시간 (중간에 쉬기도 함) 가량을 수집한 내 노트북에게 고맙다고 전하고 싶다.