基于机器学习技术的酒店客户预订取消数据分析与预测

基于机器学习技术的酒店客户预订取消数据分析与预测

【摘要】 本项目使用了来自 Kaggle 网站上的 Hotel booking demand 项目数据集,该数据集包含了一家城市酒店和一家度假酒店的预订信息。本项目使用 Python 语言,通过机器学习等数据分析技术,首先对数据进行了描述性的统计,完成了对数据的预处理;其次利用数据集对酒店运营状况、市场情况、客户画像进行了可视化分析;最后根据数据集建立客户是否会取消预订的预测模型。

【关键词】 酒店管理 预订取消预测 机器学习

第1章绪论

1.1 背景

大数据时代下,酒店旅游市场的快速发展使得行业内的竞争愈发激烈,客户对产品与服务信息获取渠道越来越多,酒店企业面临着产品同质化严重、同行竞争加剧,从而导致新增客户获取困难、成本增加等行业问题。同时,酒店市场客源较不稳定,客户流失量较高。因此维护好留存客户,保持客户忠诚度,降低客户流失率是当前面临的主要问题。数据挖掘在这个实际课题中发挥了很大的作用,数据挖掘就是从大量杂乱无章的原始数据中得出一些有用的信息。在通信行业、银行等一些机构存在大量的数据。数据处理人员从大量的数据中进行分类、整理、归纳、总结,对客户进行分析、整理,和现在计算机、数据库、

数据仓库普遍应用相比,过去那种分析、整理、归纳的方法都是和那个时代相匹配的,都是很简单的归纳,只能得到很少的信息,并且都是以数学理论为起点,然后向实际推广。随着计算机的大规模应用,人们可以在大量的数据中,运用数据挖掘技术寻找数据中蕴藏的规律,并对未来。

酒店行业的从业者为了更好地规划酒店的经营,他们有极强的意愿来了解消费者的行为特点,例如在消费者的视角里,什么时候是一年中预定酒店房间的最佳时间,为了获得最好的房价折扣而选择的最佳入住时间,酒店是否可能会收到不成比例的高数量的特殊请求。客户流失预测可以帮助酒店预测流失趋势,构建适合酒店行业数据特性的影响因素指标体系,有针对性地提出挽留措施,提高商家利润,因此,酒店业的客户流失预测是酒店管理领域的一个重要研究方向。

伴随旅游消费升级,出境深度游成为一种新趋势。携程酒店预订专家表示,以美国为例,中国游客赴美旅游线路开始从横跨东西海岸转向东海岸、西海岸或者夏威夷深度游。其实,赴日旅游常规的大阪—东京线路,逐渐被北海道、大阪、九州、东京等一地深度游取代。

本研究使用的数据来自 Nuno Antonio[ Antonio, N., de Almeida, A., & Nunes, L. (2019). Hotel booking demand datasets. Data in brief, 22, 41-49.] 等人的数据文章 Hotel booking demand datasets.,该文章描述了两个包含酒店需求数据的数据集。其中一家酒店(H1)是度假酒店,另一家是城市酒店(H2)。两个数据集共享相同的结构,通过 31 个特征,形成了描述 H1 的 40060 次观测数据和 H2 的 79330 次观测数据,每一条观测数据都代表一次酒店预订。这两个数据集包含了 2015 年 7 月 1 日至 2017 年 8 月 31 日之间的预订,包括有效到达的预订和被取消的预订。

1.2 分析目标

对于酒店预订需求的数据集,酒店取消预测是一个模糊问题。因此,使问题具体化和层次化非常重要。简单看一下数据,可以看到葡萄牙城市酒店及度假村酒店2015年7月1日至2017年8月31日的预订信息,包括预订时间、到达时间、入住时长、客户信息等。因此,可以根据数据集定义几个基本问题:

一、客户来自哪里?
二、每位客人每晚房费的房型分布是什么?
三、每位客人每晚房费的季节分布是怎样的?
四、酒店里最忙的一个月?
五、客人在酒店住多长时间?
六、预订的细分市场是什么?
七、取消的详细信息?

