当前位置:   article > 正文

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

如何处理高维特征

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

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

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

假设有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的取值
0A1B1
1A2B1
1A1B2
0A2B2

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

表 2 表2 2

因素C的取值A1 B1A2 B1A1 B2A2 B2
01000
10100
10010
00001

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

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

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

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

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

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

Movie1Movie2Movie3Movie4
User1530
User2040
User3105

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

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

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

Movie1Movie2Movie3Movie4
User1534.2
User22.843.5
User313.15

通过填充缺失值,我们得到了完整的评分矩阵,使得我们可以为用户推荐未评分的电影,例如,对于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 个评分最高的电影进行推荐。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/320304?site
推荐阅读
相关标签
  

闽ICP备14008679号