1分钟了解协同过滤,pm都懂了

本文用简单易懂的方式介绍了推荐系统中的协同过滤技术。通过找到兴趣相似的用户群,推荐他们可能感兴趣的物品,如电影等。文章通过实例展示了实现协同过滤的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工程架构方向的程序员,看到推荐/搜索/广告等和算法相关的技术,心中或多或少有一丝胆怯。但认真研究之后,发现其实没有这么难。

 

今天的1分钟系列,给大家介绍下推荐系统中的“协同过滤”,绝无任何公式,保证大伙弄懂。

 

什么是协同过滤(Collaborative Filtering)?

:通过找到兴趣相投,或者有共同经验的群体,来向用户推荐感兴趣的信息。

 

举例,如何协同过滤,来对用户A进行电影推荐?

:简要步骤如下

  • 找到用户A(user_id_1)的兴趣爱好

  • 找到与用户A(user_id_1)具有相同电影兴趣爱好的用户群体集合Set<user_id>

  • 找到该群体喜欢的电影集合Set<movie_id>

  • 将这些电影Set<Movie_id>推荐给用户A(user_id_1)

 

具体实施步骤如何?

:简要步骤如下

1)画一个大表格,横坐标是所有的movie_id纵坐标所有的user_id交叉处代表这个用户喜爱这部电影

如上表:

  • 横坐标,假设有10w部电影,所以横坐标有10wmovie_id,数据来源自数据库

  • 纵坐标,假设有100w个用户,所以纵坐标有100wuser_id,数据也来自数据库

  • 交叉处,“1”代表用户喜爱这部电影,数据来自日志

画外音:什么是“喜欢”,需要人为定义,例如浏览过,查找过,点赞过,反正日志里有这些数据

 

2)找到用户A(user_id_1)的兴趣爱好

如上表,可以看到,用户A喜欢电影{m1, m2, m3}

 

3)找到与用户A(user_id_1)具有相同电影兴趣爱好的用户群体集合Set<user_id>

如上表,可以看到,喜欢{m1, m2, m3}的用户,除了u1,还有{u2, u3}

 

4)找到该群体喜欢的电影集合Set<movie_id>

如上表,具备相同喜好的用户群里{u2, u3},还喜好的电影集合是{m4, m5}

画外音:“协同”就体现在这里。

 

5未来用户A(use_id_1)来访问网站时,要推荐电影{m4, m5}ta

 

协同过滤大致原理如上,希望大家有收获。


推荐文章:

1分钟了解“区块链”的本质

1分钟了解“挖矿”的本质

1分钟了解“区块链分叉”

### PM10模块简介 PM10模块是一种专门用于监测空气中颗粒物浓度的设备,其核心功能是对直径小于等于10微米的悬浮颗粒物进行实时检测。这类模块通常被集成到综合环境监测系统中,与其他传感器协同工作,提供全面的空气质量评估数据。 #### 模块特性 根据已知的信息,PM10模块具有以下特点: - **多参数监测能力**:除了PM10外,某些高级模块还能够同时监测其他空气污染物,例如PM2.5、PM1.0、TVOC(总挥发性有机化合物)、以及环境烟雾等[^2]。 - **高精度与稳定性**:这些模块普遍采用高性能传感器和控制芯片,确保测量结果的高度精确性和长期稳定性。 - **宽电压输入范围**:支持DC9V至24V直流电源供电,适应多种应用场景下的电力需求。 - **标准化通信协议**:多数产品配备RS485接口并遵循Modbus-RTU协议,便于接入各种工业控制系统或物联网平台。 #### 数据采集流程概述 虽然具体针对PM10的数据采集细节未直接提及,但从相似类型的传感技术可以推测出大致的工作机制如下: 1. 设备启动后需经历短暂延时以便内部电路完成自检及预热处理; 2. 随即进入主动采样阶段,在此期间气流会被引导经过内置过滤网到达敏感元件表面; 3. 测量完成后将原始电信号转换成对应物理量数值并通过指定通道上传至上位机软件做进一步分析展示。 值得注意的是上述描述并非严格限定于某单一品牌型号而是基于行业通用做法总结而来因此实际操作步骤可能会因制造商设计差异而有所调整。 #### 应用领域 此类装置广泛适用于各类公共设施内如办公楼宇空调通风网络优化管理;住宅区智能化改造项目实施过程中作为基础感知单元部署其中发挥重要作用;教育医疗单位室内健康安全保障体系构建不可或缺组成部分之一等等场合下均可见其身影活跃其间贡献价值不菲之处甚众焉耳目所及皆有体现也夫复何求哉! ```python # 示例代码片段演示如何通过串口读取来自RS485连接之上的PM10值 (假设使用pyserial库) import serial ser = serial.Serial('COM3', baudrate=9600, timeout=1) def read_pm10(): ser.write(b'\x01\x03\x00\x00\x00\x02\xc4\x0b') # 假设这是请求帧格式 response = ser.read(7) # 接收返回包长度固定为7字节 pm10_value = int.from_bytes(response[3:5], byteorder='big') / 10 return pm10_value pm10_concentration = read_pm10() print(f"当前PM10浓度为 {pm10_concentration} μg/m³") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值