基于PCA和Kmeans的餐馆地区分类研究

1. 实践任务说明

​ 对《中国2019年分地区连锁餐饮企业数据》中的7个经营指标(V2-V8)进行主成分分析(PCA),通过降维提取核心特征。首先标准化数据,然后计算主成分的方差贡献率,按累积贡献率≥85%确定保留的主成分数量,最终输出降维后的主成分得分及因子载荷矩阵,简化后续分析。

基于K-Means聚类算法对餐饮企业数据进行分析,首先读取true_restaurant.csv文件中的PC1指标数据并进行标准化处理,确保数据可比性;其次采用肘部法确定最佳聚类数K,通过计算K值范围(1-10)内的误差平方和(SSE)并绘制变化曲线,选择拐点处对应的K值作为最佳聚类数;然后使用K-Means算法进行聚类分析,将各地区划分为K个具有相似特征的群组;最后生成三种关键可视化图表(肘部法曲线图展示SSE随K值变化趋势、数轴分布图展示各样本点及其所属聚类、谱系图展示各地区间相似性关系)并输出详细分类结果表格,包含各地区所属类别及各类别的PC1统计特征(均值、标准差、极值等),同时结合业务背景分析各类别特征差异,为餐饮企业区域市场分析提供数据支持。

2. 数据预处理

2.1 指标选择---PCA降维处理

restaurant.csv文件是《中国2019年分地区连锁餐饮企业基本情况统计》。这个数据文件中共有9个变量,分别是V1~V9,分别表示地区、总店数、门店总数、年末从业人数年末餐饮营业面积、餐位数、营业额、商品购进总额、统一配送商品购进额。

对数据样本进行分析可知,样本数目(地区)并不多,但是其指标有v2到v8,共七个,如果同时根据七个指标来对样本进行分类的话,Kmeans算法的计算量会很大,计算速度会较慢:而且通过对指标简单的分析,我们可以看到其中有些指标有重合的现象,即指标总店数和门店总数是相关的两个指标,商品购进总数和统一配送商品购进总额也是同样的反映了这家店的成本大小。所以我们可以使用PCA算法对这个样本做一个简单分析,得出新的指标,来做后续的分析。

这里对PCA做一些简单的原理解释:​​主成分分析(PCA)是一种降维方法,通过线性变换将高维数据转换为少数几个不相关的主成分,这些成分按方差大小排序,能最大程度保留原始数据的变异性。其核心步骤包括数据标准化(中心化并缩放)、计算协方差矩阵、进行特征分解得到特征值(代表成分重要性)和特征向量(决定成分方向),然后选取前几个最大特征值对应的特征向量作为新坐标轴,将数据投影到这些轴上得到降维后的主成分得分,这些得分反映了样本在成分方向上的相对位置,而载荷(系数)则解释成分与原始变量的关系。

代码见附录1,结果如下:基于PCA和Kmeans的餐馆地区分类研究_第1张图片基于PCA和Kmeans的餐馆地区分类研究_第2张图片

对此分析,我们可以看到主成分1的方差贡献率已经达到了96.2%,大于我们所预期的阈值85%。所以我们可以近似将原来的全部指标转为一个指标进行分析。

基于PCA和Kmeans的餐馆地区分类研究_第3张图片

可以看到我们所选择的指标即第一主成分PC1

我们可以看到该第一主成分对每一个指标的权重几乎都在1.0000上下浮动给,且差距不算太大,几乎都在正负0.02之间,所以我们近似认为这个主成分对每一个指标有着相同的权重,可以认为这一个是地区餐馆综合实力指标(不知道咋形容餐馆的这种emm就用实力)

第一主成分PC1,根据这一主成分对后续的样本进行处理,得到一个新的样本数据集,来进行聚类分析。代码见附录2。结果见true_restaurant.csv或者见附录3。

3. Kmeans聚类

