一、研究背景
随着餐饮行业的快速发展,如何提高服务质量、优化运营模式以及增加客户满意度成为每个餐饮企业关注的重点。在这种背景下,数据分析技术被广泛应用于餐饮管理中。通过分析餐饮订单数据,可以发现客户的消费行为和偏好,从而为企业制定营销策略、改进服务提供有力支持。本研究通过对某餐饮企业的订单数据进行分析,旨在揭示客户消费行为的规律和商品之间的关联关系,为企业提升运营效率和客户满意度提供数据支持。
二、研究意义
-
理论意义:通过数据分析挖掘餐饮订单数据中的潜在规律和模式,可以为相关研究提供新的视角和方法,丰富餐饮行业的数据分析理论。
-
实际意义:本研究的结果可以帮助餐饮企业更好地理解客户需求,优化菜单设计和促销策略,提高客户满意度和忠诚度。此外,通过关联规则分析发现商品间的购买关系,可以帮助企业在制定套餐和组合优惠时更加科学和合理,提升销售额。
-
管理意义:通过对订单数据的分析,企业管理者可以发现运营中的问题和改进空间,例如高频消费的时间段、热门菜品、常见搭配等,为日常运营管理提供参考依据,进而提高整体运营效率。
三、实证分析
首先读取数据
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载数据集
order_info_path = 'data.csv'
order_detail_path = 'data1.csv'
meal_order_info = pd.read_csv(order_info_path)
meal_order_detail = pd.read_csv(order_detail_path)
检查缺失值和重复值
发现还是存在缺失值的情况
随后继续进行数据处理
duplicate_info = meal_order_info.duplicated().sum()
duplicate_info
duplicate_detail = meal_order_detail.duplicated().sum()
duplicate_detail
删除缺失值较多的字段
cleaned_meal_order_info = meal_order_info.drop(columns=['mode', 'check_closed', 'cashier_id', 'pc_id', 'order_number', 'print_doc_bill_num', 'lock_table_info'])
cleaned_meal_order_detail = meal_order_detail.drop(columns=['logicprn_name', 'parent_class_name', 'cost', 'discount_amt', 'discount_reason', 'kick_back', 'add_info', 'bar_code'])
随后进行描述性统计分析
info_desc = cleaned_meal_order_info.describe()
info_desc
给出的数据统计描述了一个餐饮订单数据集的各个变量。info_id
和 emp_id
分别表示信息和员工的唯一标识符,范围分别是137到1325和982到1610,平均值为771.64和1205.67,标准差分别为324.42和168.28。number_consumers
表示用餐人数,范围从1到10,平均值为5.21,标准差为2.36。dining_table_id
和 dining_table_name
分别表示餐桌的唯一标识符和名称,范围分别是459到1519和1001到1040。expenditure
表示支出,范围从48到1314,平均值为492.29,标准差为268.27。dishes_count
表示菜品数量,范围从1到36,平均值为11.81,标准差为5.65。accounts_payable
也是支出,数值与 expenditure
一致。org_id
表示组织的唯一标识符,范围从304到330,数据较为集中。order_status
表示订单状态,值为0或1,平均值为0.99,表示大多数订单已完成。phone
为电话号码,显示一致的值1.868888e+10,可能是数据脱敏处理。总的来说,这些数据描述了一个餐饮环境中的订单情况,包括用餐人数、支出、菜品数量等关键信息。
接下来进行可视化 -
消费金额分布
plt.figure(figsize=(10, 6))
sns.histplot(cleaned_meal_order_info['expenditure'], kde=True, bins=30, color='skyblue')
plt.title('消费金额分布', fontsize=15)
plt.xlabel('消费金额', fontsize=12)
plt.ylabel('频率', fontsize=12)
plt.grid(True)
plt.show()
可视化 - 用餐人数分布
plt.figure(figsize=(10, 6),dpi=200)
sns.countplot(cleaned_meal_order_info['number_consumers'], palette='viridis')
plt.title('用餐人数分布', fontsize=15)
plt.xlabel('用餐人数', fontsize=12)
plt.ylabel('频率', fontsize=12)
plt.grid(True)
plt.show()
# 可视化 - 菜品数量分布
可视化 - 账户应付款分布
plt.figure(figsize=(10, 6),dpi=200)
sns.histplot(cleaned_meal_order_detail['amounts'], kde=True, bins=30, color='orange')
plt.title('金额分布', fontsize=15)
plt.xlabel('金额', fontsize=12)
plt.ylabel('频率', fontsize=12)
plt.grid(True)
plt.show()
可视化 - 金额分布
# 使用Apriori算法挖掘频繁项集
frequent_itemsets = apriori(df_te, min_support=0.02, use_colnames=True)
# 生成关联规则
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
# 输出关联规则
print(rules.head())
# 可视化关联规则
def plot_association_rules(rules):
G = nx.DiGraph()
for _, rule in rules.iterrows():
antecedent = ', '.join(rule['antecedents'])
consequent = ', '.join(rule['consequents'])
G.add_edge(antecedent, consequent, weight=rule['lift'], label=f"支持度: {rule['support']:.2f}, 置信度: {rule['confidence']:.2f}, 提升度: {rule['lift']:.2f}")
pos = nx.spring_layout(G, k=1)
plt.figure(figsize=(15, 10))
nx.draw(G, pos, with_labels=True, node_color='lightblue', node_size=3000, font_size=10, font_weight='bold', edge_color='gray')
edge_labels = nx.get_edge_attributes(G, 'label')
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_size=8)
plt.title('关联规则网络', fontsize=15)
plt.show()
plot_association_rules(rules)
数据描述了几种商品间的关联规则。例如,规则“白饭/小碗 → 北冰洋汽水”的支持度为0.022293,表示在所有交易中有2.2293%的交易同时包含这两种商品。该规则的置信度为0.112903,表示在购买白饭/小碗的交易中,有11.2903%的交易也购买了北冰洋汽水,提升度为1.661794,表示购买白饭/小碗后购买北冰洋汽水的可能性是随机情况下的1.661794倍。另一个规则“北冰洋汽水 → 白饭/小碗”也有相同的支持度,但置信度更高为0.328125,提升度同样为1.661794,表明购买北冰洋汽水后购买白饭/小碗的可能性更大。类似地,规则“五色糯米饭(七色) → 冰糖红豆薏米粥”有支持度0.025478,置信度0.128342,提升度1.328554,表明购买五色糯米饭后购买冰糖红豆薏米粥的可能性高于随机情况。规则“冰糖红豆薏米粥 → 五色糯米饭(七色)”有相同的支持度和提升度,但置信度为0.263736,表明逆向关联也存在。最后,规则“五色糯米饭(七色) → 凉拌菠菜”的支持度为0.058386,置信度0.294118,提升度1.029958,表明这对商品的关联性较弱。总的来说,这些关联规则揭示了几种商品间的购买关联,帮助理解客户的购买行为。
四、结论
通过对餐饮订单数据的实证分析,我们得出以下结论:
-
客户消费行为规律:通过描述性统计和可视化分析,可以发现客户的消费行为具有一定的规律性。例如,大部分订单的消费金额集中在中低范围,用餐人数多为小规模,这为企业制定营销策略和改进服务提供了数据支持。
-
商品购买关联关系:通过关联规则分析,揭示了商品间的购买关联。例如,白饭/小碗和北冰洋汽水、五色糯米饭和冰糖红豆薏米粥等商品间存在较强的购买关联。这些信息可以帮助企业在设计套餐和促销活动时,合理搭配商品,提升客户满意度和销售额。
-
运营优化建议:通过数据分析,企业可以发现运营中的问题和改进空间。例如,了解高频消费的时间段、热门菜品和常见搭配,可以帮助企业更好地进行库存管理、人员调配和促销活动,提高整体运营效率。