1 / 2
文档名称:

基于用户CF协同过滤算法matlab代码.doc

格式:doc   大小:47KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于用户CF协同过滤算法matlab代码.doc

上传人:beny00001 2016/12/22 文件大小:47 KB

下载得到文件列表

基于用户CF协同过滤算法matlab代码.doc

文档介绍

文档介绍:1 2,8, 2,26, 2,27, 2,35, 2,42, 2,66, 2,67, 2,69, 2,85, 2,101, 2,108, 2,113, 2,117, 4,145, 5,152, 5,4, 6,75, 7,181, function[B]=dataset(A) for i=1:10000 B(A(i,1),A(i,2))=A(i,3); end ; [t1,t2]=size(B); user_sim=[]; for i=1:t1-1 for j=i+1:t1 user_sim(i,j)=simliarity(B,i,j); user_sim(j,i)=user_sim(i,j); end end num_predict=0; number=[30];%[10 20 30 40 50 60 70 80]; pre_rating=0; for p=1:length(number) sum_erro=0; MAE=0; RMSE=0; sum_RMSE_erro=0; load(''); for i=1:length(testRating) pre_rating=predict(B,user_sim,testRating(i,1),testRating(i,2),nu mber(p)); if (pre_rating~=0) num_predict=num_predict+1; end sum_erro=sum_erro+abs(pre_rating-testRating(i,3)); sum_RMSE_erro=sum_RMSE_erro+(pre_rating-testRating(i,3)) ^2; if testRating(i,2)==8 testRating(i,1) testRating(i,2) testRating(i,3) pre_rating end end fprintf(' CF 邻居个数等于 30 的平均预测误差是:\n\n'); MAE=sum_erro/num_predict RMSE=sqrt(sum_RMSE_erro/num_predict) coverage=num_predict/length(testRating) end function [sim]=simliarity(B,tar_user_id,pre_user_id) [t1,t2]=size(B); co_rating_number=0; co_item=[]; sum_tar_user=0; sum_pre_user=0; avg_tar_user=0; avg_pre_user=0; for j=1:t2 if (B(tar_user_id,j)~=0) && (B(pre_user_id,j)~=0) co_rating_number=co_rating_number+1; sum_tar_user=sum_tar_user+B(tar_user_id,j); sum_pre_user=sum_pre_us