基于Apriori算法的图书推荐应用研究
2018-07-12赵力衡陈虹君
赵力衡 陈虹君
摘要:随着机器学习技术的不断发展,机器学习在社会各个邻域的应用也越来越广泛。在校园图书馆中使用机器学习的方法来实现对学生借阅方面的画像,把握学生阅读规律,精确地向不同的学生推荐其感兴趣的书籍,从而提升学生的学习兴趣就越发显得重要。鉴于此,提出使用机器学习中Apriori模型的方法来分析不同学生的阅读兴趣,并推荐其可能感兴趣的书籍。实验结果表明,所提方法能较准确地分析出学生的借阅兴趣,可作为图书馆书籍推荐分析的有效依据。
关键词:大数据;机器学习;Apriori;推荐;图书
中图分类号: TP391 文献标识码:A 文章编号:1009-3044(2018)12-0211-02
Abstract: With the development of machine learning technology, it is more and more widely used in every neighborhood of society. It is more and more important to recommend books of interest to different students to promote their interest in learning. Therefore, a method of using Apriori model in machine learning to analyze the reading interest of different students is proposed. The experimental results show that the proposed method can accurately analyze the students' interest in borrowing books and can be considerate as an effective basis for library books recommendation analysis.
Key words: big data; machine leaning; Apriori; recommend; books
学校的图书馆通常藏书众多,书籍种类非常丰富。图书馆藏书的借阅对象也以不同专业的老师和学生居多,这就造成了不同的借阅对象对不同书籍的兴趣差异常常非常明显。这种差异不但出现在不同的学科之间,也出现在不同的年级和年龄段之间。如果再进一步细致分析,还可以发现即使是相同的专业、相似的年级和年龄的不同的借阅对象对书籍的兴趣也可能出现明显的差异。那么如何有效的分析出兴趣迥异的不同的借阅对象的兴趣点,并向该借阅对象推荐其可能感兴趣的某一本书对图书馆就显得很有价值了。
本文采用某高校学生的图书借阅数据进行分析。该数据记录了学生学号(user_id)和借阅的图书编号(book_id),经过脱敏后数据格式如下所示:
本文根据学生学号(user_id)和借阅的图书编号(book_id)对该学生的借阅情况进行画像,分析出学生的阅读规律,从而有效地向不同的学生推荐其感兴趣的书籍。分析采用Apriori算法,依据关联规则进行分析。即假如借阅对象A借阅了书籍[1,2,3,4,5],借阅对象B借阅了书籍[2,3,4,6],那A和B借阅书籍中有3本是相同的,可以认为A和B兴趣相似,A感兴趣的书籍B也可能感兴趣,因此可以将书籍1和5推荐给借阅对象B;同样,也可以将书籍6推荐给借阅对象A。
通过这种方式,可以有效根据每一个用户的个性化需求实现为该用户推荐其可能感兴趣的书籍。
1 模型分析
1.1 数据预处理
提出的方法依据借阅对象及其借阅过的书籍进行分析,因此需要所有借阅记录都包括学生学号(user_id)和借阅的图书编号(book_id)。若记录中缺失其中任意一个信息,则该记录就无法反映出一次有效的借阅行为,因此该记录为不可用记录,需要过滤掉,以此保证记录的完整性。此时,数据为具有完整借阅信息的全部记录。
分析需要统计出每一个借阅对象借阅过的书籍,而此时的数据仅是借阅流水记录,不能反映出同一个借阅对象所借阅过的书籍的共同特性。因此需要将数据按照学生学号(user_id)统计出该学号借阅过的全部书籍。统计后,数据格式转换如下图所示:
图中,行号表示用户id,列名表示书籍编号。若用户id借阅过该书,则用户id号与书籍对应信息记为T,否则该位置记录为F,表示该用户没有借阅过这本书。通过上图,能清晰地看到一个user_id借阅过的书籍,即该借阅对象对哪些书感兴趣。
1.2 数据建模
通过数据预處理后形成的表格,实际上已经为每一个借阅对象建立了其阅览书籍的关联信息,通过这些信息,我们可以进一步分析出每一个借阅对象借书的兴趣点,从而向具有相似兴趣点的借阅对象推荐其可能感兴趣的书籍。
提出的方法使用Apriori算法建模分析借阅对象的共同兴趣点,指定全部图书编号同时为关联规则的前项(Antecedents)和后项(Consequents)来寻找连带借阅的书籍,如下图所示:
但在建模过程中发现有两个图书编号没有被借阅过,如下图所示:
如果一本书没有被借阅过,那么该书籍就无法与其他书籍达成关联,也就不能在Apriori模型中被推荐,因此需要在建模前过滤掉没有被借阅过的两本书。由于图书馆书籍数量众多,采集的数据也时间有限,因此采集的数据反应的书籍被借阅的次数偏少,这就需要设置较低的最低条件支持度(Minimum antecedent support)和最小规则置信度(Minimum rule confidence),设置模型如下图所示:
通过降低最低条件支持度和最小规则置信度,即使书籍被借阅次数较少,也能根据较低的关联次数生成关联规则。模型执行结果如下:
结果以表格形式列出模型计算所得的99个关联规则,这些规则展示了借阅对象借阅一本书后有较大的可能会借阅另一本特定的书籍。比如第一条规则展示了借阅165号书籍的借阅对象有62.706%的可能会借阅188号书籍,该规则的支持度是1.24%。因此,当图书馆发现有借阅对象在借阅165号书籍时就可以将188号书籍推荐给该借阅对象了。
2 结束语
从结果来看,方法所提出的模型能较准确地分析出借阅书籍之间的关联规则,能有效地发现不同的用户的借阅关注点,从而向其推荐可能感兴趣的书籍,实现图书借阅的精确推荐。当采集的数据增加时,借阅对象和借阅书籍之间的关联也会随之增加,这样就能更精确地发现不同用户的借阅关注点,从而更精确地实现个性化的推荐服务。
实验结果表明,所提方法能较准确地反映出借阅对象的借阅兴趣点,可作为图书精确推荐的有效依据。
参考文献:
[1] 刘华婷,郭仁祥,姜浩. 关联规则挖掘Apriori算法的研究与改进[J]. 计算机应用与软件, 2009(6).
[2] 郝晓飞; 谭跃生; 王静宇. Hadoop平台上Apriori算法并行化研究与实现[J]. 计算机与现代化, 2013(5) .
[3] 陈丽芳. 基于Apriori算法的购物篮分析[J]. 重庆工商大学学报(自然科学版), 2014(5) .
[4] 黄文汉. 基于Web的在线图书管理系统的设计与实现[J]. 电脑知识与技术, 2017(9).
[5] 姜浙炜. 高校移动图书馆管理系统的设计与实现[J]. 电脑知识与技术, 2016(8).