python机器学习之基于内容的推荐算法中推荐麻辣香锅菜品实战(附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

推荐算法相信大家都不陌生,日常生活的各种APP都会根据你的喜好和特征来给你推荐,接下来详细介绍一下其中的基于内容的推荐算法

基于内容的模式起源于信息检索领域,这种模式是以物品的内容为基础,推荐的原理是分析系统的历史数据,提取对象的内容特种和用户的兴趣偏好。

这里关键的环节是计算被推荐对象的内容特征和用户模型的兴趣特征二者之间的相似性。基于内容的推荐算法不需要大量的用户数据,广泛使用于大量文本信息的场合。

问题描述:你经常到一家店去吃麻辣香锅,老板开发了一个菜品推荐程序,老板先整理出店里各种菜品的口味记录到数据文件中,在你点菜时,程序分析出你的历史评价得知你喜欢的菜品,并据此推荐你可能喜欢的菜品

数据集请点赞关注收藏后评论区私信博主要

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

数据如下

结果如下

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

源码如下

import pandas as pd
from numpy import *
from sklearn.feature_extraction.text import  TfidfVectorizer
food=pd.read_csv(r'hot-spicy pot.csv')
print(food.head())
print(food['taste'].head())
from sklearn.metrics.pairwise import  pairwise_distances
tfidf=TfidfVectorizer(stop_words='english')
tfidf_matrix=tfidf.fit_transform(food['taste'])
print(tfidf_matrix.shape)
cosine_sim=pairwise_distances(tfidf_matrix,metric='cosine')
def content_based_recommendation(name,cosine_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]
indices=pd.Series(food.index,index=food['name']).drop_duplicates()
result=content_based_recommendation("celery")
print("推荐菜品结果如下")
print(result)

数据集请点赞关注收藏后评论区留言私信博主要

  • 28
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 35
    评论
以下是三种常见的机器学习算法的Python码示例: 决策树算法的Python码示例: ``` # 导入库 from sklearn import tree # 假设你有训练数据集的预测器X和目标变量Y,以及测试数据集的预测器x_test # 创建决策树对象 model = tree.DecisionTreeClassifier(criterion='gini') # 对于分类问题,默认使用基尼系数,也可以选择信息增益 # 训练模型并检查得分 model.fit(X, Y) model.score(X, Y) # 预测输出 predicted = model.predict(x_test) ``` 梯度提升算法的Python码示例: ``` # 导入库 from sklearn.ensemble import GradientBoostingClassifier # 假设你有训练数据集的预测器X和目标变量Y,以及测试数据集的预测器x_test # 创建梯度提升分类器对象 model = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0) # 训练模型并检查得分 model.fit(X, Y) # 预测输出 predicted = model.predict(x_test) ``` 朴素贝叶斯算法的Python码示例: ``` # 导入库 from sklearn.naive_bayes import GaussianNB # 假设你有训练数据集的预测器X和目标变量Y,以及测试数据集的预测器x_test # 创建高斯朴素贝叶斯分类器对象 model = GaussianNB() # 训练模型并检查得分 model.fit(X, Y) # 预测输出 predicted = model.predict(x_test) ``` 这些是三种常见的机器学习算法的Python码示例,你可以根据你的需求和数据选择合适的算法进行模型训练和预测。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【机器学习算法】10种常见机器学习算法+Python代码](https://blog.csdn.net/nnn0245/article/details/128222067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值