基于项目的协同过滤算法-matla


使用matlab实现item-based collaborative filtering,实验数据集为movielens100k。
资源截图
代码片段和文件信息
%利用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  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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)