基于hadoop的商品推荐系统_推荐系统(4)-基于内容的推荐系统

c3b4cd3dd9d5b2e124f2fc2874f3b219.png

一、基于内容(CB)的推荐系统

基于内容推荐的方法特别适用于文本领域,比如新闻的推荐等等。

核心:首先构造商品画像,之后根据此画像来寻找最相似的其他商品。

dbecdede2c24a79befc1bdf9bf663ac9.png

那具体如何来判断哪些是最相似的商品呢? 答案是:计算相似度!

774bd25fca76c5414cfc969eb96290f4.png

二、基于内容推荐系统的算法原理

2.1相似度计算

那又如何计算相似度呢?

答:转换成了向量的形式,计算两个向量之间的相似度。最经典的评估方法就是使用余弦相似度。

例子:电影构造物品画像

f582bbe04a7066a179d76268fc1a442f.png

问题:如何把这些特征表示成向量?

离散型变量——通过独热编码的形式来转换成向量

数值型变量——直接使用等等

问题:那文本类的特征如何处理呢? 比如电影的描述。

答:设计NLP领域。我们可以直接使用TF-IDF的方式即可以转换成向量的形式。当然我们也可以使用Word2Vec等技术来表示成向量的。

向量表示特征

例子:特征也叫作画像

fc47375c409172e60a1287cd9829e45e.png

