python麻辣香锅菜品推荐

devtools/2025/1/22 8:06:49/

1.推荐算法概述

        推荐算法出现得很早,最早的推荐系统是卡耐基·梅隆大学推出的Web Watcher浏览器导航系统,可以根据当的搜索目标和用户信息,突出显示对用户有用的超链接。斯坦福大学则推出了个性化推荐系统LIRA.AT&T实验室于1997年提出基于协作过滤的个性化推荐系统,通过了解用户的喜好和需求,能更精确地呈现相关内容。
        在Facebook自2006年开始引领互联网社交新潮流之后,推荐系统真正与互联网产品相结合。加之亚马逊、淘宝等主营电商的互联网产品改变了网民的社交生活方式,推荐算法在社交、电商等产品中被运用得风生水起。
        根据亚马逊网站的数据统计,在已购买的网站用户中,原本就有明确购买意向的仅占6%。如果商家能够把满足客户模糊需求的商品主动推荐给客户,就有可能将客户的潜在需求转化为实际购买需求。因此,根据用户的兴趣、爱好、购买行为等特征进行商品推荐的推荐系统应运而生,并被广泛使用。
        目前,大型电子商务网站(如Amazon、淘宝)、音乐播放软件(如网易云音乐、虾米音乐)以及大型视频网站等都有内置的推荐系统。在购物网站上,当用户浏览或购买了某些物品后,经常会弹出新的物品供选择。如图7.2所示,一位客户刚在Amazon上浏览了乐高积木,马上看到系统推荐给他相关产品。顾客在淘宝网站收藏了一张实木书桌,平台会推荐一系列相关的设备。为什么电子商务平台那么了解你?你总是很容易看到感兴趣的新闻,听到符合自己风格的音乐呢?
        这背后就是推荐系统平台在工作。推荐系统首先收集、处理客户的数据,通过分析客户的特征,为客户推荐最合适的商品。
        推荐系统的核心工作是使用特定的信息分析技术,将项目推荐给可能感兴趣的用户。了解用户的兴趣爱好是推荐系统最重要的一个环节。如何把用户的行为进行量化,得到每个用户的特征偏好,也是一个难题。各商业模式下,用户偏好都是一个比较复杂的指我不同的企业有自己统计用户偏好的方法,计算也各不相同。

2.问题描述

小明经常到一家店去吃麻辣香锅,如图7.6所示。最近,这家店的老板开发了一个菜品推荐程序。老板先整理出店里各种菜的口味特点,如脆的、甜的、辣的等记
推荐他可能喜欢的其他菜品。    录到数据文件中,在小明点菜时,程序分析小明的历史评价得知小明喜欢的菜品,许据此推荐他可能喜欢的其他菜谱

3.问题分析

推荐算法使用的是各个菜品的口味特征(taste),为文本类型。可以考虑构建 taste特征的tidf矩阵,对文本信息向量化处理。然后使用距离度量方法,计算相似度,进行推荐。 

 4.python代码实现

python">import pandas as pd 
from numpy import *
from sklearn.feature_extraction.text import TfidfVectorizer
#1.读取数据
print('Stepl: read data...')
food=pd.read_csv('hot-spicy pot.csv') 
food.head(10)
#2.将菜品的描述构造成TF-IDF向量 print('Step2:make TD-IDF...')
tfidf=TfidfVectorizer(stop_words='english') 
tfidf_matrix=tfidf.fit_transform(food['taste']) 
tfidf_matrix.shape
#3.计算两个菜品的余弦相似度
print('Step3:compute similarity...')
from sklearn.metrics.pairwise import pairwise_distances
cosine_sim=pairwise_distances(tfidf_matrix,metric="cosine")
#推荐函数,输出与其最相似的10个菜品
def content_based_recommendation (name,consine_sim=cosine_sim):idx=indices[name]sim_scores=list(enumerate(cosine_sim[idx]))sim_scores=sorted(sim_scores,key=lambda x:x[1]) sim_scores=sim_scores[1:11]food_indices=[i[0] for i in sim_scores]return food['name'].iloc[food_indices]
#4.根据菜名及特点进行推荐
print('step4:recommend by name...')
#5.建立索引,方便使用菜名进行数据访问
indices=pd.Series(food.index, index=food['name']).drop_duplicates()
result=content_based_recommendation("celery")
result

运行结果

可以看出,对于小明评分较高的“芹菜”,系统能够推荐出相似度较高的菜品。


http://www.ppmy.cn/devtools/152537.html

相关文章

Vue2.0的安装

1.首先查看是否已经安装了node.js 选择以管理员方式打开命令提示符(权限较高),或者通过cmd的方式打开 打开后输入node -v 查看自己电脑是否安装node,以及版本号 node -v 如果没有的话,请查看Node.js的安装 2.Vue和脚…

【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

JVM部分[2025/1/13 ~ 2025/1/19] 1. JVM 由哪些部分组成?2. Java 的类加载过程是怎样的?3. 请你介绍下 JVM 内存模型,分为哪些区域?各区域的作用是什么?4. JVM 垃圾回收调优的主要目标是什么?5. 如何对 Jav…

软件工程的本质特征

1、软件工程关注于大型程序的构造 2、软件工程的中心课题是控制复杂性 软件所解决的问题十分复杂,通常不得不把问题分解,使得分解出的每个部分是可以理解的,而各个部分之间保持简单的通信关系。这并不能降低问题的整体复杂性,但…

Java实现备忘录模式

一、简介 1、定义 备忘录模式 (Memento Pattern) 又称为快照模式,是一种行为型设计模式,它提供了一种保存和恢复对象状态的机制。它允许在不破坏封装性的前提下,捕获一个对象(发起人)的内部状态,并在该对象…

Node.js 能做什么

一、服务器端开发 1. 构建 Web 服务器 使用内置的 http 模块或流行的框架(如 Express、Koa 等)创建 Web 服务器,处理 HTTP 请求和响应。可以处理各种类型的请求,如 GET、POST、PUT、DELETE 等,并返回相应的 HTML、JS…

第15章:Python TDD应对货币类开发变化(二)

写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…

HCIP笔记4--OSPF域内路由计算

1. 域内LSA 1.1 一类LSA 一类LSA: 路由器直连状态,Router LSA。 串口需要两端配置好IP,才会产生一类LSA; 以太网口只需要一端配置了IP就会直接产生一类LSA。 LSA通用头部 Type: Router 直连路由LS id: 12.1.1.1 路由器router idAdv rtr: 12.1.1.1 通告的路由器&…

C# lock使用的逻辑和情景

情景:扣库存,会出现超扣的情况,因为同一个单子会有不同的工作人员使用,要保证数据的一致性。那么就用锁。 优化锁对象管理 使用 Lazy 初始化锁对象: 使用 ConcurrentDictionary 的 GetOrAdd 方法结合 Lazy 确保锁对象只…