协同过滤之Slope One算法

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

纯笔记,直接从维基百科上翻译过来的:http://en.wikipedia.org/wiki/Slope_One

slope-one算法是基于评分的item-based算法中最简单的一种了,它的思想非常简单,但在很多场合却有很好的效果。但是slope one只适用于有评分的情况,对于二值评分,如商品的有无购买,这种算法是不适用的。

通常的item-based算法是基于用户的评分历史及其他用户对item的评分来预测用户对item的评分的。举个例子,如果一个用户给重塑的专辑评了5分,那么他会不会对PK14同样也评5分呢?

处理这种问题时,我们通常是根据用户的历史评分记录,使用线性回归 f(x) = ax + b来拟合。因此,如果item的数量为1000,那么可能导致有1000000种回归方式,2000000个回归变量。这种方法会造成严重的过度拟合(因为回归是基于用户自身的),除非我们选择那些许多用户有共同评分的item来进行计算(即协同过滤)。

另外一种方法是,我们把回归直线简化成 f(x) = x + b。这样就只剩一个回归变量了(slope one)。

slope one算法解释:

假设有A,B两位用户,他们对item I,J的评分如下:

用户A对I和J均有评分,用户B只对I有评分,现在需要预测用户B对J的评分。

使用slope-one算法,结果很简单:用户A对I和J的评分差为:1.5 - 1 = 0.5,因此用户B对J的评分 = 2 + 0.5 = 2.5


再看另一个例子:

CustomerItem 1Item 2Item 3
A532
B34?
C?25
在这个例子中,用户A和B对item1,2的评分平均差为: (2 + (-1)) / 2 = 0.5,也就是说,item 1平均获得比item 2高0.5的评分。类似地,item 3和item 1的评分差为3。因此,假如我们根据C对item 2的评分历史来预测他对item 1的评分,结果为2 + 0.5 = 2.5。如果我们用她对item 3的评分来预测item 1,则结果为5+3=8。

在这种情况下,用户对多个item都有评分历史,我们只需要简单地根据对同一个item共同评分的用户数做一个加权平均即可。这里总共有2位用户同时对item1和item2做过评分,有一位用户同时对item2和item3做过评分,因此C对item 1的评分为:

(2 * 2.5 + 1 * 8) / (2 + 1) = 4.33

给定n个item,slope one在实现上只需要计算和存储item间的平均分差以及共同评分的用户数,总共有n*n对item。

算法复杂度:

若有n个item,m个用户,以及N个评分,则每两个item之间的平均分差,需要n*(n-1)/2的单位存储,以及最多m*n*n次计算。若用户最多对y个item有评分,则计算平均分差的时间复杂度为 n*n + m*y*y。若一个用户有x个评分,则预测一次评分需要x次计算,预测用户的所有评分需要(n-x)*x次计算。

一种精简空间的方法是划分数据(个人理解是,将评分数据根据item进行存储)或使用稀疏存储,即忽略没有共同评分的数据。

Slope One 协同过滤 推荐算法 Slope one  是一个简单,效率较高的协同过滤推荐算法。 Slope One 算法是由 Daniel Lemire 教授在 2005 年提出.距今已经10年。     基于如下五点被设计出来: 1. 算法容易实现和维护 2. 对新的评分应该立即给予响应 3. 查询速度要快(虽然可能以牺牲存储量为代价) 4. 对新的用户也要能给出有效的推荐 5. 精度 阅读详情

相关推荐

Slope One:一种简单但实用的推荐算法

Slope One是一种简单但实用的协同过滤推荐算法。它的基本思想是如果两个项目对同一用户有相同的评分差值,那么这两个项目对其他用户也应有相同的评分差值。Slope One通过对评分差值的利用从而减少所需的数据,这使得它在数据稀疏的情况下仍能有效运行。

洛阳泰山的博客 967

SlopeOne 算法基本原理

目录1. 基本定义2. SlopeOne方案3 加权Slope One方案4 两极Slope One方案 1. 基本定义 符号 表示的意义 uuu 对于给定的用户,将这个用户的对物品的不完全评分数组称为evaluationevaluationevaluation,这个evaluationevaluationevaluation表示用户对物品的评分 uiu_iui​ 表示用户对物...

猜丁壳 7146

SlopeOne算法

SlopeOne算法

推荐算法之SlopeOne算法

