数据分析项目实战:酒店需求分析(hotel demand booking)

1 项目背景

使用2015年7月到2017年8月两年的订单数据进行分析,了解酒店预订需求的基本情况,找出导致订单取消的特征。

2 数据初步探索

2.1 数据结构梳理

拿到数据之后,首先看看里面具体有哪些内容,理解每个字段(变量)的意思,具体的数值代表什么,数据之间有哪些关系。根据二八法则,简单的数据分析、结构梳理和数据清洗的工作占数据分析80%以上的工作量,虽然很基础枯燥,没什么技术含量,但是这些前提工作必须要做好,才可能把项目理解透彻,很大程度上决定了项目的成败。

这里的每一行数据代表着一个订单。

id字段名解析
1hotel酒店类型:city hotel(城市酒店),resort hotel(度假酒店)
2is_canceled订单是否取消:1(取消),0(没有取消)
3lead_time下单日期到抵达酒店日期之间间隔的天数
4arrival_date_year抵达年份:2015、2016、2017
5arrival_date_month抵达月份:1月-12月
6arrival_date_day_of_month抵达日期:1-31日
7arrival_date_week_number抵达的年份周数:第1-72周
8stays_in_weekend_nights周末(星期六或星期天)客人入住或预定入住酒店的次数
9stays_in_week_nights每周晚上(星期一至星期五)客人入住或预定入住酒店的次数
10adults成年人数
11children儿童人数
12babies婴儿人数
13meal预订的餐型:SC\BB\HB\FB
14country原国籍
15market_segment细分市场
16distribution_channel预订分销渠道
17is_repeated_guest订单是否来自老客户(以前预订过的客户):1(是)0(否)
18previous_cancellations客户在当前预订前取消的先前预订数
19previous_bookings_not_canceled客户在本次预订前未取消的先前预订数
20reserved_room_type给客户保留的房间类型
21assigned_room_type客户下单时指定的房间类型
22booking_changes从预订在PMS系统中输入之日起至入住或取消之日止,对预订所作的更改/修改的数目
23deposit_type预付定金类型,是否可以退还:No Deposit(无订金)Non Refund(不可退)Refundable(可退)
24agent预订的旅行社
25company下单的公司(由它付钱)
26days_in_waiting_list订单被确认前,需要等待的天数
27customer_type客户类型
28adr平均每日收费,住宿期间的所有交易费用之和/住宿晚数
29required_car_parking_spaces客户要求的停车位数
30total_of_special_requests客户提出的特殊要求的数量(例如。 双人床或高层)
31reservation_status订单的最后状态:canceled(订单取消)Check-Out(客户已入住并退房)No-show(客户没有出现,并且告知酒店原因)
32reservation_status_date订单的最后状态的设置日期

ps:当is_canceled为1(取消)时,后面的数据并不是都为0,而是正常的数值,说明,这里的信息代表的是预订的时候的信息,比如lead_time,代表的是预订之日,到预计抵达之日之间间隔的日期,而非实际抵达的日期。

2.2 简单探索性数据分析

简单的探索性数据分析主要用于研究数据的分布结构,比如一个变量的极大值、极小值、中位数是什么,数据的分布情况是怎样,通过探索性分析,可以直观地掌握数据的各项特征,为后续的数据清洗工作提供有效的帮助,对清洗后的数据进行探索性分析,将有利于后续分析中选取更合适的数据分析技术。

用pandas_profiling生成探索性数据分析报告,对数据进行初步了解。

import pandas as pd
import pandas_profiling as ppfile_path = r'G:\hotel_booking.csv'
data = pd.read_csv(file_path)
report = pp.pandas_profiling(data)

在这里插入图片描述

  • 1、该数据集一共有119390行,32个变量。
  • 2、重复的行数有26.8%。
  • 3、缺失率3.4%,含有缺失值的变量由:children、agent、country、company。
  • 4、异常值:adr中包含负值、可能的显著离群点。
  • 5、85%以上数据为0的变量:children、babies、is_repeated_guest、previous_cancellations、previous_bookings_not_canceled、booking_changes、day_in_waiting_list、required_car_parking_spaces。
  • 6、订单的时间范围为:2015/7/1–2017/8/31,全面跨越的年度只有2016年。

