一、需求分析
某餐饮企业正面临着房租价格高、人工费用高、服务工作效率低等问题。企业经营最大的目的就是盈利,而餐饮企业盈利的核心是其菜品和客户,也就是其提供的产品和服务对象。如何在保证产品质量的同时提高企业利润,成为某餐饮企业急需解决的问题。
通过对某餐饮企业的数据进行分析,最终为餐饮企业提出改善的建议。主要步骤如下图所示。
二、数据准备
读入订单表和历史订单表,并且将两个表合并,查看各表的维数以及合并后的数据:
查看每日用餐人数
三、使用K-means算法进行客户价值分析
识别客户价值应用最广泛的模型是RFM模型,根据RFM模型,本案例中客户价值分析的关键特征,如下表所示。
结合预处理后的数据构建R、F、M特征,如下代码所示。
import pandas as pd
from sklearn.preprocessing import StandardScaler
import numpy as np
info = pd.read_csv('../tmp/info_august_new.csv', encoding = 'utf-8')
user = pd.read_csv('../tmp/users_august.csv', encoding = 'utf-8')
# 构建RFM特征
# 构建F特征
# 统计每个人的用餐次数
user_value1 = pd.DataFrame(info['emp_id'].value_counts()).reset_index()
user_value1.columns = ['USER_ID', 'F'] # 修改列名
print('F特征的最大值:',max(user_value1['F']))
print('F特征的最小值:',min(user_value1['F']))
# 构建M特征
user_value2 = info[['emp_id','expenditure']].groupby(by='emp_id').sum()
user_value2 = pd.DataFrame(user_value2).reset_index()
user_value2.columns = ["USER_ID", "M"]
user_value = pd.merge(user_value1, user_value2, on='USER_ID')
print('M特征的最大值:',max(user_value['M']))
print('M特征的最小值:',min(user_value['