本文将k-means算法、关联规则和朴素贝叶斯算法结合,提出一种基于店铺忠诚度和店铺关联性的朴素贝叶斯推荐算法。该算法首先使用k-means算法对用户进行店铺忠诚度聚类,再使用关联规则算法和用户的历史支付信息推测出店铺关联性,最后,使用朴素贝叶斯算法对用户进行训练,并利用训练结果对用户进行店铺预测。本文采用天池大数据提供的十五个月支付宝支付日志和浏览日志对该算法进行测试,并验证其可行性。
随着商业发展和网络普及,店铺的支付方式不仅限于现金、银行卡的方式,还有类似支付宝、微信等电子现金转账方式。本文主要针对使用支付宝支付的店铺进行用户忠诚度分析,并根据用户的店铺忠诚度进行商品推荐。黄益国[1]使用k-means 算法对淘宝用户进行店铺忠诚度分类,并根据该分类和朴素贝叶斯分类对用户进行商品预测,后文对该算法简称为KBS。但文献[1]中存在以下问题:一是k-means算法的用户分类数k 值,作者暂定为3,且没有给出选取k 为3 的具体理由;二是利用贝叶斯分类判断用户是否购买某件商品时采用的特征,仅考虑了用户店铺忠诚度、购买商品A 的系列商品的数量以及店铺是否有折扣,却没有考虑到商品之间的关联性;三是数据较为单一化,即只针对一间店铺进行用户忠诚度分析;四是缺少聚类对比实验,无法说明k-means 聚类结果为最优。因此,本文提出一种基于店铺忠诚度分类和店铺关联性的朴素贝叶斯推荐算法, 其主要研究内容如下:一是采用天池大数据提供的2000个店铺支付宝支付记录进行用户忠诚度分类;二是使用k-means 算法对用户店铺忠诚度进行多个k 值聚类;三是在使用贝叶斯分类判断用户是否购买某件商品时的特征中,增添购买商品A 前所有可能购买商品的数量,即增添与商品A 具有关联性的商品数量。
2. 用户店铺忠诚度聚类 黄益国采用的数据是NALA 专业彩妆护肤名店(后面简称NL) 2009 年到2016 年6 月30 日有过网购经历的958 名用户数据。其对用户店铺忠诚度进行k-means 分类时采用的分类特征有网购历史、是否收藏本店、最近一次消费不超过三年、一年内网购次数、每次平均消费金额和最近一次商品评价。本文的实验数据采用天池大数据提供的IJCA117_data 数据集, 该数据包含支付宝用户从2015 年7 月7 日到2016年10 月31 日的支付日志和用户浏览日志以及店铺信息, 数据具体信息见章节3.1。
根据文献[2] [3] [4] [5]和实验数据信息可将用户Ui 对店铺S j 的忠诚度分类特征设置如表1 所示。
Table 1. The classification characteristics of the loyalty of customer Ui in store S j 表1. 用户Ui 对店铺S j 的忠诚度分类特征 k-means 聚类特征 离散值 说明 用户ID Ui 用户ID 店铺ID S j 店铺ID 支付宝使用次数(C1) ()1Cc cN*=∈.
用户Ui 在店铺S j 支付及浏览总次数。