
推荐系统
文章平均质量分 87
写作本专栏的初衷是为了帮助那些对推荐系统感兴趣的读者,从一个系统的角度深入了解这一领域。推荐系统不仅仅是技术,更是与我们的日常生活息息相关的智能伙伴。在这个充满机遇和挑战的领域,让我们一同踏上探索推荐系统的旅程,探讨智能化未来的可能性。
码农三叔
学编程20年,乐于奉献,一往无前
展开
-
(13-5)服装推荐系统:系统主文件
在recommend(customer_id)函数中,调用推荐模型对象的predict()方法进行推荐,然后将推荐的物品与对应的图片路径进行关联。定义了一个主函数main(),用于构建推荐系统的用户界面。使用库Streamlit中的函数和方法构建用户界面,包括显示标题和图像,创建下拉菜单,并根据用户选择的客户调用recommend()函数进行推荐并展示推荐结果。在下拉菜单中选择一个客户,点击“Recommend”按钮后,调用recommend()函数进行推荐,并将推荐的物品和对应的图片显示在界面上。原创 2024-04-30 14:32:45 · 887 阅读 · 0 评论 -
(13-4-05)服装推荐系统:实现推荐模型:损失处理+评估处理
接受一个关键字参数字典,其中关键字是曲线的标签,值是包含曲线数据的DataFrame。最后,将权重因子乘以损失,然后在指定的轴上求和,得到最终的损失值。report_classification(y_true, y_pred, threshold): 输出基于指定阈值的分类报告,根据阈值将逻辑回归的输出转换为二分类标签,并输出报告。transform_logist_label(y, threshold): 将逻辑回归的输出转换为二分类标签,根据指定的阈值将大于等于阈值的值设为1,小于阈值的值设为0。原创 2024-04-26 14:57:21 · 931 阅读 · 0 评论 -
(13-4-04)服装推荐系统:实现推荐模型(4)数据处理和特征工程
该方法首先将计算的分位数合并到原始数据中,然后将每个特征根据分位数映射到分箱后的二进制特征。的功能是根据其他特征进行特征分箱处理,根据指定的分位数计算特定特征的分位数,并将分箱后的二进制特征添加到原始数据中。fit(X, Y=None): 根据给定的特征和目标变量,计算每个特征的分位数,并将结果存储在self.feature_quartile_output字典中。map_quartile_to_bin(bin_col, X): 将指定特征根据计算的分位数映射到分箱后的二进制特征。在方法transform。原创 2024-04-21 18:21:08 · 946 阅读 · 0 评论 -
(13-4-03)服装推荐系统:实现推荐模型(3)训练排名模型
在日志中记录了读取配置文件的路径。根据配置文件中的路径设置,设置保存模型和管道的路径,并创建ranking_model对象model_obj,传入保存的模型、管道和配置文件路径。提取最后4周的数据作为训练数据集,计算切分日期,并根据切分日期将X中的数据进行筛选,保留符合条件的数据。根据配置文件中的路径设置,读取训练数据集的路径,并使用函数read_from_parquet。设置测试数据集的路径,并使用函数read_from_parquet。对测试数据集X_test进行预测,并将结果保存到rank变量中。原创 2024-04-21 17:13:04 · 379 阅读 · 0 评论 -
(13-4-02)服装推荐系统:实现推荐模型(2)基于ResNet的图像推荐模型
然后,它加载模型参数并初始化训练所需的变量。(2)编写方法generate_data_for_nth_ensemble_model(self, train_tran, ensemble_model_number, pos_neg_ratio),功能是生成用于第n个集成模型训练的数据。编写方法load_theshold_model(self, nmodel)加载特定集成模型的阈值值,它根据模型索引nmodel从配置设置中获取阈值值,并将其添加到ensemble_model_thresholds字典中。原创 2024-04-18 19:41:57 · 1040 阅读 · 0 评论 -
(13-4-01)服装推荐系统:实现推荐模型(1)
在项目中的 "src\models" 目录中的源代码主要用于实现不同的推荐模型和算法,用于实现推荐系统的各个组件。原创 2024-04-18 15:55:58 · 872 阅读 · 0 评论 -
(13-3-02)服装推荐系统:数据集处理——数据清洗
很可能用户不会购买相同的物品多次,因为不同颜色的物品会有不同的article_id。将"df_group" DataFrame中的"customer_id"和"article_id"列与"df_transaction" DataFrame进行内连接(inner join)操作,根据这两列进行数据的合并。从"ARTICLES_MASTER_TABLE"中读取"article_id"和"product_type_name"两列的数据,存储在DataFrame "df_articles"中。原创 2024-04-17 19:13:48 · 1188 阅读 · 0 评论 -
(13-3-01)服装推荐系统:数据集处理——初步分析
在"notebooks" 目录中保存了和数据处理相关的Notebook文件:data_cleaning.ipynb、eda_feature_eng.ipynb和initial_analysis.ipynb。原创 2024-04-17 15:13:35 · 1245 阅读 · 0 评论 -
(13-2)服装推荐系统:工具类
在一个项目中,"utils"目录通常用于存放通用的工具函数或类。这些工具函数或类可以在整个项目的不同部分被多次使用,以提供一些常见的功能和操作。通常,"utils"目录中的文件包括与数据处理、文件读写、日志记录、异常处理、图像处理、配置读取等相关的工具函数或类。这样的目录结构可以帮助项目保持整洁和组织,使开发人员能够更轻松地复用和管理这些通用工具。原创 2024-04-16 14:48:52 · 936 阅读 · 0 评论 -
(13-1)服装推荐系统:背景介绍+系统分析+准备数据集
H&M集团是一个拥有53个在线市场和约4,850家门店的品牌和企业家族,旗下的在线商店为购物者提供了广泛的产品选择。但是由于选择太多,顾客可能无法快速找到他们感兴趣的或正在寻找的商品,最终可能不会购买。为了提升购物体验,产品推荐至关重要。更重要的是,帮助顾客做出正确选择也对可持续性有积极的影响,因为它减少了退货,从而减少了运输过程中的碳排放。本项目将使用H&M数据集,为顾客开发一个商品推荐系统,帮助用户实现完美的购物体验。原创 2024-04-12 16:54:39 · 1874 阅读 · 1 评论 -
(12-4-02)动漫推荐系统:基于内容的推荐系统
该项目是一个基于用户个性化兴趣的动漫推荐系统,通过综合考虑协同过滤和基于内容的推荐算法,为用户提供了更为个性化的动漫推荐服务。以下是项目的主要亮点和总结:多算法融合:项目采用协同过滤和基于内容的推荐算法,综合考虑用户的历史行为和动漫的内容特征,提高了推荐的准确性和用户满意度。数据分析与可视化:通过对动漫数据库的分析,系统生成了丰富的图表和统计信息,包括动漫类型分布、用户评分分布等,帮助用户更好地了解动漫领域。原创 2024-04-07 15:20:02 · 1205 阅读 · 0 评论 -
(12-4-01)动漫推荐系统:协同过滤推荐系统
经过前面对数据集的预处理和数据分析,已经为推荐系统的开发工作打下基础。在本届 的内容中,将详细讲解分别实现协同过滤推荐系统和基于内容过滤系统的过程。原创 2024-04-07 13:12:37 · 726 阅读 · 0 评论 -
(12-3-06)动漫推荐系统:数据分析(6)
然后,应用该函数清理了数据集中的动漫名称,并通过 pivot_table 函数创建了一个以动漫名称为行、用户ID为列、用户评分为值的数据透视表。)下面开始探索动漫数据集中的类型,首先将动漫数据集中的类型字段按逗号拆分,并通过explode函数将其展开为单独的行。(2)下面的代码首先计算了每个用户的评分数量,并筛选出至少有50个评分的用户。然后,通过 pivot_table 函数创建了一个以动漫名称为行、用户ID为列、用户评分为值的数据透视表。执行后会输出唯一类型的总数以及每个类型的出现次数,如图12-原创 2024-04-07 11:25:03 · 566 阅读 · 0 评论 -
(12-3-05)动漫推荐系统:数据分析(5)
左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。左侧的子图展示了动漫的平均评分分布,右侧的子图展示了用户对这些动漫的评分分布。原创 2024-04-07 10:31:18 · 807 阅读 · 0 评论 -
(12-3-04)动漫推荐系统:数据分析(4)
plt.show() 用于显示生成的可视化图,展示动漫评分的整体分布情况,如图12-总体动漫评价是对动漫作品整体质量或受欢迎程度的综合评价,在数据分析或推荐系统中,这表示对所有动漫的平均评分、中位数评分或其他综合指标的分析。然后,在一个包含两个子图的图形中,使用 Seaborn 的 histplot 函数绘制了两个直方图,分别展示了动漫的平均评分分布和用户对动漫的评分分布。首先,通过对动漫数据集进行降序排序,得到了 top_anime_temp2 数据集,该数据集按照动漫的平均评分进行排列。原创 2024-04-06 20:01:47 · 529 阅读 · 0 评论 -
(12-3-03)动漫推荐系统:数据分析(3)
plt.show() 用于显示生成的可视化图,展示动漫评分的整体分布情况,如图12-总体动漫评价是对动漫作品整体质量或受欢迎程度的综合评价,在数据分析或推荐系统中,这表示对所有动漫的平均评分、中位数评分或其他综合指标的分析。然后,在一个包含两个子图的图形中,使用 Seaborn 的 histplot 函数绘制了两个直方图,分别展示了动漫的平均评分分布和用户对动漫的评分分布。首先,通过对动漫数据集进行降序排序,得到了 top_anime_temp2 数据集,该数据集按照动漫的平均评分进行排列。原创 2024-04-06 09:17:20 · 692 阅读 · 0 评论 -
(12-3-02)动漫推荐系统:数据分析(2)
pd.merge(anime, rating, on="anime_id", suffixes=[None, "_user"]):使用 Pandas 的 merge 方法,通过 "anime_id" 列将两个数据集进行连接,suffixes 参数指定了在列名相同时添加的后缀。(1)下面的代码执行了两个数据集(anime 和 rating)的合并操作,通过它们的共同列 "anime_id" 进行连接,并更改了一些列名,最终生成了一个合并后的数据集 fulldata。原创 2024-04-06 09:14:03 · 1094 阅读 · 0 评论 -
(12-3-01)动漫推荐系统:数据分析(1)
在数据分析或项目报告中,数据集摘要通常是对整个数据集的简要总结,包括数据集的形状、列的含义、数据类型、缺失值情况等基本信息。这个部分有助于读者快速了解数据集的概况,为后续的分析和解释提供背景。(1)生成动漫数据集的统计摘要,并通过样式设置使输出更具可读性。原创 2024-04-05 19:54:39 · 1431 阅读 · 0 评论 -
(12-2)动漫推荐系统:准备数据集
本项目使用的是开源数据集,这个数据集包含了73,516位用户对12,294部动漫的偏好数据。每位用户可以将动漫添加到他们的已完成列表并为其评分,而这个数据集则是这些评分的汇总。。原创 2024-04-05 19:48:46 · 816 阅读 · 0 评论 -
(12-1)动漫推荐系统:背景介绍+系统分析
在本章的内容中,将详细讲解实现一个动漫推荐系统的过程。本项目结合了数据探索、可视化、统计分析、推荐系统技术,为动漫爱好者提供了全面的动漫推荐服务。用户可以通过不同的方式(基于协同过滤或基于内容)获取个性化的动漫推荐,从而更好地发现和享受自己喜欢的动漫。原创 2024-04-01 11:04:49 · 1541 阅读 · 0 评论 -
(11-4-02)电影推荐系统:实现具体推荐(2)
(2)创建了一个包含电影ID('movieId')和电影原始标题('original_title')的新数据集 movies_df,将电影信息数据中的'id'列重命名为'movieId'。(6)定义一个TensorFlow推荐系统模型(TFRS),通过使用用户和电影嵌入、多层评分模型以及排名和检索任务,结合用户的电影评分和电影的观看历史,进行电影推荐。最后,将推荐的电影与历史数据中的元数据进行合并,去除重复项,并重新设置索引,得到了一个包含推荐电影信息的DataFrame。原创 2024-03-31 20:47:07 · 929 阅读 · 0 评论 -
(11-4-01)电影推荐系统:实现具体推荐(1)
在实际应用中,可以很多方法用来构建推荐系统。在本项目中,我们将使用两种方法实现电影推荐:混合推荐和基于深度学习的推荐,根据不同的特征向用户推荐电影。原创 2024-03-31 19:08:04 · 798 阅读 · 0 评论 -
(11-3-02)电影推荐系统:数据分析(EDA)(2)
data=df 指定了数据框,x='release_date' 设置了 x 轴的数据为电影的发布日期,kind='hist' 指定了图形类型为直方图,kde=True 添加了核密度估计,color='#fdc100' 设置了整体颜色,facecolor='#06837f' 设置了直方图的颜色,edgecolor='#64b6ac' 设置了直方图的边缘颜色,line_kws={'lw': 3} 设置了核密度估计曲线的线宽,aspect=3 设置了图形的纵横比。原创 2024-03-31 16:40:20 · 762 阅读 · 0 评论 -
(11-3-01)电影推荐系统:数据分析(EDA)(1)
探索性数据分析(EDA)是数据分析过程中的一个阶段,其目的是通过可视化和统计手段来探索数据集,以更好地了解数据的结构、模式、异常和关系。EDA的主要目标是揭示数据的基本特征,为后续分析提供基础,并帮助研究人员提出假设。EDA通常包括以下几个方面的工作:数据摘要:查看数据的基本统计信息,如均值、中位数、标准差等,以了解数据的中心趋势和分散程度。单变量分析:对单个变量进行分析,包括直方图、箱线图等,以了解单个变量的分布和特征。双变量分析:分析两个变量之间的关系,可以通过散点图、相关性矩阵等方式来实现。原创 2024-03-31 14:40:30 · 874 阅读 · 0 评论 -
(11-2)电影推荐系统(Tensorflow+TensorFlow Recommenders+Scikit-Learn++Pandas):系统模块
通过以上模块的设计和实现,该电影推荐系统实现了一套完整的推荐解决方案,结合了传统的推荐算法和深度学习技术,为用户提供了更为准确和个性化的电影推荐服务。使用可视化工具,如Matplotlib和Seaborn,展示数据的统计信息和趋势。将基于统计的和深度学习的推荐系统输出进行综合,构建更全面的推荐系统。利用传统的协同过滤和内容过滤算法,为用户提供个性化的电影推荐。考虑用户的历史行为和电影特征,预测用户可能喜欢的电影。综合考虑用户的不同偏好和行为,提供更准确的推荐结果。原创 2024-03-31 14:34:25 · 298 阅读 · 0 评论 -
(11-1)电影推荐系统(Tensorflow+TensorFlow Recommenders+Scikit-Learn++Pandas):系统介绍
推荐系统是指通过网站向用户提供商品、电影、新闻和音乐等信息的建议,帮助用户尽快找到自己感兴趣的信息。在本章的内容中,将介绍使用深度学习框架Tensorflow开发一个电影推荐系统的过程,详细介绍使用Tensorflow开发大型项目的知识。原创 2024-03-31 14:33:43 · 626 阅读 · 0 评论 -
(10-8)强化推荐学习:A3C算法
A3C算法的核心思想是通过并行化多个工作线程,使每个线程在不同的环境状态下进行交互,从而增加样本的多样性和数据的利用效率。每个工作线程根据当前状态选择动作,并将状态、动作和奖励发送到全局Critic网络进行更新。这样,每个线程都可以独立地学习,并根据自己的经验来改善策略。在A3C算法中,每个工作线程都可以异步地更新Critic网络的参数,这种异步性有助于避免梯度下降过程中的竞争条件,并提高了算法的效率和收敛性。原创 2024-03-30 14:07:49 · 736 阅读 · 1 评论 -
(10-7)强化推荐学习:TRPO算法
TRPO算法的核心思想是通过最大化策略的预期累积奖励,来更新策略函数的参数。为了确保更新过程的稳定性,TRPO引入了一个重要的概念:信任区域(trust region)。信任区域定义了策略更新的边界,保证更新幅度不会过大,以防止策略函数的性能下降。TRPO的主要步骤如下:收集样本数据:使用当前策略函数与环境进行交互,收集一定数量的样本轨迹。计算优势函数:计算每个时间步的优势函数,衡量策略相对于平均奖励的改进程度。计算策略梯度:使用采样数据和优势函数来计算策略梯度,即策略函数关于参数的梯度。原创 2024-03-30 14:06:08 · 844 阅读 · 0 评论 -
(10-6)强化推荐学习:PPO策略优化算法
PPO的核心思想是通过近端策略优化来更新策略,同时保持更新幅度的控制,以避免策略更新过大导致不稳定的问题。具体来说,PPO引入了两个重要的概念:概率比率和剪切范围,具体说明如下:概率比率(Ratio):概率比率表示新策略相对于旧策略的改进程度。在PPO中,概率比率定义为新策略下采取某个动作的概率与旧策略下采取同样动作的概率之比。剪切范围(Clipping):剪切范围用于限制策略更新的幅度。在PPO中,通过引入一个剪切函数,将概率比率限制在一个预定义的范围内,从而保证策略更新的稳定性。原创 2024-03-27 20:58:34 · 1179 阅读 · 0 评论 -
(10-5)强化推荐学习:双重深度 Q 网络算法
DQN 在训练过程中存在一些问题,其中一个主要问题是对目标 Q 值的估计过于乐观。DQN使用同一个神经网络进行当前状态的 Q 值估计和目标 Q 值的估计,这会导致估计的 Q 值偏高,因为在更新 Q 值时使用了同一个网络的输出。DDQN通过引入目标网络(Target Network)来解决这个问题。目标网络是一个与主网络(Policy Network)相互独立的网络,用于计算目标 Q 值。在训练过程中,目标网络的参数是固定的,而主网络的参数进行更新。这样可以减少估计目标 Q 值时的过高估计问题。原创 2024-03-24 16:39:03 · 2119 阅读 · 0 评论 -
(10-4)强化推荐学习:深度确定性策略梯度算法
深度确定性策略梯度算法(Deep Deterministic Policy Gradient,简称DDPG)是一种用于解决连续动作空间问题的强化学习算法。它是对确定性策略梯度算法(Deterministic Policy Gradient,简称DPG)的扩展,结合了深度神经网络和经验回放缓冲区的思想。原创 2024-03-22 15:03:22 · 1016 阅读 · 0 评论 -
(10-3)强化推荐学习:深度Q网络算法
深度Q网络算法(Deep Q-Network, DQN)是一种融合了深度学习和强化学习的方法,用于解决强化学习中的值函数近似问题。DQN是由DeepMind在2013年提出的,通过使用深度神经网络作为值函数的函数逼近器,能够处理高维、复杂的状态空间。深度Q网络算法在解决许多强化学习问题中取得了显著的成功,包括Atari游戏和机器人控制等领域。它通过结合深度学习和强化学习的优势,使得智能体能够处理高维、复杂的状态空间,并学习到高质量的决策策略。深度Q网络算法的主要思想和步骤如下:1。原创 2024-03-22 09:52:29 · 1001 阅读 · 0 评论 -
(10-2)强化推荐学习:强化学习算法
在开发应用中,常用的强化学习算法有值迭代、Q-learning、蒙特卡洛方法、时序差分学习等。在本节的内容中,将详细讲解这些强化学习算法的知识。原创 2024-03-20 11:13:33 · 1159 阅读 · 0 评论 -
(10-1)强化推荐学习:强化学习的基本概念
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。在本章的内容中,将详细讲解基于强化学习的推荐系统的知识和用法。原创 2024-03-20 11:11:22 · 871 阅读 · 0 评论 -
(9-3)序列建模和注意力机制:使用Seq2Seq模型和注意力机制实现翻译系统
(7-3 )PyTorch机器翻译系统1-优快云博客(7-3 )PyTorch机器翻译系统(2)-优快云博客(7-3 )PyTorch机器翻译系统(3): 训练模型-优快云博客(7-3 )PyTorch机器翻译系统(4):模型评估和注意力可视化_注意力的可视化 代码 pytorch-优快云博客原创 2024-03-17 13:44:21 · 369 阅读 · 0 评论 -
(9-2)序列建模和注意力机制:注意力机制
在认知科学应用中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述这种机制通常被称为注意力机制。人类视网膜不同的部位具有不同程度的信息处理能力,即敏锐度(Acuity),只有视网膜中央凹部位具有最强的敏锐度。为了合理利用有限的视觉信息处理资源,人类需要选择视觉区域中的特定部分,然后集中关注它。例如,人们在阅读时,通常只有少量要被读取的词会被关注和处理。综上,注意力机制主要有两个方面:决定需要关注输入的哪部分;分配有限的信息处理资源给重要的部分。原创 2024-03-17 13:41:28 · 1178 阅读 · 0 评论 -
(9-1)序列建模和注意力机制:序列建模
推荐系统是利用用户的历史行为数据和其他相关信息,为用户提供个性化的推荐内容的系统。在机器学习领域,序列建模和注意力机制在推荐系统中也有着重要的应用。序列建模是对序列数据中的每个元素进行建模和预测,而注意力机制是一种增强序列建模的技术,允许模型关注与当前预测最相关的部分。这两个概念在自然语言处理和机器学习中扮演着重要的角色,为处理序列数据和提高模型性能提供了有力的工具。在本章的内容中,将详细讲解基于序列建模和注意力机制实现推荐系统的知识和用法。原创 2024-03-14 20:24:18 · 1193 阅读 · 0 评论 -
(8-6)基于神经网络的推荐模型:基于强化学习的推荐模型
深度Q网络算法(Deep Q-Network, DQN)是一种融合了深度学习和强化学习的方法,用于解决强化学习中的值函数近似问题。DQN是由DeepMind在2013年提出的,通过使用深度神经网络作为值函数的函数逼近器,能够处理高维、复杂的状态空间。深度Q网络算法在解决许多强化学习问题中取得了显著的成功,包括Atari游戏和机器人控制等领域。它通过结合深度学习和强化学习的优势,使得智能体能够处理高维、复杂的状态空间,并学习到高质量的决策策略。深度Q网络算法的主要思想和步骤如下:1。原创 2024-03-12 19:57:14 · 1121 阅读 · 0 评论 -
(8-5)基于神经网络的推荐模型:基于自注意力机制的推荐模型
自注意力机制的基本思想是将输入序列中的每个元素作为查询(Query)、键(Key)和值(Value)进行表示,然后通过计算查询与键之间的相似度得到关联权重,再将权重应用于值来计算加权和。这样,每个元素都可以通过与其他元素的相互关系来更新自己的表示。在推荐系统中,自注意力机制可以应用于学习用户和商品之间的关联关系,从而实现个性化的推荐。通过对用户和商品的特征进行表示,利用自注意力机制来学习它们之间的关联权重,可以实现更精准的推荐结果。自注意力机制的优点包括能够捕捉长距离的依赖关系、灵活性高、可并行计算等。原创 2024-03-10 08:48:48 · 968 阅读 · 0 评论 -
(8-4)基于神经网络的推荐模型:基于循环神经网络(RNN)的推荐模型
循环神经网络(Recurrent Neural Network,RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(RecursiveNeuralNetwork)。基于循环神经网络(RNN)的推荐模型可以使用序列数据的上下文信息来进行推荐。原创 2024-03-10 08:46:35 · 1290 阅读 · 0 评论