【基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例6000字】_第1页
【基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例6000字】_第2页
【基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例6000字】_第3页
【基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例6000字】_第4页
【基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例6000字】_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例目录TOC\o"1-3"\h\u7421基于用户偏好与改进麻雀搜索聚类的协同过滤算法分析案例 160231.1用户打分偏好模型 1158691.2改进麻雀搜索算法 3119201.2.1融合鸟群优化和动态步长权重的发现者策略 3323611.2.2引入自适应概率因子的跟随者策略 54711.2.3动态调整种群数量的选取 6224161.2.4改进的麻雀搜索算法流程 6193381.3基于用户打分偏好与改进麻雀搜索聚类的协同过滤算法流程 742511.4实验设计与结果分析 874501.1.1实验准备 8267481.1.2结果分析 81.1用户打分偏好模型我们考虑这样一种假设,如果用户u1喜欢某个项目,他会给它打4分,相反如果他不喜欢,他会给它打1分。从表1.1可以看出,u2喜欢i4,但不喜欢i1。但是如果其他用户u3喜欢i4和u2喜欢i4一样多,他会给i4打5分。此外,用户u3不喜欢i1,会将其评为2。因此,u2和u3之间的相似性应该是1,因为它们都喜欢i4也不喜欢i1,但显然通过公式求出两者的相似性矩阵中的值却不是1。又比如表1.1用户-项目评分矩阵iiiiiiu112453u122435u213545针对这一问题,我们引入了用户打分偏好模型[52]来对用户-项目矩阵中的评分值进行优化。首先假设打分类别集合为P1,…P5,若Pj<PUPu,其中,UPu,Pi表示用户u对打分类别Pi项目的偏好得分,NumPi表示用户u打分类别为Pi的数量,NumPi>Pj表示用户的打分类别Pi大于打分类别Pj的数量,δ是避免误差的常数,本文下面举例说明修正的用户-物品评分矩阵的计算过程。我们对表1.1中的数据进行优化,首先利用式4-(1),计算每个用户进行打分偏好值,计算结果如表1.2所示。表1.2用户打分偏好值12345u0.1670.4170.5830.7510.917u0.0830.3330.5830.7510.917u0.0830.2510.4170.5830.834通过公式计算后,用户对每个评分的偏好程度如图所示。得到所有用户的打分偏好得分后,使用用户的打分偏好值来代替原矩阵中的评分,最终使用优化后的用户打分偏好-项目矩阵进行推荐,优化后的矩阵如表1.3所示。使用该矩阵进行推荐可以有效的减少用户打分偏好对对最近邻选取产生的影响,提高推荐的准确率。表1.3用户打分偏好-项目矩阵iiiiiiu0.1670.1670.4170.7510.9170.583u0.0830.3330.3330.7510.5830.917u0.2510.0830.4170.8340.5830.834可以看到,用户u2和用户u3对i6的评分虽然都是5,但是经过优化处理后,我们认为用户u2比用户u1.2改进麻雀搜索算法经过上一章节中的验证,SSA虽然具有简单且高效的优点,应用在电影推荐领域也提高了整体推荐的准确率。但是通过实验我们发现了SSA算法存在的问题,该算法的发现者模型下的搜索维度会随着迭代次数的增大而逐渐变小,并且跟随者在移动时采用空间跳跃的移动方式,牺牲了麻雀在搜索食物时的寻优能力,减少了电影推荐的准确度,让长尾部分的电影不能得到很好地推荐。本节提出了一种改进的算法,具体改进方法如下:(1)融合鸟群搜索算法中发现者位置更新策略,在寻优过程中引入上一代全局最优解,提升全局搜索的充分性,来避免麻雀搜索算法随着迭代次数增加而维度逐渐变小的问题。并且引入动态步长权重,改善算法的局部与全局寻优能力。(2)通过在跟随着公式中增加了自适应概率因子,改变了一些适应度较低的跟随者的空间移动的方式,由直接向发现者位置跳跃变为使跟随者以一定概率向最优位置移动,提高了跟随者麻雀的搜索范围,提高寻优能力,避免陷入局部最优。(3)我们在选取跟随者和警戒者时采用线性递减的策略,随着迭代的次数增多,跟随着和警戒者的分配比例逐渐下降,维护种群的多样性,保护优势麻雀成员,提高了算法的寻优速度。最终在真实的电影评分数据集下进行实验,验证了可行性并提高了推荐的准确度。1.2.1融合鸟群优化和动态步长权重的发现者策略发现者负责寻找食物位置,通常有较高的适应值,并为所有的麻雀提供最佳觅食位置和移动方向。它负责确定可以找到丰富食物来源的地区。发现者由两种角色构成,当周围没有捕食者,发现者扩大搜索范围,进入更大范围的搜索。而当周围危险系数过高,在一些麻雀周围出现了捕食者,麻雀需要重新调整自己的位置飞往其他安全区域觅食。通过实验发现,当R2<ST时,即周围没有捕食者时,我们针对麻雀搜索发现者策略公式的取值进行分析,统计了1000次迭代后的数值变化,结果如图图1.1发现者搜索策略图如图1.1所示,当R2<ST时,刚开始迭代时函数的取值更集中在1附近,随着迭代次数慢慢增多,函数的取值逐渐变得较为均匀。但随着迭代次数慢慢的的增加,函数取值范围也逐渐在收紧,由[0,1]逐渐收紧到[0,0.5]之间。所以,麻雀搜索算法中的发现者模型在R2Meng等人在文献[53]中,提出了一种新型的群智能优化算法——鸟群搜索优化算法(BirdFlockSearchAlgorithm,以下简称为BSA)。该算法发现者搜索策略与麻雀搜索不同,相比于麻雀搜索有更加均匀的搜索策略且稳定性更好。其中发现者位置更新公式为xij式中,randn(0,1)表示的是高斯随机分布,其标准差为1、均值为0。本文将BSA中发现者搜索策略与SSA进行结合,可以避免SSA随着迭代维度变小的问题。同时本文引入动态步长权重[54]到发现者位置公式中,步长会随着当前麻雀的位置和当前最优位置动态的调节,在迭代初期,需要大步的搜索,于是步长值较大,迭代后期逐渐的减小,呈现一种智能递减的状态,通过调整可以避免算法过早陷入局部最优解,提高寻优能力,加快收敛速度。麻雀搜索算法中发现者位置更新公式由式3-(1)改变为式4-(3)。xijt+1动态步长权重按照如下递归:λt+1=式中,Xi,jt表示种群中第t代i麻雀j维的位置。R2和ST分别代表报警值和安全阈值。λi为第i只麻雀的步长权重,在式4-(4)由于xibest各不相同,λi的取值也不同。当λi的取值较大时,提高种群多样性,增加算法的寻优范围;而当λ1.2.2引入自适应概率因子的跟随者策略在麻雀搜索算法中,适应度较低的跟随者向发现者移动时,采取直接跳跃的形式,导致跟随者麻雀的寻优能力较低,易陷入局部最优。针对这一问题,本文在跟随者麻雀的位置公式中引入自适应概率因子[55],使跟随者麻雀以一定概率向最优位置移动,大大提高了跟随者麻雀在寻优时的搜索能力。改进方法如下,在D维空间中假设有n只麻雀,当i>n2时,说明适应值较差的第V=fi式中,V为跟随者适应度值的相对变化率,fit为第i个跟随者的适应度值,fbest为麻雀群中最佳麻雀的适应度值,Mit为麻雀群中第i个跟随者的在第Xi,j式中,XPt+1经过改进的跟随者的寻优策略发生了变化,在远离食物的位置将采用更大的步长进行移动,增加收敛速度。当跟随者当前位置离食物很近时,则需要小心翼翼的移动,防止错过最佳位置。大大提高了寻优能力。1.2.3动态调整种群数量的选取为了进一步提高SSA算法的收敛速度,我们可以通过优化跟随者和警戒者的数量分配关系,来让大多数麻雀更好的朝目标方向移动。He等在文献中提出一种群智能优化算法中各群体的比例关系,根据实验结果发现,当发现者数量固定为一个极小值,跟随者和警戒者的比例为4:1时,算法的寻优能力最好。同时算法在迭代选择时需要动态适应的过程,而麻雀搜索算法中采用固定比例的参数,不利于群体的迭代演化。本文采用动态调整分配比例的策略,随着迭代的次数增多,跟随者和警戒者的分配比例逐渐下降,由迭代最初的0.2逐渐下降到0.1,即跟随者由80%逐渐增加到90%,警戒者由20%逐渐减少到10%,维护种群的多样性,提高算法整体的寻优能力。动态调整分配比例公式如下:ω=0.2−0.1t式中,T为最大迭代次数,t为当前的迭代次数。1.2.4改进的麻雀搜索算法流程通过上节对SSA算法问题的分析与改进,最终提出了一种改进的麻雀搜索算法(以下简称ISSA)。ISSA的算法思想是:初始化麻雀种群的参数后,计算出当前适应度并更新最佳麻雀和最差麻雀。重新分配麻雀的角色,然后继续迭代,使用优化后的发现者跟随者公式更新麻雀位置,继续更新最佳麻雀和最差麻雀位置,直到算法结束。具体算法如表1.4所示:表1.4ISSA算法算法3ISSA算法输入:用户打分偏好-项目矩阵Q;用户数C;最大迭代数T;发现者数量Pm;跟随者数量Sn;警戒者数量Rx;警报值Av输出:Xbest,开始:初始化n只麻雀种群并定义它们的相关参数;while(t<排名适应度值并找到当前最佳麻雀和当前最差麻雀;使用公式4-(7)计算当前Pm、Sn和Av=fori=1:fori=1:fori=1:输出最佳麻雀位置和最差麻雀位置;If(当前最新位置优于之前的最优位置)更新Xbestt=endwhile输出Xbest1.3基于用户打分偏好与改进麻雀搜索聚类的协同过滤算法流程针对电影推荐系统的问题,并且基于前几小节对问题的改进,本文提出了基于用户打分偏好与改进麻雀搜索聚类的协同过滤算法(CollaborativefilteringalgorithmbasedonuserpreferenceandimprovedSparrowsearchclustering,以下简称为UPISSA-CF)。算法的基本思想是先利用用户打分偏好模型对评分矩阵进行优化,然后使用ISSA算法寻找初始聚类中心点,找到的最优初始聚类中心点,然后对用户进行聚类分簇。之后计算簇内用户间的相似度,对用户最近邻进行排序,然后对未评分的电影项目进行评分的预测,完成最后的推荐。UPISSA-CF和第三章中的SSA-CF相比较,主要改进了如下两点:(1)使用用户打分偏好模型计算用户打分偏好值,然后对评分矩阵中的评分进行优化,使用优化后的打分偏好值代替原矩阵中的评分,增加矩阵可用性,避免矩阵稀疏问题;(2)使用ISSA代替原麻雀搜索算法,改善了麻雀搜索搜索维度会随着迭代次数的增加而降低的问题,与原算法相比,进一步提高了推荐的准确度。UPISSA-CF算法流程如下:1)从数据库中抽取用户的行为数据信息与项目的数据信息,建立用户-项目评分矩阵P;2)根据公式4-(1)计算得出所有用户的打分偏好值,使用用户打分偏好得分代替P中的原始得分,得到用户打分偏好-项目矩阵Q;3)使用ISSA算法对所有用户进行寻找最优,选择初始聚类中心点;4)对所有数据进行聚类,根据距离对用户进行分簇,并缩减矩阵维度;5)根据公式2-(1)计算簇内用户间的相似程度,并排序找出最近邻集合;6)使用公式2-(2),对未评分项目的进行评分预测,将预测评分最高的项目推荐给用户。1.4实验设计与结果分析1.1.1实验准备与在上一章的实验环境完全相同的情况下,为验证UPISSA-CF的效果有多少提升,依然采用上章的方式,首先依旧是计算了算法在不同聚类个数C下的MAE,验证在不同的簇数进行实验对结果的影响。然后计算了在基于用户偏好与改进麻雀搜索的聚类推荐算法与基于麻雀搜索的聚类推荐算法在不同近邻个数K下的MAE值,并进行分析。1.1.2结果分析(1)用户最佳聚类个数C的确定为了与SSA-CF进行对比,对UPISSA-CF在不同个数的聚类中心C的情况下实验,并进行分析。实验选取与第四章同样的实验环境与相同的参数。实验与第四章相同,采用5折取样法,得出的结果与第三章算法相比较,如图1.2所示。图1.2聚类个数的选取对MAE影响根据图1.2可得,改进后的UPISSA-CF算法在不同的聚类中心C的情况下计算的MAE的值所呈现的趋势与原有的SSA-CF算法大致相同,得到的MAE值先下降再升高,且MAE的取值更低,说明推荐准确率更高,但在面对不同的聚类个数时变化趋势更加平滑,说明改进后的算法相比原算法在电影推荐场景下的适用性更强。同样当C选取为11时,算法的MAE值最小,此时UPISSA-CF的推荐效果最佳。(2)与其他同类推荐算法对比为了验证本文所提UPISSA-CF推荐结果的准确性,实验中选取了3种算法与其进行对比,包括传统的基于K-means聚类的协同过滤算法(K-means-CF)、粒子群优化的协同过滤算法(ParticleSwarmOptimization,PSO-CF)和第三章中提出的SSA-CF算法。参数设定为:聚类的个数为11,针对最佳邻居个数K值的取值进行限定,取值范围为[5,60]。观察在电影推荐场景下的推荐准确率,实验对比结果如图1.3所示。图1.3UPISSA-CF算法与其他算法准确性比较通过实验对比分析,本文算法与其他三种算法在不同的近邻数K下的实验结果,本文提出的算法推荐结果的准确度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论