Python数据分析-酒店预定分析预测

一、研究背景

在全球旅游业蓬勃发展的背景下,酒店预订量的分析和预测显得尤为重要。酒店业者面临的一个主要挑战是预订的取消,这对酒店的收入和资源管理造成了显著影响。了解不同类型酒店的预订和取消情况,以及预订取消的关键影响因素,可以帮助酒店管理者优化运营策略,提高客户满意度和酒店盈利能力。

本研究基于一个包含城市酒店和度假酒店预订信息的数据集,通过数据分析和机器学习技术,探索影响酒店预订取消的因素,并预测未来的预订和取消趋势。数据集中的信息涵盖了酒店类型、预订时间、客户来源地等多个维度,为全面分析提供了坚实的基础。

二、研究意义

  • 提高运营效率:通过识别预订取消的高风险因素,酒店可以提前采取措施,如优化房间配置、调整价格策略等,从而减少取消带来的损失,提高运营效率。

  • 改善客户体验:了解客户预订行为和取消原因,有助于酒店针对不同客户群体制定个性化的服务策略,提升客户满意度和忠诚度。

  • 支持决策制定:通过数据分析和预测,酒店管理者可以获得更多的决策支持信息,从而制定更科学的营销和管理策略,提升市场竞争力。

三、实证分析

该数据集包含一个文件,用于比较两家酒店之间的各种预订信息:城市酒店和度假酒店。

数据和代码

# 探索数据
df=pd.read_csv('hotel_bookings.csv')
df.head()

查看每列空值占比

 

描述性统计分析

df.describe()

接下来对每个特征进行箱线图可视化

 

接下来分析酒店预订量和取消量 

plt.figure(figsize=(15,8))
sns.countplot(x='hotel'
             ,data=df
             ,hue='is_canceled'
             ,palette=sns.color_palette('Set2',2)
            )

City Hotel的预定量与取消量都高于Resort Hotel,但Resort Hotel取消率为27.8%,而City Hotel的取消率达到了41.7%

接下来查看酒店各月份预订量

city_month=city_hotel['arrival_date_month'].value_counts()
resort_month=resort_hotel['arrival_date_month'].value_counts()
name=resort_month.index
x=list(range(len(city_month.index)))
y=city_month.values
x1=[i+0.3 for i in x]
y1=resort_month.values
width=0.3
plt.figure(figsize=(15,8),dpi=80)
plt.plot(x,y,label='City Hotel',color='lightsalmon')
plt.plot(x1,y1,label='Resort Hotel',color='lightseagreen')
plt.xticks(x,name)
plt.legend()
plt.xlabel('Month')
plt.ylabel('Count')
plt.title('Month Book')
for x,y in zip(x,y):
    plt.text(x,y+0.1,'%d' % y,ha = 'center',va = 'bottom')
    
for x,y in zip(x1,y1):
    plt.text(x,y+0.1,'%d' % y,ha = 'center',va = 'bottom')

此图显示了城市酒店和度假酒店在各月份的预订量。城市酒店的预订量在夏季达到峰值,且客源主要为欧洲国家,符合欧洲游客偏爱夏季出游的特点,而度假酒店的预订量在全年较为均衡,但在年末略有增加。

接下来查看客源地与预订取消率

此图展示了预订量最高的前十个国家的预订量和取消率。巴西和葡萄牙的取消率较高,酒店可以针对这些市场制定更有效的营销策略以减少取消。

接下来查看客户类型

city_customer=city_hotel.customer_type.value_counts()
resort_customer=resort_hotel.customer_type.value_counts()
plt.figure(figsize=(21,12),dpi=80)
plt.subplot(1,2,1)
plt.pie(city_customer,labels=city_customer.index,autopct='%.2f%%')
plt.legend(loc=1)
plt.title('City Hotel Customer Type')
plt.subplot(1,2,2)
plt.pie(resort_customer,labels=resort_customer.index,autopct='%.2f%%')
plt.title('Resort Hotel Customer Type')
plt.legend()
plt.show()

