基于用户的协同过滤算法 UserCF流程图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UserCF算法主要流程:

主要全局变量:

const int usersum = 6040; //用户总数

const int itemsum =3952; //项目总数

const int N =10; //为用户推荐前N个物品

int trainuser[usersum][itemsum]={0}; //训练集合user item rate矩阵

int test[usersum][itemsum]={0}; //测试集合user item rate矩阵

struct _simi

{

double value; //相似值

int num; //相似用户号

};

_simi simiUser[usersum][usersum]; //排序后的相似性矩阵double trainuserItem[usersum][itemsum]={0.0}; // user item 兴趣程度矩阵int recommend[usersum][N]={0}; //为每个用户推荐N个物品

拆分数据集函数int SplitData(int m, int k) 主要流程:

将数据集拆分为测试集test和训练集trainuser,其中1/m为测试集,取不同的k<=m-1值在相同的随即种子下可得到不同的测/训集合

计算用户之间相似度函数double Simility(int* Ua, int*Ub)主要流程:计算用户Ua和Ub的相似性,返回值为Ua和Ub的相似度

用户相似性矩阵排序函数int sort(double *simArr,_simi *simStruct)主要流程:根据相似性由高到低排序,每行第一个是自己

用户i对物品j预测兴趣程度函数double getUserLikeItem(int i,int j,int k)主要流程:

利用k个最近邻来计算

推荐函数int getRecommend()主要流程:通过物品兴趣程度,推荐前N个

相关文档
最新文档