用Hadoop流实现mapreduce版推荐系统基于物品的协同过滤算法

2023-10-31

       以个性化新闻推荐为例,整个过程分成两个mapreduce阶段,由于hadoop流不支持多个mapreduce过程的自动化,所以所有mapreduce过程命令必须人工一个一个的执行。

1、首先需要将原始数据处理成如下形式的两个文件

文件一:Item_user_score.txt

格式:物品—用户—分数

如下图中第一行,物品100655565被用户1634974浏览过,则将分数记为1


文件二:Item_Item_number.txt

格式:物品—物品—相似度

如下图中第二行,物品100654360与物品100650498同时被两个用户浏览过


2、矩阵乘法

其实文件一和文件二分别保存着一个矩阵,第二步就是要做矩阵乘法。

step1mapper.py

#!/usr/bin/env python
"""A more advanced Reducer, using Python iterators and generators."""

from itertools import groupby
from operator import itemgetter
import sys

def read_mapper_output(file, separator='\t'):
	for line in file:
		yield line.strip().split(separator,1)

def main(separator='\t'):
	# input comes from STDIN (standard input)
	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Hadoop流实现mapreduce版推荐系统基于物品的协同过滤算法 的相关文章

随机推荐

  • PyTorch、TensorFlow和Jax构建神经网络模型的标准化流程

    文章目录 开始之前 一 PyTorch 1 1 PyTorch 版本1 x阶段 二 TensorFlow 2 1 TensorFlow 版本 1 x 阶段 2 2 TensorFlow 版本 2 x 阶段 三 Jax 3 1 Jax 版本
  • @Transactional 事务调用与生效场景总结

    1 同一个类中 事务publicA掉非事务B B抛异常 AB事务生效 具有传播性 Override Transactional public void A User u new User u setAccount test u setNam
  • 深入研究webpack之Tree Shaking相关属性sideEffects用处

    Tree Shaking我原来也只是了解 这次碰巧深入研究了下 就写个博客记录一下 网上有很多讲Tree Shaking的 我写的这篇跟他们侧重点不一样 Tree Shaking相关的基础知识 1 webpack会从入口文件开始不断的获取你
  • 中科院分区2020_一文读懂SCI期刊分区和实时影响因子计算方法

    作者 恺忻 排版 审核 恺忻 SCI分区 sci分区是一个sci基本常识 国内很多有sci论文发表要求的高校或者科研单位 在发表要求中对期刊分区一般都有明确要求 因为分区不同关系着影响因子高低 很多作者不知道如何查看sci期刊分区 目前sc
  • 文件操作(详细总结)

    文章目录 为什么要使用文件 什么是文件 文件的打开和关闭 文件顺序读写 流 文件的随机读写 文本文件和二进制文件 文件读取结束的判定 文件读取结束的原因 文件缓冲区 为什么要使用文件 为了更好的保存数据 可以将数据写到文件里 在硬盘中 什么
  • 1.4 顺序与选择结构

    第一关 顺序结构 任务描述 本关介绍顺序结构 程序最基本的结构就是顺序结构 顺序结构就是程序按照语句顺序 从上到下依次执行各条语句 本关要求读者理解顺序结构 对输入的三个数changeone changetwo plus能够先交换chang
  • 20行Python代码爬取网站美女图,哇太多了,我U盘装满了

    淘女郎爬虫 可动态抓取淘女郎的信息和照片 需要额外安装的第三方库 requests pip install requests pymongo pip install pymongo 模块功能 TaoLady py 负责发送POST请求和抓取
  • python一定要有主函数吗_python没有main函数吗

    相信很多初学python的人看代码的时候都会先找一下main 方法 从main往下看 但事实上python中是没有你理解中的 main 方法的 if name main 可以看成是python程序的入口 就像java中的main 方法 但不
  • 软件测试的技术深度一定比软件开发低吗?看完这篇文章秒懂

    之所以会有很多人普遍觉得 测试人员比开发人员要求低 一是国内行业现状造成的 因为国内软件企业对软件测试技术的认知比较晚 即使在发展了几年后测试行业变得相对成熟和正式 仍然很多企业公司的主观意识中觉得开发人员解决的是项目可用性问题 而测试人员
  • 使用tensorflow卷积神经网络实现mnist手写数字识别

    在实现mnist手写数字识别的时候 看了极客网上的例子 自己试着实现了一下 但是期间发现了很多问题 于是就把值得注意的地方写在注释里面了 以供后面查阅温习 import tensorflow as tf from tensorflow ex
  • MyBatis 解决模糊查询包含特殊字符

    第一块 MyBatis 实现模糊查询方式 1 1 sql中字符串拼接 SELECT FROM 表名 WHERE 字段名 LIKE CONCAT CONCAT 参数 1 2 使用 代替 SELECT FROM 表名 WHERE 字段名 LIK
  • Linux 嵌入式 BeagleBone 使用 Python 和 JavaScript

    特点 BeagleBone 是一款面向创客的嵌入式 Linux 开发板 它具有内置网络 许多输入和输出以及处理要求苛刻的任务的快速处理器 介绍原始的 BeagleBone 和新的 BeagleBone Black 并开始利用板的处理能力及其
  • PYTHON编程导论群问题汇总(五)

    Q15 改变对象与绑定 P54 Univs和Univs1被绑定到不同的对象的原理不是很清楚 bigjing Univs Techs Ivys Univs1 MIT Caltech Harvard Yale Brown Univs绑定的是含有
  • 【python】numpy随机抽样

    0 前言 numpy random 模块对 Python 内置的 random 进行了补充 增加了一些用于高效生成多种概率分布的样本值的函数 如正态分布 泊松分布等 1 随机模块 numpy random seed seed None se
  • Set结构的使用与实现

    Set Set是继承自Collection的一个接口类 Set中只存储了key 并且要求key一定要唯一 Set的底层是使用Map来实现的 其使用key与Object的一个默认对象作为键值对插入到Map中的 因为Set里面的key是不能够重
  • pyppeteer和selenium远程操控浏览器

    1 配置环境 Chrome浏览器是支持远程调试模式的 这个模式打开的情况下 Puppeteer或者Selenium可以通过websocket连上去 进而控制它 首先我们来启动Chrome的远程调试端口 你需要找到Chrome的安装位置 在C
  • linux ld 链接.o文件,Linux:控制`ld`搜索.o目标文件的位置?

    好吧 情况就是这样 我正在尝试使用一些较旧的软件 在Ubuntu Lucid上工作正常 在Natty上失败 所以 我徘徊了一下 事实证明这个软件调用ld 并且ld最终失败了 ld crt1 o No such file No such fi
  • 机器学习算法简介和代码(P&R语言)

    机器学习算法 P R语言 一般说来 机器学习有三种算法 1 监督式学习 监督式学习算法包括一个目标变量 因变量 和用来预测目标变量的预测变量 自变量 通过这些变量我们可以搭建一个模型 从而对于一个已知的预测变量值 我们可以得到对应的目标变量
  • Matlab学习:读取excel中数据

    Matlab中大部分功能都可以通过函数调用实现 在本文中所涉及的读取excel中数据这一功能可以通过下面的函数 1 实现 num xlsread fileURL n 1 其中 num 表示输出的数据 可以是矩阵也可以是数组 xlsread
  • 用Hadoop流实现mapreduce版推荐系统基于物品的协同过滤算法

    以个性化新闻推荐为例 整个过程分成两个mapreduce阶段 由于hadoop流不支持多个mapreduce过程的自动化 所以所有mapreduce过程命令必须人工一个一个的执行 1 首先需要将原始数据处理成如下形式的两个文件 文件一 It