Download - Airbnb regression

Transcript
Page 1: Airbnb regression

Airbnb 가격 예측 회귀분석

Page 2: Airbnb regression

1. 분석동기 및 데이터 설명

Airbnb에 등록한 각 도시 별 숙소의 ‘Price’와 그것을 결정짓는 중요

한 요인이 무엇인가를 살펴보기 위하여 실시하였다. 또한, 데이터가

다양한 피처를 갖고 수도 적합했기 때문에 분석에 용이할 것이란 점

도 분석을 시작하는 데 큰 동기가 되었다.

1. 분석동기

각 도시 별 데이터는 ‘Tomslee’ 라는 블로거가 크롤링한 데이터를

활용했으며, ‘room type’, ‘city’, ‘reviews’, ‘price’ 와 같은 각 숙소

의 특징을 나타내는 Feature를 갖고 있으며 이와 더불어 ‘Cleaning

Fee’, ‘Check in’, ‘Check out’ 과 같은 정보를 얻기 위하여 크롤링을

통하여 독자적인 데이터셋을 구성했다.

2. 데이터 설명

Page 3: Airbnb regression

2. 데이터 전처리

각 instance는 카테고리 Feature를 많이 포함하고 있어, 이들

을 One-Hot-Encoding 하였다.

1. 카테고리 데이터 전처리

Others

Internet Kitchen Detector

Page 4: Airbnb regression

2. 데이터 전처리

각 데이터 별 결측치는 크게 2가지 유형으로 발생했다. 첫 번째

는 크롤링을 할 시기에 부킹이 되어있어 접속 차단이 되어 발생한 결

측치고, 두 번째는 자료 자체가 갖고있는 결측치다.

첫 번째 유형으로 발생한 결측치는 각 instance 당 결측

Feature가 10개가 넘었때문에 제거하였고, 두번째 유형으로 발생한

결측치는 최빈값을 통해 보충했다.

2. 결측치 처리

3. 스케일링 및 로그변환

마지막으로 정수 데이터의 경우 퍼포먼스 향상을 위하여

Scaling을 실행했다. 또한 잔차들이 등분산성을 만족시키기 위하여

y값인 ‘Price’를 Log변환 시켰다.

Page 5: Airbnb regression

2. 데이터 전처리

- Log변환 전과 후의 ‘Price’ 분포 비교

변환 전 잔차 분포 변환 후 잔차 분포

Page 6: Airbnb regression

3. 모델링

전처리 후 Statsmodel class를 활용하여 기초모형을 설정했다. 수정

R-squared 값은 0.621, AIC는 22630의 값을 얻을 수 있었다.

1. 모델링

Page 7: Airbnb regression

3. 모델링

해당 모형은 아웃라이어를 제거하지 않은 모형으로 Fox' Outlier

Recommendation 의 기준을 넘는 값들을 살펴보았고,

Fox' Outlier Recommendation을 적용하여 모델을 수정하였다.

그 결과, 수정 R-squared는 0.695, AIC는 14680을 얻어 모델 성능

이 향상된 것을 확인할 수 있었다.

2. 아웃라이어 제거

Page 8: Airbnb regression

3. 모델링

한편, 앞서 살펴본 2개의 모델 모두 다중공선성이 나타났다. 이 문제

점을 해소하기 위하여 2가지 방법을 고려했다. 첫 번째는 Heatmap

을 통하여 독립변수간 상관관계를 파악하여 중요도가 낮은 종속변수

를 제거하는 것이었다.

3. 다중공선성 제거

Page 9: Airbnb regression

3. 모델링

아래에 나타난 모형은 'Beds, bedrooms, Switzerland,

Private_room'을 제거한 후에 만든 모형으로 수정 R-squared 값과

AIC값은 이전보다 안 좋아졌지만, 다중공선성을 나타내는 지표인

Conditional number는 1.76e+16 에서 11.8로 크게 줄어들었다.

3. 다중공선성 제거

Page 10: Airbnb regression

3. 모델링

또한, Explained variance 가 0.8 이상이 되도록 차원의 수를 설정하

여 PCA를 한 결과 3개의 차원으로 줄일 수 있었고, 다음과 같은 모

형을 얻을 수 있었다.

3. 다중공선성 제거

Page 11: Airbnb regression

3. 모델링

최종모형은 PCA를 한 모형으로 선택했다. 그 이유는 미세하나 성능이

더 좋았고, RMSE값 또한 작았기 때문이다. 해당 모형을 Cross-

Validation 한 결과 Performance 는 다음과 같다.

4. 최종모형 선택

Page 12: Airbnb regression

4. 결론

- 모형을 통해서 추정하고자 했던 Airbnb의 1박당 가격은 숙소의 전

체 평점, 욕실 수, 쉐어드 룸 객실타입, 추가인원 당 추가요금, 화재감

지기 여부, 주방 유무, Facility1, 2(침대 갯수, 침실 수, 최대수용인원),

City1, 2, Room(숙소의 타입 - 개인실, 숙소전체)에 영향을 받는 것으

로 분석되었다. 분석 전 유효할 것이라 생각했던 슈퍼호스트 여부 및

리뷰 수는 최종 모형에서 제외되었다. 또한, 다중공선성 문제를 해결

하여 안정적으로 모형을 사용할 수 있다고 생각한다.

Page 13: Airbnb regression

4. 결론

- 최종모형의 Predicted Value과 Target Value의 Scatter Plot