0

0

在Python中的推荐系统

WBOY

WBOY

发布时间:2023-09-19 22:45:04

|

1156人浏览过

|

来源于tutorialspoint

转载

在python中的推荐系统

推荐系统是Python中的一个工具,它根据用户的偏好和过去的行为向用户推荐项目或内容。该技术利用算法来预测用户未来的偏好,从而为他们提供最相关的内容。

该系统的范围非常广泛,广泛应用于电子商务、流媒体服务和社交媒体等各个行业。产品、电影、音乐、书籍等都可以通过这些系统推荐。提供个性化推荐不仅有助于提高客户参与度和忠诚度,还可以促进销售。

推荐系统的类型

基于内容的推荐系统

这些操作的理念是,用户可以获得与他们以前接触过的项目相当的推荐。这种系统利用算法来查明与用户偏好非常相似的项目,目的是创建适合用户的建议列表。在此设置中,算法分析与商品相关的数据(例如其质量和用户评分),以确定提出哪些建议。

算法

  • 步骤 1 − 导入必要的库

    立即学习Python免费学习笔记(深入)”;

  • 第 2 步 - 加载数据集

  • 步骤 3 - 预处理数据

  • 步骤 4 - 计算相似性矩阵

  • 第5步 − 对于每个用户 −

    • 选择他们已经互动过的项目

    • 对于在步骤5a中选择的每个项目 -

      • 检索与所有其他项目的相似度分数

      • 使用用户的评分作为权重,计算相似度分数的加权平均值

    • 根据加权相似度分数按降序对项目进行排序

    • 向用户推荐前N个项目

  • 第六步 - 返回所有用户的推荐。

    睿拓智能网站系统-网上商城
    睿拓智能网站系统-网上商城

    睿拓智能网站系统-网上商城1.0免费版软件大小:5M运行环境:asp+access本版本是永州睿拓信息专为电子商务入门级用户开发的网上电子商城系统,拥有产品发布,新闻发布,在线下单等全部功能,并且正式商用用户可在线提供多个模板更换,可实现一般网店交易所有功能,是中小企业和个人开展个人独立电子商务商城最佳的选择,以下为详细功能介绍:1.最新产品-提供最新产品发布管理修改,和最新产品订单查看2.推荐产

    下载

示例

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# Load data
data = pd.read_csv('movies.csv')

# Compute TF-IDF vectors for each movie
tfidf = TfidfVectorizer(stop_words='english')
tfidf_matrix = tfidf.fit_transform(data['description'])

# Compute cosine similarity between all movies
cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)

# Function to get top 10 similar movies based on input movie
def get_recommendations(title):
   idx = data[data['title'] == title].index[0]
   sim_scores = list(enumerate(cosine_sim[idx]))
   sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
   sim_scores = sim_scores[1:11]
   movie_indices = [i[0] for i in sim_scores]
   return data.iloc[movie_indices]

# Example usage: get top 10 movies similar to 'The Godfather'
get_recommendations('The Godfather')

我们从本地CSV文件加载电影数据到一个数据帧中。我们通过使用fit_transform()函数将电影描述转换为矩阵,并计算余弦相似性矩阵。

然后我们定义一个函数,它以电影标题作为参数,并在数据帧中检索电影标题的索引(如果存在)。

然后我们创建一个包含传递的电影标题与所有其他电影标题之间相似度分数的元组列表。每个元组由索引和相似度分数组成。然后我们通过索引数据框来显示电影标题的列表。

输出

                                title  \
783                 The Godfather   
1512          The Godfather: Part II   
1103                       Casino   
3509  Things to Do in Denver When   
1241246                       Snatch   
3094             Road to Perdition   
2494                     Scarface   
1241244                    Following   
2164                       Dancer   
2445        The Day of the Jackal   

协同过滤推荐系统

相反,这些依赖于其他用户的数据来生成推荐。这种系统会比较各种用户的偏好和行为,然后建议其他具有类似口味的用户可能喜欢的物品。与基于内容的系统相比,协同过滤通常更准确,因为它在生成推荐时考虑了许多用户的意见。

算法

  • 步骤 1 − 导入必要的库。

  • 第 2 步 - 加载可提供用户评分的“ ratings.csv”文件。

  • 第 3 步 - 创建“user_item_matrix”以将用户评分数据转换为矩阵

  • 第 4 步 - 使用余弦相似度计算用户评分的相似度。

  • 第 5 步 - 识别相似用户

  • 第 6 步 - 计算平均评分。

  • 步骤 7 - 选择目标用户 ID。

  • 第 8 步 - 打印电影 ID 和评级。

示例

import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# Load data
ratings_data = pd.read_csv('ratings.csv')

# Create user-item matrix
user_item_matrix = pd.pivot_table(ratings_data, values='rating', index='userId', columns='movieId')

# Calculate cosine similarity between users
user_similarity = cosine_similarity(user_item_matrix)

# Get top n similar users for each user
def get_top_similar_users(similarity_matrix, user_index, n=10):
    similar_users = similarity_matrix[user_index].argsort()[::-1]
    return similar_users[1:n+1]

# Get recommended items for a user based on similar users
def get_recommendations(user_id, user_similarity, user_item_matrix, n=10):
   similar_users = get_top_similar_users(user_similarity, user_id, n)
   recommendations = user_item_matrix.iloc[similar_users].mean(axis=0).sort_values(ascending=False).head(n)
   return recommendations

# Example usage
user_id = 1
recommendations = get_recommendations(user_id, user_similarity, user_item_matrix)
print("Top 10 recommended movies for user", user_id)
print(recommendations)

输出

Top 10 recommended movies for user 1
movieId
1196        5.000000
50            5.000000
1210        5.000000
260          5.000000
1198        5.000000
2571        5.000000
527          5.000000
1197        5.000000
2762        5.000000
858          4.961538

结论

创建推荐系统任务可能会给程序员带来极大的复杂性,但它是一个有价值的工具,可以带来巨大的好处。利用 Python 构建推荐系统提供了多种选项,可以简化创建和定制过程。然而,与任何编码工作一样,开发推荐系统时可能会出现潜在问题。意识到这些典型的并发症并采取措施解决它们对于确保推荐系统的成功至关重要。

最终,重要的是要记住,推荐系统可以是一种非常强大的资产,因此值得投入必要的时间和精力来确保其正确构建并以最佳方式运行。

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

757

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

761

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1264

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

548

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

708

2023.08.11

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 2.1万人学习

Django 教程
Django 教程

共28课时 | 3.1万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号