资源简介

matlab实现基于项目的协同过滤算法,可学会如何处理movielens数据集,绝对可用。博客地址http://www.cnblogs.com/hxsyl/p/4456757.html

资源截图

代码片段和文件信息

%利用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=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-04-25 18:56  matlab实现ItembaseCF算法\
     文件        1202  2015-04-25 20:24  matlab实现ItembaseCF算法\Similarity_ab.m
     文件        3042  2015-04-25 21:19  matlab实现ItembaseCF算法\testRead.m
     文件     1586544  2001-03-09 02:33  matlab实现ItembaseCF算法\u1.base
     文件      392629  2001-03-09 02:32  matlab实现ItembaseCF算法\u11.test

评论

共有 条评论