项目分享:聚类算法城市餐饮数据分析与店铺选址

1. 项目简介

餐饮业生意好坏的影响因素通常有很多,包括店铺菜系、口味、服务态度、周边环境、人口密度、所在区域、人均消费等等方面。本项目以上海城市为例,对其餐饮业消费数据进行统计分析,从三个维度“口味”、“人均消费”、“性价比”对不同菜系进行横向比较。针对某一商铺类型,将上海划分成格网空间,做空间指标评价,基于聚类算法,得到较好选址的网格位置的中心坐标,以及所属区域。

2. 功能组成

基于聚类算法的城市餐饮数据分析与店铺选址系统的功能组成如下图所示:

3. 任务需求分析与实现思路

3.1 任务需求

  1. 从三个维度“口味”、“人均消费”、“性价比”对不同菜系进行比较,并筛选出可开店铺的
  2. 选择一个餐饮类型,将上海划分成格网空间,做空间指标评价,得到餐饮选址位置

3.2 实现思路

1. 从三个维度“口味”、“人均消费”、“性价比”对不同菜系进行比较,并筛选出可开店铺的

  • 计算出三个维度的指标得分
  • 评价方法:
    • 口味 → 得分越高越好
    • 性价比 → 得分越高越好
    • 人均消费 → 价格适中即可
  • 制作散点图,x轴为“人均消费”,y轴为“性价比得分”,点的大小为“口味得分”,绘制柱状图,分别显示“口味得分”、“性价比得分”

2. 选择一个餐饮类型,将上海划分成格网空间,做空间指标评价,得到餐饮选址位置

  • 通过空间分析,分别计算每个格网内的几个指标:人口密度指标、道路密度指标、餐饮热度指标、同类竞品指标
  • 评价方法:
    • 人口密度指标 → 得分越高越好
    • 道路密度指标 → 得分越高越好
    • 餐饮热度指标 → 得分越高越好
    • 同类竞品指标 → 得分越低越好
    • 综合指标 = 人口密度指标0.4 + 餐饮热度指标0.3 + 道路密度指标0.2 +同类竞品指标0.1
  • 最后得到较好选址的网格位置的中心坐标,以及所属区域

4. 工具包导入与数据读取

本项目数据统计分析主要采用 numpy 和 pandas,可视化采用 Matplotlib、seaborn 和 bokeh实现:


​ import os
​ import gc
​ import numpy as np
​ import pandas as pd
​ import seaborn as sns
​ import matplotlib as mpl
​ import matplotlib.pyplot as plt
​ np.random.seed(7)
​ plt.style.use(‘fivethirtyeight’)

import warnings
warnings.filterwarnings(‘ignore’)

from bokeh.plotting import figure,show,output_file
from bokeh.models import ColumnDataSource
from bokeh.layouts import gridplot
from bokeh.models import HoverTool
from bokeh.models.annotations import BoxAnnotation
from bokeh.io import output_notebook

from matplotlib.font_manager import FontProperties
# 读取字体路径,设置字体为思源黑体
myfont=FontProperties(fname=r'/System/Library/Fonts/Hiragino Sans GB.ttc')
sns.set(font=myfont.get_name())

output_notebook()

读取上海餐饮数据和上海地区的人口密度数据,并进行缺失值分析:


​ data_df = pd.read_csv(‘上海餐饮数据.csv’, encoding=‘gbk’)
​ data_df = data_df.drop(columns=[‘城市’])
​ data_df = data_df[data_df[‘人均消费’] > 0]

people_df = pd.read_csv(‘上海地区人口密度数据.csv’, encoding=‘gbk’)
people_df.columns = [‘人口密度’,‘道路长度’,‘餐饮计数’,‘素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值