基于项目的协同过滤算法-matla
使用matlab实现item-based collaborative filtering,实验数据集为movielens100k。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 716 2015-09-18 11:19 ItembaseCF__u1ml-100kallbut.pl
文件 643 2015-09-18 11:19 ItembaseCF__u1ml-100kmku.sh
文件 6403 2015-09-18 11:19 ItembaseCF__u1ml-100kREADME
文件 1979173 2015-09-18 11:19 ItembaseCF__u1ml-100ku.data
文件 202 2015-09-18 11:19 ItembaseCF__u1ml-100ku.genre
文件 36 2015-09-18 11:19 ItembaseCF__u1ml-100ku.info
文件 236344 2015-09-18 11:19 ItembaseCF__u1ml-100ku.item
文件 193 2015-09-18 11:19 ItembaseCF__u1ml-100ku.occupation
文件 22628 2015-09-18 11:19 ItembaseCF__u1ml-100ku.user
文件 1586544 2015-09-18 11:19 ItembaseCF__u1ml-100ku1.base
文件 392629 2015-09-18 11:19 ItembaseCF__u1ml-100ku1.test
文件 1583948 2015-09-18 11:19 ItembaseCF__u1ml-100ku2.base
文件 395225 2015-09-18 11:19 ItembaseCF__u1ml-100ku2.test
文件 1582546 2015-09-18 11:19 ItembaseCF__u1ml-100ku3.base
文件 396627 2015-09-18 11:19 ItembaseCF__u1ml-100ku3.test
文件 1581878 2015-09-18 11:19 ItembaseCF__u1ml-100ku4.base
文件 397295 2015-09-18 11:19 ItembaseCF__u1ml-100ku4.test
文件 1581776 2015-09-18 11:19 ItembaseCF__u1ml-100ku5.base
文件 397397 2015-09-18 11:19 ItembaseCF__u1ml-100ku5.test
文件 1792501 2015-09-18 11:19 ItembaseCF__u1ml-100kua.base
文件 186672 2015-09-18 11:19 ItembaseCF__u1ml-100kua.test
文件 1792476 2015-09-18 11:19 ItembaseCF__u1ml-100kub.base
文件 186697 2015-09-18 11:19 ItembaseCF__u1ml-100kub.test
文件 1202 2015-04-25 20:24 ItembaseCF__u1Similarity_ab.m
文件 9392887 2015-10-29 22:41 ItembaseCF__u1SimilitudItems.mat
文件 3168 2015-10-29 22:53 ItembaseCF__u1 estRead.m
文件 1586544 2001-03-09 02:33 ItembaseCF__u1u1.base
文件 392629 2001-03-09 02:32 ItembaseCF__u1u11.test
目录 0 2016-03-14 21:55 ItembaseCF__u1ml-100k
目录 0 2016-03-14 21:55 ItembaseCF__u1
............此处省略3个文件信息
%利用Adjusted Cosine法计算电影a和b的相似度
%这个算法虽然可以求出相似度矩阵,但是有个问题就是,当共同评价电影a和b的用户
%只有一个的时候,结果只有两种可能,即1或者是-1。这就需要在找邻居时要避免选择
%这些情况的相似度电影。
function Sim_ab=Similarity_ab(score_matrixab)
%找出所有评价所电影a和b的用户集合(标号)
temp=score_matrix(:a)&score_matrix(:b);
P_ab=find(temp);
P_ab=P_ab‘;%用行向量存储所有评价电影a和b的用户
%end
%% 利用Adjusted Cosine法计算相似度
if isempty(P_ab)
Sim_ab=0;
else
[~temp]=size(P_ab);%共同评价电影a和b的用户的数目
%[~number_movies]=size(score_matrix);
sum1=0;
sum2=0;
sum3=0;
for i=1:temp %注意此处的temp已经不是数组了
[~m]=size(find(score_matrix(P_ab(i):)~=0));%计算该用户评价的电影个数
sum_score=sum(score_matrix(P_ab(i):)2);%用户对所有电影的总评分
aver_score=sum_score/m;
sum1=sum1+(score_matrix(P_ab(i)a)-aver_score)*(score_matrix(P_ab(i)b)-aver_score);
sum2=sum2+(score_matrix(P_ab(i)a)-aver_score)^2;
sum3=sum3+(score_matrix(P_ab(i)b)-aver_score)^2;
end
if sum2==0||sum3==0
Sim_ab=0;
else
Sim_ab=sum1/sqrt(sum2*sum3);
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 716 2015-09-18 11:19 Itemba
文件 643 2015-09-18 11:19 Itemba
文件 6403 2015-09-18 11:19 Itemba
文件 1979173 2015-09-18 11:19 Itemba
文件 202 2015-09-18 11:19 Itemba
文件 36 2015-09-18 11:19 Itemba
文件 236344 2015-09-18 11:19 Itemba
文件 193 2015-09-18 11:19 Itemba
文件 22628 2015-09-18 11:19 Itemba
文件 1586544 2015-09-18 11:19 Itemba
文件 392629 2015-09-18 11:19 Itemba
文件 1583948 2015-09-18 11:19 Itemba
文件 395225 2015-09-18 11:19 Itemba
文件 1582546 2015-09-18 11:19 Itemba
文件 396627 2015-09-18 11:19 Itemba
文件 1581878 2015-09-18 11:19 Itemba
文件 397295 2015-09-18 11:19 Itemba
文件 1581776 2015-09-18 11:19 Itemba
文件 397397 2015-09-18 11:19 Itemba
文件 1792501 2015-09-18 11:19 Itemba
文件 186672 2015-09-18 11:19 Itemba
文件 1792476 2015-09-18 11:19 Itemba
文件 186697 2015-09-18 11:19 Itemba
文件 1202 2015-04-25 20:24 Itemba
文件 9392887 2015-10-29 22:41 Itemba
文件 3168 2015-10-29 22:53 Itemba
文件 1586544 2001-03-09 02:33 Itemba
文件 392629 2001-03-09 02:32 Itemba
目录 0 2016-03-14 21:55 Itemba
目录 0 2016-03-14 21:55 Itemba
............此处省略3个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)