写文章
Hotel booking酒店预订——数据分析与建模(转载翻译自kaggle)

Hotel booking酒店预订——数据分析与建模(转载翻译自kaggle)

数据源:

sciencedirect.com/scien

字段解释:

  • hotel 酒店
  • is_canceled 是否取消
  • lead_time 预订时间
  • arrival_date_year 入住年份
  • arrival_date_month 入住月份
  • arrival_date_week_number 入住周次
  • arrival_date_day_of_month 入住天号
  • stays_in_weekend_nights 周末夜晚数
  • stays_in_week_nights 工作日夜晚数
  • adults 成人数量
  • children 儿童数量
  • babies 幼儿数量
  • meal 餐食
  • country 国家
  • market_segment 细分市场
  • distribution_channel 分销渠道
  • is_repeated_guest 是否是回头客
  • previous_cancellations 先前取消数
  • previous_bookings_not_canceled 先前未取消数
  • reserved_room_type 预订房间类型
  • assigned_room_type 实际房间类型
  • booking_changes 预订更改数
  • deposit_type 押金方式
  • agent 代理
  • company 公司
  • days_in_waiting_list 排队天数
  • customer_type 客户类型
  • adr 每日房间均价 (Average Daily Rate)
  • required_car_parking_spaces 停车位数量
  • total_of_special_requests 特殊需求数(例如高层或双床)
  • reservation_status 订单状态
  • reservation_status_date 订单状态确定日期

一. 探索性数据分析(EDA)

该数据集包含两家酒店的数据,一家假日酒店,一家城市酒店。从数据集发布地址的介绍来看,这两家酒店均位于葡萄牙。第一家酒店位于阿尔加夫市的度假区。第二家酒店位于首都里斯本的市区。两家酒店距离280公里的车程,并且均位于北大西洋海沿岸。

该数据集包括从2015年7月1日到2017年8月31日酒店的订单信息

注意:对于大多数问题,要用那些未取消的订单来计算实际的客人数量。显而易见,这点非常重要。

从该数据集中我们能得到解答的问题如下:

  • 顾客来自于哪里?
  • 房客每晚会花费多少钱?
  • 一年中的过夜房价如何变动?
  • 最忙的月份是几月?
  • 人们会在酒店住多久?
  • 订单的市场渠道构成
  • 有多少订单被取消了?
  • 那个月份的订单取消率最高?

你是否有其他问题?可以随时记录下来,并尝试用数据解答它们。

二. 取消率预测(Predicting cancelations)

酒店的管理者期望能够建立一个预测顾客是否实际入住的模型。

这个模型将有助于酒店提前规划所需人力和提供餐饮。

通常为了利益最大化,有些酒店利用这个模型去超额接收订单。

三. 评估特征重要性(Evaluate Feature importance)

得出哪些特征对于取消率预测来说最重要?


1.探索性数据分析

1.1模块导入及数据概览

# 通用模块
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import plotly.express as px
import folium
# 机器学习
from sklearn.model_selection import train_test_split, KFold, cross_validate, cross_val_score
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.ensemble import RandomForestClassifier
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import eli5 # Feature importance evaluation