机器学习中高维组合特征的处理方法+推荐系统使用矩阵分解为用户推荐的原理解析,《百面机器学习》学习笔记

这篇具有很好参考价值的文章主要介绍了机器学习中高维组合特征的处理方法+推荐系统使用矩阵分解为用户推荐的原理解析,《百面机器学习》学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

《百面机器学习》学习笔记:高维组合特征的处理方法

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征进行组合,构成高阶组合特征。

低阶特征组合得到高阶特征举例

假设有A B两组特征,C为受到A B两种特征影响的因素,且对特征A来说,其有 A i , i ∈ [ 0 , 1 ] {A^i,i\in [0,1]} Ai,i[0,1]两种特征取值。同时,对于特征B来说,其有 B j , j ∈ [ 0 , 1 ] {B^j,j\in[0,1]} Bj,j[0,1]两种特征取值。
那么,现在得到两种特征A B分别对因素C的影响表:
表 1 表1 1

因素C的取值 特征A的取值 特征B的取值
0 A1 B1
1 A2 B1
1 A1 B2
0 A2 B2

如果将A B特征组合起来去判断对C因素的影响,那么就可以得到如下表格:

表 2 表2 2

因素C的取值 A1 B1 A2 B1 A1 B2 A2 B2
0 1 0 0 0
1 0 1 0 0
1 0 0 1 0
0 0 0 0 1

由表2中可以看到,最终得到的组合特征维度数等于组合的两个特征A B的数量之积。

虽然上述特征组合可以解决一些问题,但是当特征数量增加,且每个特征对应的特征取值数量增加时,得到的组合特征的维数将是无法预估的。

在这种情况下,就可以用不同特征A B对应的低维向量 k k k来表示,实际上这等价于推荐系统中矩阵分解的过程。

举例说明推荐系统中的矩阵分解过程

假设我们有一个用户-电影评分矩阵,其中行代表用户,列代表电影,每个元素表示用户对电影的评分。但是,由于用户没有对所有电影都进行了评分,因此矩阵中存在缺失值。我们的目标是通过矩阵分解来预测用户对未评分电影的评分,以进行个性化推荐。

数据准备:
首先,我们将用户-电影评分矩阵表示为一个稀疏矩阵,其中缺失值用0或NaN表示。

Movie1 Movie2 Movie3 Movie4
User1 5 3 0
User2 0 4 0
User3 1 0 5

矩阵分解模型选择:
选择适当的矩阵分解模型,例如基于奇异值分解(Singular Value Decomposition,SVD)的方法,其中矩阵被分解为三个矩阵的乘积:用户特征矩阵、电影特征矩阵和奇异值矩阵。

特征提取:
通过对用户-电影评分矩阵进行矩阵分解,得到用户特征矩阵和电影特征矩阵。用户特征矩阵包含了每个用户的潜在特征表示,电影特征矩阵包含了每部电影的潜在特征表示。

填充缺失值:
使用得到的用户特征矩阵和电影特征矩阵,可以预测缺失值(未评分电影)的评分。通过计算用户特征矩阵和电影特征矩阵的乘积,可以得到预测的评分矩阵。

Movie1 Movie2 Movie3 Movie4
User1 5 3 4.2
User2 2.8 4 3.5
User3 1 3.1 5

通过填充缺失值,我们得到了完整的评分矩阵,使得我们可以为用户推荐未评分的电影,例如,对于User2来说,我们可以推荐Movie1和Movie3。

上述过程中如何通过用户特征矩阵和电影特征矩阵来预测原始的用户-评分矩阵中缺失值的过程如下:

假设对初始的用户-评分矩阵进行分解得到用户特征矩阵和电影评分特征矩阵
将用户-电影评分矩阵分解为用户特征矩阵和电影特征矩阵的乘积。假设我们将用户特征矩阵表示为 U U U,电影特征矩阵表示为 V V V,则原始的评分矩阵 R R R 可以表示为:
R = U V T R=UV^T R=UVT

在实际应用中,我们通常采用梯度下降等优化算法来最小化预测评分矩阵与实际评分矩阵之间的误差。

预测评分:
利用得到的用户特征矩阵和电影特征矩阵,可以预测缺失值(未评分电影)的评分。以用户 i i i 和电影 j j j 为例,我们可以将评分预测为:
r ^ i , j = u i v i T \hat{r}_{i,j}=u_i v_i^T r^i,j=uiviT

