技能训练
(1)关联规则大数据算法操作实践
① 作业目的。
熟悉关联规则(association rules)的概念,了解Apriori算法流程。视频平台会根据用户浏览的视频向用户推荐相关视频,这背后的算法是怎样获得的,需要用到怎样的数据集?本次作业的目的就是以 Netflix 数据集为训练对象,以关联规则为训练算法,通过数据处理,来窥探一下用户喜好的推荐秘籍。
② 作业准备。
Orange3 软件下载并安装。
数据集说明:Netflix 数据集给出了 480 189 个用户和 17 770 部电影评级信息。
该数据集包含电影信息、training set(训练集)、probe set(探测集)和 qualifying set(评估集)。qualifying set(评估集)又被分为 quiz(测验集)和 test(测试集)。其中,training set的评分数量为 100 480 507。probe set 是 training set 的子集,包含 1 408 395 个评分。
a. 电影信息。
电影信息采用图 2-5-6 所示的信息。
图 2-5-6 电影信息
● Movie ID 与实际的 Netflix 影片 ID 或 IMDB 影片 ID 不对应。
● Year of Release 的范围可以从 1890 年到 2005 年,可能对应于相应 DVD 的发行,不一定是它的剧场版本。
● 标题是 Netflix 电影标题,可能与其他网站上使用的标题不对应,标题是英文的。
b. training set(训练集)。“training_set.tar”是包含 17 770 个文件的目录,文件中的每个后续行对应客户的评级及其日期,格式如下:
电影 ID:客户 ID,等级,日期。
● Movie ID 的顺序范围为 1 到 17 770。
● Customer ID 的范围为 1 到 2 649 429,有 480 189 位用户。
● 评级为 1 到 5 星级(整数)。
● 日期的格式为 YYYY-MM-DD。
c. probe set(探测集)。
探测集包含指示电影 ID 的行,后跟冒号,然后是客户 ID。格式如下:
Movie ID1:
Customer ID11
Customer ID12
…
Movie ID2:
Customer ID21
Customer ID22
d. qulifying_data(测试集)。
Netflix 数据的测试集包含在文本文件中“qualifying.txt”。它由指示电影 ID 的行,后跟冒号,然后是客户 ID 和评级日期,格式如下:
Movie ID1:
Customer ID11,Date11
Customer ID12,Date12
…
Movie ID2:
Customer ID21,Date21
Customer ID22,Date22
③ 作业内容。
作业包括两个部分:将电影评论集改造为电影项集;将电影项集进行关联规则分析,以Orange 为计算平台。
a. 电影项集的生成。
首先根据电影集将电影名以有效词进行分割,并与 training_data 数据集中的评分项进行合并,形成电影项集。以第一个电影为例,如表 2-5-10 所示。
表 2-5-10 电影项集
b. 将上述电影项集进行 Orange 关联分析。
关联分析的目的是找出什么类型的电影评分项高或低。需要说明的是,在进行关联规则算法计算时,需要后缀名为.basket或.bsk
的文件格式,这两个文件其实都是文本文件。
首先进行数据清理,注意在各个项之间加入英文半角逗号(,)分隔,且每单的最后要保证是以回车符结束。然后将所有项集复制,粘贴到一个文本文件,并且将文本文件改为英文名,同时将.txt 后缀名改为.bsk。至此,所有文件准备工作基本结束。
打开 Orange 平台,先将文件载入。然后将频繁集及关联规则算法模型连入数据库,画出其工作流图,并写入报告集。
c. 撰写数据测试报告。
