資源簡介
使用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??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個文件信息
- 上一篇:MATLAB在數學建模中的應用253358
- 下一篇:matlab遙感圖像處理工具包
評論
共有 條評論