其中 u i u_i ui 是用户 i i i 的特征向量, v j v_j vj 是电影 j j j 的特征向量, v j T v_j^T vjT 表示电影 j j j 的特征向量的转置。

推荐:
通过预测评分,我们可以为用户推荐未评分的电影。例如,可以根据预测评分的值从大到小排序,然后选择前 k k k 个评分最高的电影进行推荐。文章来源地址https://www.toymoban.com/news/detail-446317.html

到了这里,关于机器学习中高维组合特征的处理方法+推荐系统使用矩阵分解为用户推荐的原理解析,《百面机器学习》学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习基础之《特征工程(3)—特征预处理》

    一、什么是特征预处理 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程 处理前,特征值是数值,处理后,进行了特征缩放 1、包含内容 数值型数据的无量纲化: 归一化 标准化 2、特征预处理API sklearn.preprocessing 3、为什么我们要进行归一化/标准化 特征

    2024年02月14日
    浏览(24)
  • 机器学习:数据处理与特征工程

    机器学习中的数据处理和特征工程是非常关键的步骤,它们直接影响模型的性能和泛化能力。以下是一些常见的数据处理和特征工程技术: 数据处理: 缺失值处理: 处理数据中的缺失值,可以选择删除缺失值、填充均值/中位数/众数,或使用插值方法。 异常值处理: 检测和

    2024年01月16日
    浏览(30)
  • 机器学习基础 数据集、特征工程、特征预处理、特征选择 7.27

    无量纲化 1.标准化 2.归一化 信息数据化 1.特征二值化 2. Ont-hot编码 3.缺失数据补全 1.方差选择法 2.相关系数法

    2024年02月14日
    浏览(37)
  • 脑电信号处理与特征提取——6.运用机器学习技术和脑电进行大脑解码(涂毅恒)

    目录 六、运用机器学习技术和脑电进行大脑解码 6.1 前言 6.2 基于脑电数据的机器学习基础分析 6.3 基于脑电数据的机器学习进阶分析 6.4 代码解读  

    2024年02月14日
    浏览(29)
  • 机器学习30:《推荐系统-III》使用 TensorFlow 构建电影推荐系统

    本文将介绍基于 MovieLens 数据集创建一个电影推荐系统的方法。具体而言,包括探索电影数据,训练矩阵分解模型,检查嵌入,矩阵分解中的正则化,Softmax 模型训练等内容。 目录 1.准备工作 1.1 导入依赖模块 1.2 加载数据 1.3 探索电影镜头数据

    2024年02月16日
    浏览(35)
  • 推荐算法的特征工程之连续值特征处理

    转子:https://zhuanlan.zhihu.com/p/571067511 上一篇文章推荐算法的基石-数据提了数据是算法的基石,我们通过埋点,数据的预加工,把野生数据变成了家养数据,打个比喻,如果把好的算法比喻为一道好菜,那么数据的埋点就是去野外打野,需要去做陷阱,对用户下套,等待猎物上

    2024年02月12日
    浏览(19)
  • 【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)

    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻

    2024年02月19日
    浏览(35)
  • 机器学习31:《推荐系统-IV》深度神经网络DNN

    在《 推荐系统(二)协同过滤 》一文中,笔者介绍了如何使用矩阵分解来学习嵌入。矩阵分解具有一些局限性: 基础矩阵分解只用了 UserID(QueryID) 和 ItemID 两个维度的信息,所有学到的知识都蕴含在 User 向量和 Item 嵌入中。可解释性差,同时,学习过程中很难融合更多有

    2024年02月16日
    浏览(30)
  • 【Python | 机器学习】Python中进行特征重要性分析的9个常用方法(含源代码)

    特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征,它是机器学习中经常使用的一种方法。 特征重要性分析在数据科学和机器学习中扮演着重要的角色,具有以下重要性: 理解数据:特征重要性分析

    2024年02月03日
    浏览(44)
  • python机器学习(三)特征预处理、鸢尾花案例--分类、线性回归、代价函数、梯度下降法、使用numpy、sklearn实现一元线性回归

    数据预处理的过程。数据存在不同的量纲、数据中存在离群值,需要稳定的转换数据,处理好的数据才能更好的去训练模型,减少误差的出现。 标准化 数据集的标准化对scikit-learn中实现的大多数机器学习算法来说是常见的要求,很多案例都需要标准化。如果个别特征或多或

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包