3 数据清洗

3.1 缺失值处理

1、children 有4个缺失值,缺失率<0.01%,应该是没有children入住,用0填充
2、agent 有16340个缺失值,很可能是非机构客户预订的,为个人客户,用0填充
3、country 有488个缺失值,缺失率约0.409%,可能是采集的时候出的问题,用众数进行填充
4、company 中缺失值率超过94%,说明大多数订单是个人客户,之后可以分别对公司和个人预订的行为进行分析,暂用0填充

data_new['children'].fillna(0,inplace=True)
data_new['agent'] = data['agent'].fillna(0)
data_new['country'] = data['country'].fillna(data['country'].mode())
data_new.drop('company',axis=1,inplace=True)

3.2 重复值处理

根据pandas_profilling显示的报告,该数据集的重复率超过23%,但是考虑每一行的订单没有特定的id标识,默认其为合理现象,对重复数据不进行处理。

3.3 异常数据处理

1、adult、children、babies同时为0的情况不合理,共180行,把这些类数据删除。
2、adr平均每日收费中,有1行为负值,删掉。
3、adr中最大值为5400,其他数据均在510以内,且相似的订单(总人数、房型、年月份、特殊要求数,用餐类型相同)的平均adr仅为69,由此判断此值为显著离群点,删除。
4、undefined值
market_segment中2个undefined,用众数Online TA替换。
distribution_channel有5个undefined,用众数TO/TA替换。
meal中有1169个undefined,应该是没有订任何餐型,跟SC意义相同,用SC替换。

data_new['market_segment'].replace('Undefined','Online TA')
data_new['distribution_channel'].replace('Undefined','TO/TA')
data_new['meal'].replace('Undefined','SC')

ps:存在一些看似不太合理,但根据业务具体情况,有可能是合理的数据,不进行处理。比如:

1、对于previous_bookings_not_canceled,当is_repeated_guest为0(全新客户)的时候,此字段有783行数据不为0,即存在这样的客户:在预定日期到抵达日期这个时间段里,下了多个订单。所以,is_repeated_guest为0,previous_bookings_not_canceled不为0,是合理的。

2、stays_in_weekend_nights+stays_in_week_nights=0(总住宿晚数)的adr全部为零,而adr为0的时候,stays_in_weekend_nights+stays_in_week_nights不一定为0。第一,考虑adr是根据总住宿费用/总住宿晚数来计算的,所以出现第一种情况很正常,如果在实际场景中的分析,需要重新考量adr的计算方法,这里为了可以进行下一步的分析,暂时把这种情况定义为合理情况。而第二种情况,可能是由于平台给出的优惠,搞活动之类的,吸引客户,不用给钱也可以住宿。

3.4 数据转化、重组

为了方便分析,需要对一些数据类型进行修改,或者增加分析变量。
1、将arrival_date_month中的英文月份变为中文月份。
2、增加一列预订到店的年月日arrival_date =(arrival_date_year+arrival_date_month+arrival_date_day_of_month)。
3、增加一列总住宿晚数stays_nights_total
=(stays_in_weekend_nights+stays_in_week_nights)。
4、增加一列住宿人数number_of_people
=(adults+children+babies)

处理后的数据数量:共119208行,35列。

print(data.shape)
(119208, 35)

4 构建分析框架

1、EDA分析:
在这里插入图片描述

5 分析

在进行具体的分析之前,我了解了一下City Hotel和Resort Hotel两种酒店的一些不同特性,作出一下的对比:

图图图-----

不同的酒店,面对的客户类型不同,营销策略也会有明显差异,也可能会有不同的趋势,在进行分析的时候,如果忽略不同酒店的影响,仅对总体进行分析,那么无论是趋势分析,或者用户结构分析,可能都会模糊掉一些信息,所以,对以下的分析,我都会先对总体进行分析,在对不同酒店类型进行分析。

5.1 运营角度

5.1.1 订单需求趋势