酒店的主要客户类型都是散客(Transient),占比均为70%左右

酒店预订途径

 

 两间酒店的客源主要来自线上旅游机构,其在City Hotel的占比甚至超过5成;线下旅游机构的比重次之,均为20%左右

新老客数量与取消预订率

plt.figure(figsize=(15,8))
sns.countplot(x='is_repeated_guest'
              ,data=df
              ,hue='is_canceled'
              ,palette=sns.color_palette('Set2',2)
             )
plt.title('New/Repeated Guest Amount')
plt.xticks(range(2),['no','yes'])

 

老客的取消率为14.4%,而新客的取消率则达到了37.8%,高出老客24个百分点

接下来分析房间类型与预定取消量

plt.figure(figsize=(15,8))
sns.countplot(x='assigned_room_type'
              ,data=df
              ,hue='is_canceled'
              ,palette=sns.color_palette('Set2',2)
             )
plt.title('Book & Cancel Amount of Room Type')

A、G房型的取消率远高于其他房型,酒店方应在客户在预订的时候跟客户仔细确认房间信息,让客户对房间情况有充分了解,避免认知错误,同时可以对房间设施进行优化并提高服务水平

接下来研究各变量的相关性系数

预订状态('reservation_status')与是否取消预订的相关性最高,达到了0.92,但考虑到后续可能会导致模型过拟合,所以删除;押金类型('deposit_type')则达到了0.47,创造的特征预订和分配房型是否一致('same_assignment')也有0.25的相关性 

接下来建立模型和预测

# 随机森林
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score as cvs,KFold
from sklearn.metrics import accuracy_score
rfc=RandomForestClassifier(n_estimators=100,random_state=90)
cv=KFold(n_splits=10, shuffle = True, random_state=90)
rfc_score=cvs(rfc,xtrain,ytrain,cv=cv).mean()
rfc.fit(xtrain,ytrain)
y_score=rfc.predict_proba(xtest)[:,1]
rfc_pred=rfc.predict(xtest)

绘制ROC曲线

 

# XGBoost
from xgboost import XGBClassifier
xgbr=XGBClassifier(n_estimators=100,random_state=90)
xgbr_score=cvs(xgbr,xtrain,ytrain,cv=cv).mean()
xgbr.fit(xtrain,ytrain)

# 逻辑回归
from sklearn.linear_model import LogisticRegression as LR
lr = LR(penalty='l2',solver='liblinear',max_iter=1000) 
lr_score=cvs(lr,xtrain,ytrain,cv=cv).mean()
lr.fit(xtrain,ytrain)
y_score=lr.predict_proba(xtest)[:,1]

查看各模型的结果

三、小结

本研究通过对城市酒店和度假酒店的预订数据进行详细分析,得出了以下主要结论:

  1. 预订和取消情况:城市酒店的预订量和取消量均高于度假酒店,但城市酒店的取消率达到了41.7%,明显高于度假酒店的27.8%。这表明城市酒店面临更高的预订取消风险。

  2. 季节性变化:无论是城市酒店还是度假酒店,预订量在不同月份有显著差异。城市酒店的预订量在夏季(7月和8月)达到峰值,而度假酒店的预订量在全年相对均衡,但在年末(12月)略有增加。

  3. 客户来源地:不同国家的客户预订行为和取消率存在差异。预订量最高的前十个国家中,取消率最高的是巴西,其次是葡萄牙。这些信息可以帮助酒店针对性地调整对不同市场的营销策略。

  4. 关键影响因素:通过回归分析和逻辑回归模型,本研究识别出影响预订取消的关键因素,包括预订提前天数、客户类型、房间类型等。这些因素在预测模型中的表现较为显著,对预订取消的预测准确性有较大贡献。

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

  • 35
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值