计算相似度公式(常用余弦相似度

9255aa20cd00055f948bcc02ac21d506.png

问题:如何使用余弦相似度来计算每两个物品之间的相似度。

2af18d241f9aa4db944023e03b9b081b.png

2.2相似度排序推荐

54c36738e05e301bac97c02c2382a0d6.png

2.3基于内容推荐算法的优却点

优点:推荐较为准确

a6914439e7297b924666c54b0baacad9.png

缺点:(主要冷启动问题)

6143fd388d01c09cf4e0915f083c23ef.png

2.4如何去处理新用户的冷启动问题?

冷启动在推荐系统中非常常见。在基于内容的推荐算法中,一旦一个新用户来了,由于他还没有购买任何的物品,所以无法给他推荐任何物品的。

fbee5000eb20d0def28edaee6705bb39.png

解决冷启动问题总结:

1、 推荐目前热度最高的商品;

2、让用户自己标记一下自己喜欢的商品类型(APP新用户)

问题:基于内容的推荐还有一个大的问题,就是如何去维护物品之间的相似度?

答:计算单个物品与其他物品的相似度,排序存放相似度矩阵,使用时直接调度。

总结:基于内容的是目前常用,火热的推荐算法。

e56240f5c13dc212e4c0ebc55cec1fa1.png

三、代码实例

# coding: utf-8 -*-
 
"""
    Author: Alan
    Desc:
         编写一个基于内容推荐算法的电影推荐系统(训练模型)
"""
import json
import pandas as pd
import numpy as np
import math
import random
 
class CBRecommend:
    # 加载dataProcessing.py中预处理的数据
    def __init__(self,K):
        # 给用户推荐的item个数
        self.K = K
        self.item_profile=json.load(open("data/item_profile.json","r"))
        self.user_profile=json.load(open("data/user_profile.json","r"))
 
    # 获取用户未进行评分的item列表
    def get_none_score_item(self,user):
        items=pd.read_csv("data/movies.csv")["MovieID"].values
        data = pd.read_csv("data/ratings.csv")
        have_score_items=data[data["UserID"]==user]["MovieID"].values
        none_score_items=set(items)-set(have_score_items)
        return none_score_items
 
    # 获取用户对item的喜好程度(余弦相似度)
    def cosUI(self,user,item):
        Uia=sum(
            np.array(self.user_profile[str(user)])
            *
            np.array(self.item_profile[str(item)])
        )
        Ua=math.sqrt( sum( [ math.pow(one,2) for one in self.user_profile[str(user)]] ) )
        Ia=math.sqrt( sum( [ math.pow(one,2) for one in self.item_profile[str(item)]] ) )
        return  Uia / (Ua * Ia)
 
    # 为用户进行电影推荐
    def recommend(self,user):
        user_result={}
        item_list=self.get_none_score_item(user)
        for item in item_list:
            user_result[item]=self.cosUI(user,item)
        if self.K is None:
            result = sorted(
                user_result.items(), key= lambda k:k[1], reverse=True
            )
        else:
            result = sorted(
                user_result.items(), key= lambda k:k[1], reverse=True
            )[:self.K]
        print(result)
 
    # 推荐系统效果评估
    def evaluate(self):
        evas=[]
        data = pd.read_csv("data/ratings.csv")
        # 随机选取20个用户进行效果评估
        for user in random.sample([one for one in range(1,6040)], 20):
            have_score_items=data[data["UserID"] == user]["MovieID"].values
            items=pd.read_csv("data/movies.csv")["MovieID"].values
 
            user_result={}
            for item in items:
                user_result[item]=self.cosUI(user,item)
            results = sorted(
                user_result.items(), key=lambda k: k[1], reverse=True
            )[:len(have_score_items)]
            rec_items=[]
            for one in results:
                rec_items.append(one[0])
            eva = len(set(rec_items) & set(have_score_items)) / len(have_score_items)
            evas.append( eva )
        return sum(evas) / len(evas)
 
 
if __name__=="__main__":
    cb=CBRecommend(K=10)
    cb.recommend(1)
    print(cb.evaluate())
weixin_39762075
关注 关注
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据基础知识:Hadoop分布式系统介绍
大数据基础入门教程
03-20 780
随着智能化、万物互联时代的快速发展,数据量开始暴增,一方面我们需要开始思考如何高效可靠地存储海量的数据,另一方面我们还需要对这些数据进行分析处理,以获得更多有价值的信息。这时期我们就需要用到Hadoop了。 Hadoop是Apache软件基金会下一个开源分布式计算平台,以hdfs(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入...
基于内容推荐python_[转载] 基于内容推荐系统(含python代码)-简练
weixin_39709674的博客
01-30 703
from sklearn.feature_extraction.text import CountVectorizerfrom sklearn.feature_extraction.text import TfidfTransformerfrom sklearn.preprocessing import normalizefrom scipy.sparse import csr_matrixite...
基于hadoopp平台的推荐系统
01-22
这是一个基于hadoop平台的推荐系统,里面代码完整,能很好的帮助对推荐系统感兴趣的开发人员和学生,共同学习
探索个性化购物之旅:深度解析商品推荐系统
最新发布
gitblog_00186的博客
08-21 760
探索个性化购物之旅:深度解析商品推荐系统 product-recommendation-system:sunrise: 基于用户的协同过滤算法实现的商品推荐系统 https://github.com/MrQuJL/product-recommendation-system项目地址:https://gitcode.com/gh_mirrors/pr/product-recommendation-s...
基于Hadoop协同过滤的电子商务商品推荐(购买组合)系统
毕业作品网站
09-02 1887
最后更新10/2016,本数据集包含了:movies.dat ,ratings.dat和users.dat,其中ratings.dat就是用户商品评分文件,文件中依次表示的是:用户ID,商ID,用户对商品的评分,时间戳,如图5.1所示。对于电子商务传统推荐系统存在的很多问题,我论文基于Hadoop的电商推荐系统,系统有Hadoop的优点能具备良好的可扩展性伸缩性,可以方便快捷的对系统的计算能力和存储能力调大调小根据业务需求进行调整。基于Hadoop协同过滤的商品推荐。1.2现阶段关于推荐系统的现状 2。
基于Hadoop的电影推荐系统的设计与实现源码(毕业设计)java+Hadoop
06-14
基于Hadoop的电影推荐系统的设计与实现源码(毕业设计)java+Hadoop,使用Hadoop2.7,jdk1.8;分为前台,后台和推荐三个子系统,可直接运行。sql私信
基于hadoop商品推荐系统课程设计.zip
05-30
《基于Hadoop商品推荐系统课程设计》 在大数据时代,推荐系统已经成为电商平台不可或缺的一部分,它能够根据用户的历史行为和偏好,智能地为用户提供个性化的产品或服务推荐,从而提高用户满意度和平台的销售业绩...
基于Hadoop商品推荐系统
04-07
基于Hadoop商品推荐系统,以商品推荐为基础,采集分析和分析用户、商品行为数据,以推荐为最终目标。为用户提供智能的个性化推荐服务。本项目采用Hadoop上HDFS集群,通过MapReduce程序对数据进行处理和分析,最后...
基于hadoop商品推荐系统
06-02
基于hadoop商品推荐系统 软件架构 大数据架构: 基于物品的协同过滤算法主要有两步: 1、计算物品之间的相似度:可依据物品共现次数、余弦夹角、欧氏距离这三种方法计算得到物品之间的相似度。 2、根据物品的...
基于Hadoop商品推荐系统.zip
03-13
《基于Hadoop商品推荐系统详解》 在当今大数据时代,如何有效地处理海量数据并从中挖掘出有价值的信息,已经成为企业竞争力的关键。Hadoop作为开源的分布式计算框架,以其强大的数据处理能力,广泛应用于商品推荐...
基于hadoop的web云盘系统
04-07
这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是spring Struts2 hibernate集合框架,配有sql文件。直接导入后运行这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是spring Struts2 hibernate集合框架,配有sql文件。直接导入后运行这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是spring Struts2 hibernate集合框架,配有sql文件。直接导入后运行
基于Hadoop的海量数据分析系统设计
06-19
基于Hadoop的海量数据分析系统设计吗,完整版学位论文。
基于Hadoop商品推荐(老师版)
04-18
完整的基于MapReduce的商品推荐算法,包括对信息采集,得到用户购买向量和商品推荐矩阵并相乘,去重后将数据提交给数据库等。本代码在Yarn集群下可以完美执行 。
基于Hadoop的校园网站日志系统的 设计与实现
09-27
本文以上海交通大学为例,介绍了利用hadoop大数据平台,存储并分析校园网内数千网站日志的系统设计和实现.
python实现基于内容的电影推荐系统
qq_44996650的博客
05-24 497
因为本科论文需要,所以写个blog留个纪念。代码只有核心推荐系统部分代码,对于其中文本繁体转简体的部分需要自己实现,如需要请联系我。 import numpy as np import pandas as pd import matplotlib.pyplot as plt import jieba import nltk import re import numpy as np from langconv import * # df = pd.read_csv(r"C:\Users\heng\Desk
基于内容推荐系统_基于内容推荐系统
weixin_26704853的博客
09-03 1555
基于内容推荐系统 介绍 (Introduction) Over time, we rely more and more heavily on online platforms and applications such as Netflix, Amazon, Spotify etc. we are finding ourselves having to constantly choose from...
基于Hadoop系统的MapReduce数据流优化
u010335405的博客
07-02 152
[size=medium]1 Hadoop管道改进思想 在Hadoop系统的实现中,Map端的输出数据首先被溢写入本地磁盘,当本机任务完成后通知JobTracker,然后Reduce端在得到JobTracker的通知后会发出HTTP请求,利用复制的方式从相应的Map端拉回其输出。这样的方式只能等该Map任务完成后才能开始执行Reduce任务,并且Map任务和Reduce任务的执行是分离...
Hadoop电商商城:基于用户收藏的推荐系统实现与优化
在本文档中,我们探讨了如何利用Hadoop构建一个购物商城推荐系统,主要针对单商家、多买家的场景,数据库采用MySQL,编程语言为Java。推荐系统的核心技术包括数据迁移工具Sqoop1.9.33用于在MySQL和Hadoop之间传输...
写文章

热门文章

  • excluded by a filter_小说推荐官:她见青山by阿司匹林 双向暗恋文,先婚后爱,超甜!... 17049
  • 联想笔记本e480恢复出厂设置_ThinkPad笔记本一键恢复键是哪个|Thinkpad按什么键进一键还原... 16157
  • 电脑分屏没有声音_电脑用HDMI线分屏后,耳机或音箱没声音之完美解决! 7806
  • requestparam可以传递对象吗_Spring MVC中@RequestParam注解的使用指南 7613
  • 华为手机坏了数据怎么导出_手机坏了还有机会把里面的数据导出找回吗? 6228

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • arm64服务器性能,80核ARM服务器有多恐怖 性能比64核霄龙还强
  • 服务器性能测试方案怎么写,性能测试基础——简单接口性能方案设计之实例1...
  • 点歌机一直显示连接服务器中,点歌机老是显示正在连接云服务器
2021年147篇
2020年208篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家双阳玻璃钢花盆花器玻璃钢仿铜农民雕塑甘南玻璃钢雕塑专业厂家上海大型商场创意商业美陈风格安阳玻璃钢浮雕不锈钢雕塑塘厦玻璃钢雕塑厂许昌定做玻璃钢雕塑厂报价单玻璃钢花盆使用寿命室内玻璃钢花盆户外雕塑玻璃钢哪种好上海弧形玻璃钢花盆东坡玻璃钢卡通雕塑商场气球美陈火烈鸟喜洋洋玻璃钢雕塑铜仁地区玻璃钢雕塑昭通市玻璃钢雕塑定制滁州欧式玻璃钢雕塑四会玻璃钢抽象雕塑公司兴城玻璃钢伟人像雕塑玻璃钢跟树脂做的雕塑哪个好花朵校园玻璃钢景观雕塑厂家安徽人物像玻璃钢雕塑厂家广州玻璃钢抽象人物雕塑价格玻璃钢雕塑着色郑州特色玻璃钢雕塑哪家便宜安徽特色玻璃钢雕塑供应商商场美陈导视牌黑龙江人物玻璃钢雕塑价位苏州玻璃钢雕塑制作厂家南宫玻璃钢雕塑报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化