进一步探索哪些特征对酒店预订取消有重要影响,从而建立一个判断客人是否真的会来酒店的模型,即预测酒店预订取消,这可以帮助酒店规划者安排和食物需求。

近年来,随着线上OTA等第三方渠道的蓬勃发展,消费者的酒店预订变得越来越便捷。另一方面,酒店退订现象逐年增多,成为困扰酒店的问题。而随着疫情过后游客的涌入,酒店退订呈快速增长趋势。因此,基于Python进行数据分析[ 专著:黄红梅,张良均. 《python数据分析与应用》[ M].北京:人民邮电出版社,2018.]深入了解取消预订的情况及其影响,有助于酒店采取更好的营销和管理措施。本次分析选取了某度假酒店2015年至2017年的预订数据,对该酒店的取消率进行分析,针对绩效考核标准、押金制度设置等管理问题提出解决方案。

第2章数据预处理与描述型分析

2.1 数据预处理

缺失值处理。发现一共有 4 个特征出现了缺失值,由于 children 和 country 缺失值的数量占总体比例非常小,且这两列是类别型变量,我们直接用对应列的众数进行填充;agent列的缺失值数量较多,故将缺失值单独作为新类别,标记为 0;company 列几乎全为缺失值,包含了极少量的有效值,因此删除此列。

异常值处理。通过在 Kaggle 网站上的数据集说明,仔细观察数据可以发现,存入住总人数为 0 和入住总天数为 0 的数据,即异常数据,我们需要对这些数据做筛选和清理。此外,数据集说明里,我们还可以发现 meal 列的 Undefined/SC 均表示未预定餐食,我们需要把其合并为同一类。

2.2 可视化分析

图 1 房间类型变更对取消预订的影响
如图 1 所示,房型变更过的客户取消预定的概率远远小于未变更过的客户。对此,可能有以下原因:客户到达酒店后临时更改房型,多数客户会选择不取消预定,直接入住;客户自行更改房型,相对取消预定而言,这类客户更愿意更改房间类型而保证正常入住。

图 2 入住人数对取消预订的影响
如图 2 所示,多数预定订单显示没有儿童和婴儿入住,其中单人入住和双人入住是主要的预定人数模式;有婴儿入住时预定取消率大幅下降;超过 5 人以上入住的订单基本全部取消,这部分可能是刷单等异常订单,酒店需要注意。针对不同酒店,重点分析下列几种入住人数情况的取消率:单人入住:adults=1, children, babies=0;双人入住:adults=2, children, babies=0;家庭入住:adults>2, children, babies>0[ 期刊论文:程俊英.《基于Python语言的数据分析处理研究》[J].电子技术与软件工程,2022(15):236-239.]。

图 3 房间类型、入住人数对取消预订的影响
对于城市酒店,取消预定概率:双人>>单人≈家庭,应注意双人入住客户的高取消率现象,改善酒店对于双人入住客户的配套服务以降低取消率。对于度假酒店,取消预订概率:家庭>双人>单人,酒店可适当针对家庭客户提供相应的优惠折扣,提高家庭客户入住率。

图 4 是否取消预订和饮食的影响
可以看到无论是否取消预订,餐食类型之间差异不大

在这里插入图片描述

图 5 不同酒店类型和车位需求
多数客户不需要停车位,相比之下,度假酒店客户需要停车位的比例远大于城市酒店。

图 6 预定数前 20 的国家/地区
统计可知,前 20 名国家/地区数据量占据全部数据的 94%,客户主要来自葡萄牙,英国,法国,西班牙等欧洲国家,不同国家之间预定取消率的差距非常显著,取消率较高的国家有葡萄牙、意大利、巴西、中国、俄罗斯,以发展中国家为主。

