赞
踩
推荐系统,通常称为推荐引擎或简称为“推荐”,是一种算法,旨在根据用户过去的行为、偏好和互动来预测和推荐用户可能感兴趣的项目。它们已成为在线购物体验不可或缺的一部分,影响着我们的购买决策并推动了企业的销售。
在本文中,我们将深入探讨推荐系统的迷人世界,并探讨如何使用 Python 构建一个推荐系统。我们将揭示这些系统的内部工作原理,从数据收集和预处理到算法选择和实现。
在此旅程结束时,您将拥有创建有效推荐系统的知识和工具,以满足您的电子商务平台的独特需求,最终推动增长和客户满意度。
我们将从 Kaggke 获取一个数据集来探索该主题,您可以在此处找到该数据集:Book Recommendation Dataset | Kaggle
- import pandas as pd
- ratings = pd.read_csv(r'Data/ratings.csv')
- #Books
- min_book_ratings = 5
- filter_books = ratings['ISBN'].value_counts() > min_book_ratings
- filter_books = filter_books[filter_books].index.tolist()
-
- #Users
- min_user_ratings = 5
- filter_users = ratings['User-ID'].value_counts() > min_user_ratings
- filter_users = filter_users[filter_users].index.tolist()
-
- ratings_filtered = ratings[(ratings['ISBN'].isin(filter_books)) & (ratings['User-ID'].isin(filter_users))]
-
- ratings_filtered = ratings[ratings['Book-Rating'] > 0]
我们将使用“Surprise”,一个 Python scikit,用于构建和分析处理显式评级数据的推荐系统。
我们需要定义 Reader 并根据 “Surprise” 注解来格式化数据集:
- from surprise import Reader, Dataset
-
- reader = Reader(rating_scale=(0, 10))
- data = Dataset.load_from_df(ratings_filtered[['User-ID', 'ISBN', 'Book-Rating']], reader)
经典:将数据拆分为训练集和测试集,避免过度拟合
- from surprise.model_selection import train_test_split
- trainset, testset = train_test_split(data, test_size=0.25)
对于模型选择,您可以从 Surprise 中包含的不同模型中进行选择,我将使用 SVD(奇异值分解)并使用网格搜索 CV 来查找最佳参数。
有关 SVD
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。