您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

在Python中的推荐系统

2024/10/21 1:41:40发布53次查看
推荐系统是python中的一个工具,它根据用户的偏好和过去的行为向用户推荐项目或内容。该技术利用算法来预测用户未来的偏好,从而为他们提供最相关的内容。
该系统的范围非常广泛,广泛应用于电子商务、流媒体服务和社交媒体等各个行业。产品、电影、音乐、书籍等都可以通过这些系统推荐。提供个性化推荐不仅有助于提高客户参与度和忠诚度,还可以促进销售。
推荐系统的类型基于内容的推荐系统这些操作的理念是,用户可以获得与他们以前接触过的项目相当的推荐。这种系统利用算法来查明与用户偏好非常相似的项目,目的是创建适合用户的建议列表。在此设置中,算法分析与商品相关的数据(例如其质量和用户评分),以确定提出哪些建议。
算法步骤 1 − 导入必要的库
第 2 步 - 加载数据集
步骤 3 - 预处理数据
步骤 4 - 计算相似性矩阵
第5步 − 对于每个用户 −
选择他们已经互动过的项目
对于在步骤5a中选择的每个项目 -
检索与所有其他项目的相似度分数
使用用户的评分作为权重,计算相似度分数的加权平均值
根据加权相似度分数按降序对项目进行排序
向用户推荐前n个项目
第六步 - 返回所有用户的推荐。
示例import pandas as pdfrom sklearn.feature_extraction.text import tfidfvectorizerfrom sklearn.metrics.pairwise import cosine_similarity# load datadata = pd.read_csv('movies.csv')# compute tf-idf vectors for each movietfidf = tfidfvectorizer(stop_words='english')tfidf_matrix = tfidf.fit_transform(data['description'])# compute cosine similarity between all moviescosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)# function to get top 10 similar movies based on input moviedef 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 1246 snatch 3094 road to perdition 2494 scarface 1244 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 pdfrom sklearn.metrics.pairwise import cosine_similarity# load dataratings_data = pd.read_csv('ratings.csv')# create user-item matrixuser_item_matrix = pd.pivot_table(ratings_data, values='rating', index='userid', columns='movieid')# calculate cosine similarity between usersuser_similarity = cosine_similarity(user_item_matrix)# get top n similar users for each userdef 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 usersdef 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 usageuser_id = 1recommendations = 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 1movieid1196 5.00000050 5.0000001210 5.000000260 5.0000001198 5.0000002571 5.000000527 5.0000001197 5.0000002762 5.000000858 4.961538
结论创建推荐系统任务可能会给程序员带来极大的复杂性,但它是一个有价值的工具,可以带来巨大的好处。利用 python 构建推荐系统提供了多种选项,可以简化创建和定制过程。然而,与任何编码工作一样,开发推荐系统时可能会出现潜在问题。意识到这些典型的并发症并采取措施解决它们对于确保推荐系统的成功至关重要。
最终,重要的是要记住,推荐系统可以是一种非常强大的资产,因此值得投入必要的时间和精力来确保其正确构建并以最佳方式运行。
以上就是在python中的推荐系统的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product