图 7 客户预定历史
客户预定历史指客户之前预定过的订单的取消情况,可以一定程度上反映客户当前订单的取消意愿。大多数预定来自于新客,而熟客取消预定的概率远远小于新客;先前取消过预定的客户本次预定取消的概率较大,尤其是取消过预定 15 次以上的客户,基本上不会选择入住,可以计入酒店的“黑名单”;先前预定并入住过的客户相对来说信用较好,高入住次数(>20 次)客户基本不会取消预订。

图 8 提前预订时长分布
从预定提前时长分布明显可以看出,客户倾向于选择与入住时间相近的时间预定,并且随着预定提前时长的增大,取消率呈现上升趋势。

图 8 入住时间
预定量上,城市酒店 7/8 月出现大幅下滑,同期度假酒店变化较小,整体而言,度假酒店月度客流量变化较小;取消率上,两家酒店冬季取消率相对较低,城市酒店夏季取消率降低,度假酒店却处于高峰。

图 9 客房价格趋势变化
两种酒店客房价格趋势主要差异在于 7-8 月,此时期城市酒店价格小幅下跌,度假酒店价格却急速上涨,一度超过城市酒店。结合预定量和取消量分析,7-8 月度假酒店客流减少,取消率大幅上升,经营者应考虑调整价格策略以增加营收。对于用户而言,应考虑避免 8 月预定度假酒店,此时酒店价格处于高位,而 9 月价格便会下跌近一半,气候/环境差异不大,是入住的好时期。

图 10 客房价格趋势变化
度假酒店客户入住时长集中在 1-10 晚,其中入住 1 晚的客户取消概率最低;城市酒店客户入住时长多在 5 晚以内,其中入住 2 晚的客户取消概率最高;整体而言,度假酒店客户平均入住天数明显高于城市酒店,可以考虑推出长租优惠方案吸引顾客。

图 11 预订渠道
预定主要来自于旅行社(TA/TO),个人直接预定(Direct)和团体预定(Group);旅行社取消预定的概率远大于其他渠道,可能是由于旅行社出于盈利考虑会取消利润较低的订单
第3章模型的构建与评价

3.1 简单的特征工程

首先进行特征的筛选,模型目标是对订单是否取消进行预测,挑选特征变量应满足: 特征必须为客户预定时就能获得的数据,因此排除 booking_changes(预定更改),reservation_status(结账状态),assigned_room_type (最终分配房型)等特征。考虑一定的信息脱敏和通用性,排除 country(国籍),arrival_date_year(入住年份)等特征。完成数据列处理后,先查看一下各数据参数与取消预订之间的相关性[ 期刊论文: 余佥.《Python语言在数据分析处理中的应用》[J].电脑编程技巧与维护,2022(06):]。

与取消预订相关性较高的特征有:提前预定时长,车位需求数,特殊需求数,押金类型,酒店类型等。

3.2 简单机器学习模型

接下来,进行模型训练,引入多个简单的分类模型,均采用默认参数,简单比较模型之间的准确率,表 1 展示了所选用的部分简单模型的效果。

表 1 简单模型的泛化效果比较