5.1.1.1 总体订单需求趋势

在这里插入图片描述
在这里插入图片描述
(营收=平均ADR酒店预订数量)

从酒店预订需求曲线来看,酒店预订需求的趋势不是很明显,但是呈明显季节性波动,可以结合年度折叠时间序列图,能更清楚地看出需求首季节影响比较大,有明显的“旺季”和“淡季”。

酒店预订的高峰期分别出现在四月、五月、六月,和九月、十月这两个连续时间段,十二月、一月、二月的预订比较低,2016年一年中,最低值为一月2248笔预订单,最高值为十月6196笔预订单。最低需求比最高需求相差174%。

5.1.1.2 不同酒店订单需求趋势

在这里插入图片描述
在这里插入图片描述
从图中可以看出,城市酒店(City Hotel)的需求和平均ADR、营收的趋势较为一致,需求最大的时候,酒店的价格越高,需求小的时候,酒店的价格就小。而度假酒店(Resort Hotel)的情况则有差别,需求最大的时候,价格反而较低,由于在旺季的时候,度假酒店的竞争也较大,往往会通过降低价格来吸引更多的客户。

5.1.2 订单取消情况

通过tableau对数据进行可视化分析:
在这里插入图片描述

总体订单取消率为37.08%,其中city hotel(城市酒店)类型的酒店预订单取消率更高,为41.79%,resort hotel(度假酒店)为27.77%,相差14.02%。从业务角度出发,一般来说,预订city hotel的客户比较多应是商务出差的需求,而预订resort hotel的多为休闲度假游客。工作行程通常会由于工作的性质,变化较多,相对来说,旅游计划的变动会少一些,因为一般来说是提前做好了规划,请假等,取消计划的成本较高。这是否说明,酒店类型是否对订单取消率产生显著影响?下面进行分析:

假设现有的这119208条数据,是总数据的一个抽样,对酒店类型和订单取消情况这两个分类变量进行独立性检验。
原假设:H0:两个变量之间相互独立。

用spss进行交叉表分析:
在这里插入图片描述
结果表明,订单取消情况跟酒店类型有相关性,但是这种相关性并不是很强(克莱姆V=0.247)

5.2 用户角度

5.2.1 新老客户占比

在这里插入图片描述
由图看出,酒店的客户大多数为新客户,老客户只占3.15%,酒店需要考虑在这方面的提升,可以通过会员制度等,提高客户的回购率。

渠道分析

在这里插入图片描述
在这里插入图片描述
一共有7个渠道,总体平均价格ADR为81.9。
onlineTA渠道和Direct渠道的平均价格ADR较高,均超过115,其余均在100以内,Groups渠道和Corporate渠道的平均价格ADR稍低于平均水平,Complementary渠道的价格只有2.9,远远低于市场水平,对其进一步进行分析:

订单数量占比(市场份额)较大,

相关系数热力图

挑选并删除部分重合字段,做出相关系数热力图,查看影响订单取消率的主要因素有哪些。(satified字段:如果reserved_room_type等于assigned_room_type,则satified = 1,表示客户预订和酒店保留的房型一致,如果不相等,则satified=0,表示客户预订和酒店保留的房型不一致)

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns#导入文件
file_path = r'G:\数据\hotel_bookings - 相关系数热力图.csv'
df = pd.read_csv(file_path)#复制副本
data_copy=df.copy(deep=True)cor = data_copy.corr()plt.figure(figsize=(23,23))
sns.heatmap(cor,annot=True,vmax=1,square=True,cmap='PuBu',linewidths=.5,fmt='.2f')
plt.savefig('./相关系数热力图.jpg')
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/64851.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

酒店预订分析

Hotel Booking Analysis 目的&#xff1a;从我们拥有的数据集中创建有意义的估计量&#xff0c;并通过将它们与不同的ML模型和ROC曲线的准确性得分进行比较&#xff0c;来选择预测性能最好的模型。 1- EDA 2- Preprocessing 3- Models and ROC Curve Comparison Logistic …

酒店应用爆发式增长,“API即服务”已成趋势!

