热门算法总结 —— Slope One

  • Post author:
  • Post category:其他



1、算法简介


(1)概述

:Slope One是一种基于评分的协同过滤算法。协同过滤是通过计算用户间偏好的相似性,在相似用户的基础上自动的为目标用户进行过滤和筛选,其基本思想为具有相同或相似的价值观、思想观、知识水平和兴趣偏好的用户,其对信息的需求也是相似的。协同过滤常常用于推荐系统的设计。基于评分的Slope One算法具有简单、易懂、易于维护和执行、及时更新性等特点。与其他的个性化推荐算法相比,该算法不计算项目之间的相似度, 而是用一种简单的线性回归模型进行预测(可以扩展)。算法易于实现,计算速度快,可扩展性好,同时对数据稀疏性有较好的适应性。


(2)主要用途

:基于相似性,给出评分预测,从而用于推荐系统的设计。


(3)优缺点

[1] 优点:算法简单、易于实现且执行效率高;可以发现用户潜在的兴趣爱好。

[2] 缺点:依赖用户行为,存在冷启动问题;该算法只是简单的采用线性回归分析项目间

的相似性,未考虑其它因素对算法推荐精度的影响;且对于一些特定问题,例如对于只有看过 / 没看过这样的新闻浏览或者视频点播数据,如果认为用户看过 / 点播过的行为的评分是1,而没有看过 / 点播过的行为不做处理,也就是说用户-物品评分矩阵中只有元素1,没有元素0,则Slope-One算法是无效的。因为算法退化为,只要某个物品有和其他物品一起被某个用户浏览过(用户-物品评分矩阵中元素值为1),它的评分对于任意用户来说都是 1,也就是表示这个物品会被这个用户看,但是并不是一个具体的分值。


2、算法流程


(1)第一步

:筛选用户集合。在User-Item评分矩阵中并非所有用户都参与目标项目评分,而是只有对目标项目评过分的用户才构成用户集合;


(2)第二步

:筛选项目集合。根据目标用户的已评分项目来筛选集合中其他用户是否对该项目进行过评分,如果有,就把该项目筛选到参与算法运算的项目集合中。如果没有,该项目即不参与运算;


(3)第三步

:预测项目评分。将User-Item评分矩阵通过筛选用户和筛选项目后得到参与Slope One算法运算的评分数据。其中,Slope One算法的运算过程如下所示:


3、模拟例子


(1)说明

[1] 数据情况:已知小明班上30名同学对牛奶、西瓜的评分和除小明外对爆米花、辣条和可乐的评分;

[2] 研究目的:预测小明对爆米花、辣条和可乐的评分,并推荐预测评分最高的2个。


(2)分析步骤

[1] 第一步:输入小明班上30名同学的评分数据;

[2] 第二步:利用Slope One方法计算出小明对爆米花、辣条和可乐的预测评分;

[3] 第三步:将评分进行降序排序,取前2名。


(3)结果模拟

:可乐和辣条评分最高,将可乐和辣条推荐给小明进行购买。



版权声明:本文为A_1245原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。