1.基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法,其特征在于,包括以下步骤:
步骤1,收集用户的评分数据,得到用户‑电影评分矩阵S;
其中,矩阵的每个元素sij为用户原始评分数据,表示用户i对电影j的评分,用户没有评分过的电影分值为0,用户下标i=1,2,…,m,电影下标j=1,2,…,n,m为用户的个数,n为电影的个数;
步骤2,选用min‑max数据归一化方法对用户评分数据归一化,使得用户的评分数值在设定区间之内,进而得到归一化用户评分,min‑max数据归一化公式如下:其中,minA为用户评分数据集A中最小的数据,maxA为用户评分数据集A中最大的数据,newmax为设定区间的上界,newmin为设定区间的下界,sij为原始评分数据,nij为归一化后的评分数据;
步骤3,按照步骤2对用户集合中每位用户的评分数据进行相同的处理,最终得到归一化用户评分矩阵N如下:
其中,矩阵的每个元素nij为归一化后的评分数据,表示用户i对电影j的归一化评分;
步骤4,在用户集合中选取一个用户Useri,通过该用户的评分电影并结合电影信息表中的电影属性,匹配得到该用户所评分的每个电影的属性向量Attributeij如下:其中, 表示用户i所评分的第j个电影的第f个属性,且对于电影具有的属性的初始值为1,
不具有的属性初始值为0,属性下标f=1,2,…,F,F表示电影属性个数;
步骤5,对步骤4中用户Useri所评分的每个电影,并结合该用户对每个电影的归一化评分以及对应的电影属性得到该用户的加权兴趣向量Attribute_scorei,由于用户所评分的不同电影中存在属性相同的情况,故采用平均加权兴趣向量Avg_attribute_scorei来描述该用户的综合兴趣爱好,Avg_attribute_scorei表示为:其中, 表示用户i对属性f的平均加权评分;
加权兴趣向量公式为:
Attribute_scorei=nij·Attributeij平均加权兴趣向量每个分量 的计算公式为:其中, 表示用户i所评分的所有电影中相同属性 的计数;
步骤6,按照步骤4、步骤5对用户集合中的每位用户进行相同的处理,最终得出每位用户的平均加权兴趣向量;
步骤7,设定聚类簇数K并创建K个空的用户兴趣集合{C1,C2,...,Ck,...,CK};其中,类簇下标k=1,2,3,...,K;
步骤8,在用户集合中随机选取K个用户的平均加权兴趣向量作为初始类簇中心{μ1,μ2,...,μk,...,μK};
步骤9,从用户集中选取一个用户Useri并计算该用户的平均加权兴趣向量到各个聚类中心的距离dik,求出与该用户距离最近的聚类中心μk,并将该用户纳入相应的类簇Ck中;
距离公式:
dik=||Avg_attribute_scorei‑μk||2聚类公式:
μk=argmink∈{1,2,3...,K}dik步骤10,按照步骤9对用户集合中的每位用户进行相同的处理,将所有用户都归入相应的类簇中;
步骤11,选取K个类簇中的一个类簇Classk,计算该类簇中所有用户的平均加权兴趣向量的均值向量作为该类簇新的聚类中心μ’k;
其中,Card(Ck)为类簇Ck中用户的数量;
步骤12,按照步骤11对K个类簇中的每个类簇进行聚类中心更新操作,得到新的聚类中心{μ’1,μ’2,...,μ’K,...,μ’k};
步骤13,重复步骤9、步骤10、步骤11、步骤12,直到每个类簇的聚类中心不再改变时输出K个类簇 以及对应的聚类中心
步骤14,选取目标用户集合中的一个目标用户Target_usert,通过计算该目标用户平均加权兴趣向量与各个聚类中心 的距离,判断目标用户所在兴趣集合,具体计算公式同步骤5和步骤9;其中,目标用户集合是用户集合的一个子集,目标用户下标t=1,2,3,...,T,T为目标用户集合中用户的数量;
步骤15,利用皮尔逊相关系数公式计算步骤14中目标用户Target_usert与其所在的兴趣集合 中每个用户的评分相似度Sim_scorete;利用余弦相似度公式计算步骤14中目标用户Target_usert与其所在的兴趣集合 中每个用户的平均加权兴趣向量相似度Sim_attributete;其中,兴趣集合 中用户下标 表示兴趣集合中的用户的数量,皮尔逊相关系数公式:其中,Ite表示用户t,e共同评分的电影集合,电影c属于集合Ite,ntc表示用户t对电影c的归一化评分, 和 分别表示用户t,e对电影c的归一化平均评分;
余弦相似度公式:
其中, 分别表示用户t,e的平均加权兴趣向量;
步骤16,结合步骤14中目标用户Target_usert与所在兴趣集合中每个用户的评分相似度Sim_scorete和平均加权兴趣相似度Sim_attributete得到该目标用户与兴趣集合中每个用户的综合相似度Simte;
Simte=λSim_scorete+(1‑λ)Sim‑attributete其中λ为评分权重因子;
步骤17,以综合相似度Simte为标准,对步骤14中目标用户Target_usert所在的兴趣集合中的用户进行综合相似度排序,得到该目标用户的序列化邻居用户集合;
步骤18,按照步骤步骤14、步骤15、步骤16、步骤17对目标用户集合中的每个用户进行相同的处理,最终得出每位目标用户的序列化邻居用户集合;
步骤19,设定参照邻居用户数N以及目标用户的推荐电影个数R;其中,参照邻居用户数N的取值范围是0到m,目标用户的推荐电影个数R的取值范围是0到n;
步骤20,在目标用户集合中选取一个用户Target_usert并查看该目标用户的序列化邻居集合,取前N个用户构成该目标用户的参照邻居用户集NNt并作为计算目标用户未评分电影的预测评分依据;
步骤21,利用现有的基于用户的协同过滤推荐算法,通过步骤20中目标用户Target_usert的参照邻居用户集NNt计算该目标用户未评分电影j的预测评分Ptj,预测评分公式如下:
其中,参照用户u属于集合NNt,Simtu为 目标用户Target_usert与参照邻居用户u的综合相似度,nuj为参照邻居用户u对电影j的归一化评分, 分别为参照邻居用户u和目标用户Target_usert所评分电影的归一化平均评分;
步骤22,按照步骤21对步骤20中目标用户Target_usert所有未评分电影进行相同的处理,得出该目标用户未评分电影的预测评分;
步骤23,按照步骤20、步骤21、步骤22对目标用户集中每位用户进行相同的处理,得出每位目标用户未评分电影的预测评分;
步骤24,对目标用户集中每位用户的预测评分电影按照预测评分数据的大小排序,得到每位目标用户的序列化预测评分电影集合;
步骤25,在目标用户集中选取一个用户Target_usert,查看该目标用户的序列化预测评分电影集合并取出预测评分大小前R个电影作为该目标用户的推荐电影列表Recommend_itemt;
步骤26,按照步骤25,对目标用户集中每位用户进行相同的处理,最终得出每位目标用户的电影推荐列表。