据谷歌发布的《2021API经济报告》显示&#xff1a;2020年&#xff0c;近四分之三的组织继续在数字化转型上投资&#xff0c;其中三分之二的组织加大投资或作出战略调整&#xff0c;实行数字优先战略。 而数字化转型的核心&#xff0c;就是将组织的服务、资产和能力打包成互联网…

数据储存技术演进趋势研判

如果以 1987 年 Symmetrix 高端存储产品的诞生作为独立外置存储行业出现的标志&#xff0c;那么外置存储行业已经历了探索、成长和成熟三个阶段。在探索和成长期内&#xff0c;行业发展出大量令人惊叹的创新存储技术&#xff0c;如&#xff1a; SAN/NAS/iSCSI/Object 等存储协议…

英特尔数据存储创新三大技术看点和猜想

“话说天下大势&#xff0c;分久必合&#xff0c;合久必分。周末七国分争&#xff0c;并入于秦。及秦灭之后&#xff0c;楚、汉分争&#xff0c;又并入于汉。汉朝自高祖斩白蛇而起义&#xff0c;一统天下&#xff0c;后来光武中兴&#xff0c;传至献帝&#xff0c;遂分为三国。…

中国存储芯片行业市场发展趋势预测与运营模式分析报告2021~2027年

第1章:中国存储芯片行业发展概况1.1 存储芯片行业发展概述 1.1.1 存储芯片相关定义及分类 (1)存储芯片相关定义 (2)存储芯片主要分类 1.1.2 存储芯片行业发展模式概述 1.2 中国存储芯片行业发展环境分析 1.2.1 行业发展经济环境分析 (1)宏观经济现状分析 (2)经…

内存(DRAM)芯片国产进程

目录 前言1. SSD 缓存作用2. 内存技术2.1 内存存储数据2.2 内存 技术前沿2.2.1 先进DDR5 内存技术2.2.2 专利壁垒2.2.3 先进制程2.2.4 良率 总结 前言 存储芯片生态包含设计环节和制造封装环节还有品牌营销环节。设计环节是核心技术&#xff0c;包含闪存芯片、闪存主控芯片、缓…

芯片行业数据我们打造可靠高效存储设备解决方案

芯片行业&#xff0c;大动能&#xff0c;专为半导体集成电路EDA打造可靠高效存储方案 云计算、物联网、智能制造、大数据、VR、5G等全新数字经济业态引发了产业变革&#xff0c;并带来了创新商业模式&#xff0c;不断催生出更多芯片需求。小小的芯片&#xff0c;不仅推动了社会…

最全芯片产业报告出炉,计算、存储、模拟IC一文扫尽

来源&#xff1a;智东西 最近几年&#xff0c; 半导体产业风起云涌。 一方面&#xff0c; 中国半导体异军突起&#xff0c; 另一方面&#xff0c; 全球产业面临超级周期&#xff0c;加上人工智能等新兴应用的崛起&#xff0c;中美科技摩擦频发&#xff0c;全球半导体现状如何&a…

详解数据存储芯片AT24C02的应用及编程

一&#xff0e;芯片简介 AT24C02是一个2K位串行CMOS E2PROM&#xff0c;内部含有256个8位字节&#xff0c;采用先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器&#xff0c;该器件通过IIC总线接口进行操作&#xff0c;有一个专门的写保护功能。 二&#x…

存算一体芯片技术及其最新发展趋势(陈巍谈芯)

相关推荐 陈巍谈芯&#xff1a;7.2 RRAM模拟存内计算 《先进存算一体芯片设计》节选https://zhuanlan.zhihu.com/p/474261353 陈巍谈芯&#xff1a;存算一体技术是什么&#xff1f;发展史、优势、应用方向、主要介质&#xff08;收录于存算一体芯片赛道投资融资分析&#xff…

纯国产服务器芯片以芯片堆叠技术提升性能,进一步替代美国芯片