1.基本思想   SlopOne算法也属于协同过滤算法的范畴,它是一种Rating-based算法,即基于评分的协同过滤算法,利用物品间的流行度差异来预测用户对新物品的评分,一共有三种形式,下面将一一介绍。   在这里我们规定了下面将用得到的符号,以及他的含义。 符号 含义 uuu 对于一个给定用户的不完整的评分数组,称为evaluationevaluationevaluation,即用户对所有物品的评分数组,包括用户未评价的物品 uiu_iui​ 用户对物品iii的评分 S(u)S

chenjunheaixuexi的博客 977

SlopeOne推荐算法

该代码是一个完整的slope one 案例,里面有main函数和初始化值,可以直接运行观测结果,代码结构清晰,方便用户修改或研究使用

【ros2】从零认识URDF:机器人模型描述的“说明书”

visual>子节点只负责机器人在RViz2中的可视化效果,不参与任何物理计算,就像给零件“穿衣服”。<origin>:定义零件的局部坐标系相对于连杆原点的位姿,参数xyz表示平移(单位:米),rpy表示旋转(单位:弧度,绕x→y→z轴旋转);<geometry>:定义零件的几何形状,支持四种基础形状+外部3D模型;<material>:定义零件的颜色,需要提前定义材质。常见几何形状示例-- 连杆名称:base_link(底座),全局唯一 --> < visual > <!

EnHengNa的博客 1608

Part6 Slope-One 算法

系列文章目录 例如:第一章 Python 机器学习入门之pandas的使用 Part1 推荐系统基础 Part2 Movienles介 Part3 协同过滤基础 Part4 协同过滤进阶 Part5 矩阵分解SVD Part6 Slope-One算法 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 根据之前几篇文章的介绍,我们应该对协同过滤和矩阵分解算法有了比较深入的了解。由于协同过滤存在计算

weixin_41821131的博客 2883

MacOS上如何修改jupyter book的默认打开地址以及如何复制文件路径

记点笔记,才换新系统小半年,还是不太熟悉,所以记录一下笔记,感觉之后也会用到,希望能帮到你们。主要内容是:修改jupyter的默认地址以及复制文件路径。

魔仙的博客 1978

协同过滤推荐算法(Slope-One)

Slope-One 算法是一种简单且高效的协同过滤推荐算法,主要用于基于用户评分数据的推荐系统中。

weixin_43156294的博客 2145

一生一芯预学习:从零搭建Verilator仿真环境与NVBoard实战

本文详细介绍了如何从零搭建Verilator仿真环境,并完成NVBoard实战项目,为'一生一芯'预学习提供完整指导。内容包括环境配置、工具安装、波形生成、自动化构建及可视化调试技巧,帮助初学者快速掌握数字逻辑设计与仿真验证的核心技能。

keras9composer的博客 700

Windows+VSCode+Cline+MCP全流程配置指南

本文提供了一份详细的Windows+VSCode+Cline+MCP全流程配置指南,旨在帮助开发者打造高效的AI辅助编码工作站。文章从环境准备讲起,逐步指导安装VSCode、配置Cline插件、搭建Node.js环境,并重点详解如何通过MCP为Cline集成文件系统和GitHub等工具服务器,实现用自然语言操控开发环境,从而显著提升日常编码与文件管理效率。

weixin_28840143的博客 550

推荐算法之协同过滤算法之Slope one

推荐系统最早在亚马逊的网站上应用,根据以往用户的购买行为,推荐出购买某种产品同时可能购买的其他产品,国内做的不错的当当网,有时候买书,它总能给我推荐出我感兴趣的其他书来,也算是技术极大的促进了销售。 一般的协同过滤算法,首先是收集用户对事物(产品)的评分情况,一种直接对某本书,或者某个歌曲打分,另种是隐性的打分,比如商务系统中,购买了表示打2分,浏览了打1分,其他的0分。我比较看好隐性打分,

crazyhacking的专栏 1946

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

培训课件:推荐系统中的 Slope One 协同过滤算法

Slope One 是推荐算法中“极简主义”的代表。它没有复杂的矩阵分解,没有多层的神经网络,仅仅依靠简单的加减乘除和平均,实现了高效的推荐。它舍弃了传统协同过滤中的“相似度”计算,换来了无参数、易解释、易更新的优势。虽然在极致精度上可能不如 SVD 或深度学习模型,但在特定场景(如快速上线、实时更新)下,它是一个非常有力的工具。理解 Slope One 不仅仅是学会了一个算法,更是理解了在推荐系统中,简单并不代表无效,复杂的模型往往需要匹配复杂的业务场景。