系统聚类算法是一种层次化聚类方法,它能够有效解决未知聚类数量的问题,其基本思想是将个体逐个合并形成一个子集,直到整个总体都在一个集合内为止。

系统聚类算法的基本流程图。基于PCA和Kmeans的餐馆地区分类研究_第4张图片我们将不同单品类型作为样本,将不同月度销售量作为指标,进而依据指标对样本进行聚类。

在聚类之前,我们通过肘部法则分析聚类类别数。肘部法则是一种常用的聚类数量确定方法,它的核心目标是寻找数据集的最佳聚类数量,以在保持聚类性能的平衡时取得最佳结果。

为了确定系统聚类的最优聚类数量,我们引入肘部法则。具体来说,我们以聚 类类别数K 为横坐标,以聚合系数(所有类别总畸变程度)为纵坐标绘制聚合系数折线图。

基于PCA和Kmeans的餐馆地区分类研究_第5张图片

通过观察聚合系数的变化趋势,我们发现在 K=2 时,聚合系数有明显的降低,形成了一个“肘部点”。这个“肘部点”通常被认为是最佳的系统聚类数量,因为增加聚 类数量后,聚合系数的下降幅度不再显著,导致性能提升有限。因此,我们选择 K=2 作为最佳的聚类数量,将地区划分为 2 个类别,以更好地理解它们之间的关系和特征。

通过绘制谱系图,我们得到了地区分类的最终结果,并将结果展示在下表。 我们发现,同一类别的地区在整体实力上具有相似性。 代码见附录4

基于PCA和Kmeans的餐馆地区分类研究_第6张图片基于PCA和Kmeans的餐馆地区分类研究_第7张图片

分类1

分类2

北京上海广东

天津河北山西内蒙古辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南广西海南重庆四川贵州云南西藏陕西甘肃新疆

对结果分析,基于对地区的理解,北京上海广东常常被我们认为是经济实力里比较发达的几个地区,所以这个分类结果也可以被我们解释,因为这几个地区的经济实力比较厉害,所以我们将他们归为一类,而其他地区经济实力相较于他们,确实不是一个梯度的,认为是第二类。

4. 思考

4.1变量选择上

通过PCA将7个原始变量转化为1个互不相关的主成分,保留了96.92的原始信息,有效解决了变量相关性和维度问题;然后基于主成分得分进行K-means聚类,而且与实际认知高度吻合,验证了该方法的有效性。这种先降维再聚类的分析流程,既保证了数据的代表性,又提高了聚类效果。

或者可以用典型相关性分析,去分析指标之间的相关性,再spearmen斯皮尔曼相关系数或者皮尔逊相关系数去分析指标之间的相关性,最后去选择变量。

4.2 k值的选择

我们是根据肘部法则去选择的k值,这样可以更加有效的合理的去选择划分的类数。

现在展示一下k=3时的分类结果:

类别1

类别2

类别3

北京上海广东

天津河北山西内蒙古黑龙江安徽江西河南广西海南贵州云南西藏陕西甘肃新疆

山东湖北重庆四川辽宁江苏浙江福建天津湖南

同样的,对结果分析,基于对地区的理解,北京上海广东常常被我们认为是经济实力里比较发达的几个地区,所以这个分类结果也可以被我们解释,因为这几个地区的经济实力比较厉害,所以我们将他们归为一类,而其他地区经济实力中山东湖北重庆四川辽宁江苏浙江福建天津湖南也更厉害一点,也可以分出来。内蒙古黑龙江安徽江西河南广西海南贵州云南西藏陕西甘肃新疆而这些可能经济实力较为落后,所以归为第三类。

当然这其中也类别2也有一些天津这样的被我们认为经济实力较为厉害的地区,这可能与天津当地对这个餐馆的口味并不喜欢之类的其他因素,这就无法解释了。

当然总体的分类情况还是不错的,没有很明显的错误之类的,这个分类结果可以被我们接受。

你可能感兴趣的:(基于PCA和Kmeans的餐馆地区分类研究)