国产芯片替代美国芯片已是当下的主流&#xff0c;而在事关信息安全的服务器芯片方面&#xff0c;中国又有一家芯片企业推出了服务器芯片&#xff0c;这次是真正纯国产芯片&#xff0c;从芯片架构、芯片制造都实现国产化&#xff0c;辅以芯片叠加技术提升芯片性能&#xff0c;达…

分享一款国产并口PSRAM存储芯片EMI164NA16LM

EMI164NA16LM该设备是一个集成的存储器设备&#xff0c;其中包含64Mbit静态随机存取存储器&#xff0c;使用自刷新DRAM阵列由16位组织为4M。模具具有单独的电源轨&#xff0c;VCCQ和VSSQ&#xff0c;用于从设备核心的单独电源运行。 特征 •电源 -VCC和VCCQ电压&#xff1a;3.…

存储芯片行业信息汇总

1、存储芯片的分类 RAM&#xff08;Random Access Memory&#xff09;随机存储器&#xff0c;我们在日常生活中经常会听到RAM这个单词。比如手机6G RAM128G ROM&#xff0c;对手机比较了解的人都知道RAM是代表运行内存&#xff0c;运行内存越大&#xff0c;可以打开的应用就越多…

汽车行业数据存储越发复杂?群晖备份存储方案为您支招

信息化正在逐渐渗透到各行各业的生产应用中&#xff0c;汽车行业也不例外。数据作为数字经济时代新型生产要素&#xff0c;已成为汽车行业数字化转型的核心资产。而保障企业重要数据的安全也就成为了管理者关注的重要问题。 但是&#xff0c;在智能化、数字化大潮下&#xff0c…

pycharm反应特别慢的可能原因

下面这里是很多东西的时候&#xff0c;一般显示出来的矩阵还特别大&#xff0c;就会卡。如果多开了几个pycharm窗口&#xff0c;其中一个数据显示的多&#xff0c;其他的窗口也会卡。

计算机切换器鼠标反应慢,解决鼠标反应迟钝与反应慢故障的方法

鼠标反应迟钝与反应慢故障解决方法 在这里&#xff0c;就是向大家介绍自己可以通过一些小小的调整&#xff0c;来解决的鼠标失灵现象&#xff0c;如果是鼠标按键失灵或者连接线断开等方面的损失&#xff0c;就只有换新的鼠标了&#xff0c;小编也就无能为力。 故障一&#xff1…

计算机如何解决卡顿问题,电脑反应慢怎么办?电脑卡顿处理方法

原标题&#xff1a;电脑反应慢怎么办&#xff1f;电脑卡顿处理方法 电脑用的时间长了&#xff0c;系统运行速度和开机速度会变慢。 是什么原因导致电脑变慢呢? 临时文件&#xff0c;注册表&#xff0c;磁盘碎片&#xff0c;安装软件直接默认安装到C盘(系统盘)都会导致电脑变慢…

git bash反应慢解决办法

方法来源于其他网友&#xff0c;感谢其他网友的尝试和分享。 方法众多&#xff0c;我试了一个比较有效的方法就是不使用git bash&#xff0c;而是使用没有爆露的bash.exe文件。 我们在windows下面一般用git bash的方法就是&#xff0c;在所在文件夹右键&#xff0c;选择git b…

电脑卡顿反应慢怎么处理?电脑提速,4个方法!

案例&#xff1a;电脑卡顿反应慢怎么处理&#xff1f; 【快帮帮我&#xff01;我的电脑现在越用越卡了&#xff0c;有时候光是打开一个文件都要卡好几分钟&#xff0c;我真的太难了&#xff0c;有什么可以加速电脑反应速度的好方法吗&#xff1f;万分感谢&#xff01;】 随着…

计算机老是卡顿怎么解决,电脑反应太慢怎么处理_电脑卡顿什么原因-win7之家

电脑使用久了&#xff0c;电脑的垃圾文件就会有很多&#xff0c;这就是会导致电脑卡顿反应慢的原因&#xff0c;还有上网是浏览的记录它一直会保存你之前浏览的网页&#xff0c;也会导致电脑卡顿反应慢&#xff0c;那么电脑反应吗卡顿的话我们要怎么处理呢&#xff0c;下面小编…