zhishidi的博客 381

阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏

阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。

sg_knight的专栏 1928

Raspberry Pi Pico + Inmp441麦克风(Pio模拟I2s)<2>

摘要:本文介绍了在Raspberry Pi Pico上使用PIO(Programmable I/O)接收I2S数字麦克风音频数据并保存为WAV文件的方法。项目采用双PIO状态机设计,一个生成I2S时钟信号(WS+SCK),另一个接收24位左声道数据并转换为16位格式。文章详细说明了接线方式、参数设置、WAV文件头构造、PIO汇编程序实现以及数据转换处理流程。项目在MicroPython环境下实现16kHz采样率、6秒时长录音,具有时序精确、稳定可靠的特性,并提供了进一步拓展的可能性,如双声道支持、实时频谱分

技术需要沉淀,需要碰撞。 657

Slope One 协同过滤算法

1 背景介绍 1.1 问题描述         人们在网上收看电影时,常常会给看过的电影打分。从这些电影的打分情况可以发掘出一个用户的电影收看偏好。通过发掘出的用户偏好,可以为用户做出准确的电影推荐。在这个问题中,我们需要根据用户之前的电影打分记录,来预测该用户对一部未看过的电影的评分情况。 1.2 协同过滤         上面描述的是一个典型的协同过滤推荐问题(Collabora

独行闹市无人问,青灯剑影响素琴 2061

【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能

在探讨计算机性能优化的旅程中,我们常常被引导去关注算法的复杂度、代码的优化,或是更高效的数据结构。然而,有一个经常被忽视的角色在幕后默默地影响着程序的运行效率——那就是缓存(Cache)。正如哲学家亨利·戴维·梭罗在《瓦尔登湖》中所说:“细节是造成美丽的源泉”,在软件开发的世界里,对缓存的理解和优化,就是那些决定程序性能优雅与否的细节。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 3731

协同过滤推荐之slope one算法

1.示例引入 比如说你在京东选购手机iphone和note7: 消费者用过后,会有相关的评分。 假设评分如下:  评分 iphone note7  小a 4 5  小b 4 3  小c 2 3  小d 3 ?  问题:请猜测一下小d可能会给“note7”打多少分?  思路:把两个手机的平均差值求出来,iphone减去note7的平均偏差:[(4-5)+(4-3)+(

京东放养的爬虫 1668

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Slope one—个性化推荐中最简洁的协同过滤算法

Slope One 是一系列应用于 协同过滤的算法的统称。由 Daniel Lemire和Anna Maclachlan于2005年发表的论文中提出。 [1]有争议的是,该算法堪称基于项目评价的non-trivial 协同过滤算法最简洁的形式。该系列算法的简洁特性使它们的实现简单而高效,而且其精确度与其它复杂费时的算法相比也不相上下。 [2]. 该系列算法也被用来改进其它算法。[3][4]

whaoXYSH的专栏 6867

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Slope one简单的协同过滤算法

现在做的一个项目中需要用到推荐算法, 在网上查了一下. Beyond Search介绍了一个协同过滤算法(Collaborative Filtering) : Slope One;和其它类似算法相比, 它的最大优点在于算法很简单, 易于实现, 执行效率高, 同时推荐的准确性相对很高; 基本概念 Slope One的基本概念很简单, 例子1, 用户X, Y和A都对Item1打了分.

qingtian2015的专栏 475

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Collaborative filtering 协同过滤算法 Slope One

协同过滤算法:Slope One Slope One Predictors for Online Rating-Based Collaborative Filtering http://www.daniel-lemire.com/fr/abstracts/SDM2005.html Abstract: Rating-based collaborative filterin

世界上最美的语言有两种:5线谱和2进制 1197

协同过滤推荐算法之Slope One的介绍

Slope One 之一 : 简单高效的协同过滤算法(转)(       原文地址:http://blog.sina.com.cn/s/blog_4d9a06000100am1d.html        现在做的一个项目中需要用到推荐算法, 在网上查了一下. Beyond Search介绍了一个协同过滤算法(Collaborative Filtering) : Slope One;和其

vivianboypan的专栏 1159

协同过滤算法-slope one

推荐系统协同过滤算法-slope one

huruzun的专栏 1151
上一篇: 常用分类算法
下一篇: mahout分类算法效果评估指标
inte_sleeper
博客等级 码龄21年 73粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值