基于Apriori算法的电影推荐(3)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于Apriori算法的电影推荐(3)

2。2 Apriori算法流程

    Apriori算法是亲和性分析的一部分,专门用于查找数据集中的频繁项集。基本流程是从前一步找到的频繁项集中找到新的备选集合,接着检测备选集合的频繁程度是否够高,然后算法像下面这样进行迭代[1]。

(1) 把各项目放到只包含自己的项集中,生成最初的频繁项集,使用达到最小支持度的项目。

(2) 查找现有频繁项集的超集,发现新的频繁项集,并用其生成新的备选项集。

(3) 测试新生成的备选项集的频繁程度,如果不够频繁,则舍弃。如果没有新的频繁项集,就跳到最后一步。

(4) 存储新发现的频繁项集,跳到步骤(2)。

(5) 返回发现的所有频繁项集。论文网

   整个过程表示如下:

3实例计算

3。1获取数据集

首先我们需要获取数据集。数据集下载地址为http://grouplens。org/datasets/movielens/[2]。这些数据集美国明尼苏达大学的Grouplens研究团队公开了一系列用于测试推荐算法的数据集。其中,就包括10万、100万和1000万条电影评分数据。本次将使用包含100万条数据的MovieLens数据集,下载数据集后解压到我的Data文件夹,启动IPython Notebook笔记本,输入以下代码:

import os

//使用pandas加载数据 

import pandas as pd

//数据集读取方法

data_folder = os。path。join(os。path。expanduser("~"), "Data","ml-100k")

ratings_filename = os。path。join(data_folder, "u。data")

确保ratings_filename指向解压后得到的文件夹中的u。data文件。

3。2用pandas 加载数据文献综述

    MovieLens数据集非常规整,但是有几点跟pandas。read_csv方法的默认设置有出入,所以要调整参数设置。第一个问题是数据集每行的几个数据之间用制表符而不是逗号分隔。其次,没有表头,这表示数据集的第一行就是数据部分,我们需要手动为各列添加名称。加载数据集时,把分隔符设置为制表符,告诉pandas不要把第一行作为表头(header=None),设置好各列的名称[1]。代码如下:

all_ratings = pd。read_csv(ratings_filename, delimiter="\t",

   header=None, names = ["UserID", "MovieID", "Rating", "Datetime"])

然后我们可以用下面的代码解析时间戳数据,转化一下时间格式。

all_ratings["Datetime"] = pd。to_datetime(all_ratings['Datetime'],unit='s')

(责任编辑:qin)