关键词:
K-means算法
用户分类
DPC算法
RFM模型
摘要:
伴随当今国民消费质量的提高,传统餐饮企业所提供的简单菜品服务已经很难跟上消费者日益增长的多样化需求。在这种时代背景下促使着餐饮企业去对用户进行细分,从而对不同类型的客户进行针对性的个性化服务。在数据挖掘领域中,用户聚类分析是常见的应用方向,而K-means算法就是其中一种经典的聚类算法,现在正被广泛使用中,因为算法设计的原理简单,对于海量数据的迭代速度快,在大数据领域效果极佳。然而,K-means算法也并不完美,存在初始中心点的随机选择和需要人工提前确定聚类个数等问题,需要进一步解决。
为了解决这些问题,在其他研究人员多年探索的基础上,本文设计出一种改进的 DPK-means 算法(K-meansintroducing Density Peaks,引入密度峰值的 K-means算法)。其改进目标是在不知道数据集具体内容的情况下,无需输入其它参数即可一次性自动确定聚类个数且不用反复迭代,并选取出优秀的簇中心,使算法有更精确的聚类效果。在确定了改进目标后,本文具体的改进内容如下:
第一,引入改进的密度峰值聚类算法作为替代K-means的随机选择初始中心点方法,并与原始的K-means算法以及K-means++算法进行后续迭代次数比较实验。实验结果表明,改进后的K-means算法从初始中心点到最终聚类中心之间的迭代次数最少,从而减少算法的运行时间。
第二,改进局部密度计算公式,其改进思路来源于K近邻思想,通过计算出每个点离其最近的K个点的平均距离,再根据平均距离来判断该点的局部密度,从而摆脱原公式对于人工输入的截断距离参数的依赖。
第三,设计聚类中心选择算法,先计算所有点的局部密度与相对距离的乘积值并排序,再通过序列的连续性状态来判断聚类中心点和非聚类中心点的界限。
第四,设计离群点优化算法,通过对每个点的最大K近邻距离值和相对距离值进行筛选,把两个值都偏大的点判断为离群点,并使用排除掉离群点后得到的数据集进行原K-means算法的后续迭代。
为了确认算法改进的有效性,本研究通过六个不同类型数据集,并将改进后的DPK-means算法与传统的DPC算法,K-means算法以及一种改进的K-means++算法展开对比实验,并使用轮廓系数值来判断聚类性能。通过实验得到的数据显示,改进后的DPK-means算法能够较为准确地确定聚类个数,并相比于另外三种算法,改进算法的聚类性能有显著的提高。
在算法优化完毕后,本研究使用某餐厅的消费数据对该算法进行实际运用实现。首先,本研究对RFM用户分类价值模型针对餐饮行业进行了优化,并使用改进后的分类模型以及DPK-means算法对消费数据集进行分类。随后,对每一个类别的用户进行画像和用户分析,并分别提供了不同的服务和消息推送。