UCSD Qualcomm Institute AI Project 3주차
이번 주는 주제를 바꿨다.
주제를 바꾸게 된 이유
저번 주 부터 계속해서 문제가 되었던 부분이 있었다.
바로 우리 피쳐들 중 "현재 신용계좌에 있는 잔액 수", "지난 12개월동안 신용조회된 횟수"와 같이 현재 시점에 관련된 것들이 많았다.
그런데 아무리 찾아도 저 현재 시점이 언제를 의미하는지를 알 수 없었다.
시점을 찾는데 굉장히 많은 시간과 노력을 투자했음에도 불구하고 진전이 거의 없어서 결국 주제를 바꾸는 것이 낫다고 판단하게 되었다.
주제 선정
주제 선정 기준
선정 기준은 이전 데이터셋에서 문제가 되었던 것들을 피하기 위한 것들과 좋은 성능을 낼 수 있는 조건들로 구성되었다.
- 피쳐의 의미를 명확하게 알 수 있어야한다.
- 피쳐가 너무 많거나 적지 않을 것(이전 꺼는 150개..)
- 데이터 분석을 위해 필요한 배경지식이 많이 어렵지 않을 것
- 선행논문이 많아야한다.
- 데이터 수는 적어도 만개 이상
- 출처가 명확해야한다.
데이터 선정
우리는 하루 정도 시간투자를 해서 캐글 등의 사이트를 정말 열심히 찾아봤다.
신기했던 것은 첫주차와는 확실히 다르게 데이터를 보면 좋은데이터인지 아닌지 바로 감이 왔다.
그렇게 해서 몇개의 데이터를 추리고 토론한 결과
우리는 호텔 예약 이행에 관련된 데이터를 쓰기로 했다.
2015년부터 2017년까지의 데이터가 있고, 각 데이터는 인원수, 도착예정 날짜 등의 예약에 관한 정보와, 예약을 잘 이행했는지 취소했는지 여부를 가지고 있다.
피쳐는 31개이고, 데이터 셋은 11만개이다.
주제 선정
선행 논문을 찾아보니 이 데이터로 예약 취소 여부를 예측한 것들은 많았다. 하지만 그 논문들 중 날짜 데이터를 조인해서 피쳐를 추가한 경우는 없어서 우리는 이전 논문에다가 날짜 피쳐를 추가하는 방향으로 진행하기로 했다.
피쳐분석
이전에 피쳐분석을 오랜 시간동안 했었으니까 금방했다.
각자 맡은 피쳐들의 의미를 파악하고, 파이차트를 통해 분포를 시각화했다.
나임 노드는 위와 같이 구성되어있다.
value counter으로 각 value의 갯수를 세면 ID와 value 컬럼만 있는데, 이때 PieChart가 ID를 하나의 컬럼으로 인식하지 못했다.
그래서 앞에 RowID 노드를 추가했다.
우리의 데이터는 H1호텔과 H2호텔로 구성된다. 각각의 데이터를 분석해보라는 박사님의 말씀이 있었어서 row filter으로 이를 나누고 각각 시각화했다.
또한 포르투갈의 날씨 데이터도 찾았다. 이 데이터에는 포르투갈의 지역과 각 날짜별로 기온, 강수량 등의 정보가 있었다.
선행논문 분석
선행논문은 모두 영어로 되어있어서 내가 직접 읽기에는 어려웠다.
그래서 chat gpt를 활용해서 논문을 한국말로 이해하고, 다시 논문으로 돌아가서 원문을 읽어보는 방식으로 진행했다.
이번 데이터에 대한 논문은 총 3개를 보았다.
논문 정리는 노션에 해두었다.
Hotel booking demand datasets
이 논문은 단순히 데이터셋에 대한 설명이 들어있다.
이전 데이터는 피쳐에 대한 설명이 잘 없어서 힘들었는데 여기는 자세하게 설명되어있어서 좋았다.
Predicting Hotel Bookings Cancellation With a Machine Learning Classification Model
이 논문은 우리가 주로 참고하는 논문이다.
노이즈를 방지하기 위해 제외한 피쳐들은 이유를 명확하게 설명하였고, 전처리 방법에 대한 내용이 자세히 나와있었다.
모델은 xgboost를 사용하였다.
Performance Analysis of Machine Learning Techniques to Predict Hotel booking Cancellations in Hospitality Industry
이 논문은 여러가지 모델과 여러가지 피쳐셀렉션 방법, 정규화 방법을 사용해서 비교하였다.
각 케이스별로 성능 정리를 잘 해둬서 우리도 이걸 참고하면 좋을 것 같다.
원래는 논문 읽는 것을 굉장히 어려워했는데, 막상 읽어보니까 얻는 정보가 굉장히 많았다.
앞으로는 논문을 좀 많이 읽으면서 중요한 정보를 잘 얻을 수 있도록 해야겠다.