不难发现,决策树、K 近邻方法[ 期刊论文:千文《.Python在商品销售数据分析中的使用》[[J].电子技术与软件工程,2022(10):211-214.]的泛化能力和预测准确率明显高于其他简单模型。虽然如此,简单模型的预测正确率仍然不算非常高,本文考虑使用一些更复杂的模型进行处理。

3.3 较复杂的模型

本文使用了 Logistic Regression,Random Forest,XGBoost,LightGBM,CatBoost 五个模型进行训练,鉴于篇幅原因,本文不再对模型的原理进行解释,仅展示训练结果,模型的构建请参见代码。

表 2 较复杂的模型泛化效果评估

基于以上指标,我们可以对不同的模型进行有效的评估,我们发现 5 个指标中,随机森林模型有四个都是最高的,因此随机森林模型可能是最适合进行本项目预测分析的模型[ 期刊论文赖院根, & 刘砺利. (2011). 基于客户价值的信息用户流失预测研究. 情报理论与实践, 34(7), ]。

3.4 应用随机森林模型进行预订取消预测的示例

发现随机森林模型的预测是正确的,观察随机森林模型的特征重要度,如表 3。
表 3 随机森林模型的特征重要度[ 期刊论文 王若佳, 严承希, 郭凤英, & 王继民. (2022). 基于用户画像的在线健康社区用户流失预测研](前 7)

3.5 心得体会

本项目使用了来自 Kaggle 网站上的 Hotel booking demand 项目数据集,该数据集包含了一家城市酒店和一家度假酒店的预订信息。本项目使用 Python 语言,通过机器学习等数据分析技术,首先对数据进行了描述性的统计,完成了对数据的预处理;其次利用数据集对酒店运营状况、市场情况、客户画像进行了可视化分析;最后根据数据集建立客户是否会取消预订的预测模型。

本文基于机器学习的评价指标,发现随机森林模型能有效预测客户是否取消预订,其中lead_time,deposit_type,adr_per_person,adr,arrival_date_day_of_month,tot
al_of_special_requests,arrival_date_week_number7 个特征的重要性较大,酒店可以考虑从这 7 个特征的角度进行服务改善和预订取消预测。

基于本次项目,让我将python数据分析的知识点得到了一个综合运用,对于知识点有了更深刻的理解。能运用python数据分析解决具体的问题,再根据分析结果得到一些趋势的判断,这就是数据分析的意义。

第3章 结论

本项目使用 Python 语言,通过机器学习等数据分析技术,首先对数据进行了描述性的统计,完成了对数据的预处理;其次利用数据集对酒店运营状况、市场情况、客户画像进行了可视化分析;最后根据数据集建立客户是否会取消预订的预测模型。

分析得出的结果:

  1. 客户到达酒店后临时更改房型,多数客户会选择不取消预定,直接入住;客户自行更改房型,相对取消预定而言,这类客户更愿意更改房间类型而保证正常入住。
  2. 婴儿入住时预定取消率大幅下降;超过 5 人以上入住的订单基本全部取消,这部分可能是刷单等异常订单
  3. 对于城市酒店,取消预定概率:双人>>单人≈家庭,应注意双人入住客户的高取消率现象,改善酒店对于双人入住客户的配套服务以降低取消率。对于度假酒店,取消预订概率:家庭>双人>单人,酒店可适当针对家庭客户提供相应的优惠折扣,提高家庭客户入住率。
  4. 大多数预定来自于新客,而熟客取消预定的概率远远小于新客。结合预定量和取消量分析,7-8 月度假酒店客流减少,取消率大幅上升,经营者应考虑调整价格策略以增加营收。对于用户而言,应考虑避免 8 月预定度假酒店,此时酒店价格处于高位,而 9 月价格便会下跌近一半,气候/环境差异不大,是入住的好时期。

通过上面案例的分析,对于python数据分析有了一定的掌握,能运用在一些基础的场景上,遇到问题也能查阅相关资料解决,对于能力有了很大的提升。

参考文献
[1]Antonio, N., de Almeida, A., & Nunes, L. (2019). Hotel booking demand datasets. Data in brief, 22, 41-49.
[2]专著:黄红梅,张良均. 《python数据分析与应用》[ M].北京:人民邮电出版社,2018.
[3]期刊论文:程俊英.《基于Python语言的数据分析处理研究》[J].电子技术与软件工程,2022(15):236-239.
[4]期刊论文: 余佥.《Python语言在数据分析处理中的应用》[J].电脑编程技巧与维护,2022(06):
[5]期刊论文:千文《.Python在商品销售数据分析中的使用》[[J].电子技术与软件工程,2022(10):211-214.
[6]期刊论文赖院根, & 刘砺利. (2011). 基于客户价值的信息用户流失预测研究. 情报理论与实践, 34(7),
[7]期刊论文 王若佳, 严承希, 郭凤英, & 王继民. (2022). 基于用户画像的在线健康社区用户流失预测研

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夕Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值