北京交通大学—《大数据》结题报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、晨光数据的收集、数据格式预处理 (2)

二、相似项发现 (3)

1 电影需求的矩阵表示 (3)

2 最小哈希签名矩阵 (5)

3 用LSH求jaccard距离 (9)

三、降维 (16)

四、频繁项集 (21)

五、聚类 (27)

六、电影推荐算法 (33)

七、SVM分类器 (48)

八、总结 (57)

大数据实验报告

——基于matlab和visio C++6.0编程

【实验内容】

1.晨光数据的收集、数据格式预处理

2.相似项发现

(1) 电影需求的矩阵表示 (2) 最小哈西签名矩阵

(3) 利用LSH 求电影的Jaccard 距离 3.频繁项集

(1) 把每个用户下载过的电影集合认为是一个购物篮(旋转列向量变为行向量)

(2) 求k=2的频繁项集(两次筛选,先得到频繁项,再扫描找到和之前同时出现的项),并

给出支持度(二者都存在的用户占总用户比率) 4.聚类

(1) 对晨光的数据进行k-means 聚类,给出最佳的聚类数目 5.降维

用PCA/SVD 对晨光数据进行降维(用Power Iteration 方法求特征向量) 6.为晨光设计一个电影推荐算法,并通过数据验证这个想法 7.以下两个内容二选一

(1) 分类:以聚类结果为输入,任选一种分类方法,对晨光数据进行分类,优化分类性能 (2) 流行度统计:用DGIM 方法,跟踪过去一定下载总数中,各视频流行度

【写作要求】

对上述每一个内容,给出 : (1) 想要实现的目标

(2) 实现的基本原理/方法,设计理由 (3) 详细的步骤,每一步的结果 (4) 给出结论

(5) 问题的难点及其解决方法

一、 晨光数据的收集、数据格式预处理

【实现目标】

将晨光中由各同学提交的数据下载下来后,处理为电影名=∑用户名ID ,用以后期数据处理。

=ID 电影用户

【基本原理与方法】

使用excel 表格进行数据的处理。

【设计理由】

excel 处理数据时显示的格式比较规整,方便数据的纵览,且方便后期软件编程时的载入。

【结论】

将收集到的数据处理为电影*用户矩阵,即行为电影,列为用户。

恐怖][720P][暂无字幕]

米莎

James McAvoy/文森·卡索

*国粤双语*][Ip Man Final

剧情/动作/传记][

约翰·特拉沃尔塔/罗伯

【问题的难点及解决方法】

该过程没有什么难点,主要是数据较多,整理的过程比较繁琐。

二、相似项发现

1 电影需求的矩阵表示

【实现目标】

将所得数据进行处理,得到0\1矩阵,用以后期处理。

【基本原理与方法】

电影=∑用户ID,即每来一个电影文件,就将其所属的ID和之前已有的ID比较,若为

新用户,则将ID添加到用户组内,反之不做任何处理。等所有用户ID登记完后,将每一个

电影的ID和用户文件库内数据相比较,若该用户下载过该电影,则记为1,否则为0,最终

得到用0、1表示的电影需求矩阵。

【设计理由】

在进行后期电影聚类、推荐等等过程中,使用行与行之间的距离来代替两向量之间的相

似度。

【详细步骤,每一步的结果】

矩阵初始化得到0、1矩阵KK,即为电影需求矩阵,存为“Matrix initialization.txt”文件。

clc,clear all

D = importdata('filetr.txt','') % 原文有误?

D = importdata('filetr.txt') %载入含字符串和数字的txt

data = D.data %分解得到数据部分

text = D.textdata %分解得到文本部分

C=data %数据赋给新矩阵,方便后期处理

C(isnan(C))=0 %消除其中的NAN

[m,n]=size(C) %矩阵C的行列数

y=C(1,:)

for i=1:m-1

z=setdiff(C(i+1,:),y) %C若有y的元素则删除,剩下的给z

y=[y,z] %合并列向量

i=i+1

end %y登记所有用户

y(find(y==0))=[] %删除全0列

% [p,q]=size(y)

% aa=zeros(p,q)

% aa(1:m,1:n)=C %将源数据变成和用户数组一样大小的矩阵,方便后期比较

kk=ismember(y(1,:),C(1,:))

for i=1:m-1

k=ismember(y(1,:),C(i+1,:)) %比较a每一行和y是否有相同元素,有则记为1

kk=[kk;k]

i=i+1

end %形成o/1矩阵

dlmwrite('Matrix initialization.txt',kk,',') %保存电影需求矩阵为“Matrix initialization.txt”

% S=sparse(kk) %稀疏矩阵

distance=pdist(kk,'jaccard') %jaccard距离

[p,q]=size(distance)

aa=ones(p,q)

simjac=aa-distance %jaccard相似度

dlmwrite('jaccard distance.txt',distance,',') %从电影需求矩阵求jaccard距离的txt结果dlmwrite('jaccard distance.csv',distance,',') %从电影需求矩阵求jaccard距离的excel结果dlmwrite('jaccard similarity.txt',simjac,',') %从电影需求矩阵求jaccard相似度的txt结果

【结论】

经过程序运算后得到电影需求的0、1矩阵表示如下,矩阵大小为48*2257,即一共有48部电影,设计到的所有用户(用户数据库)一共有2257人:

相关文档
最新文档