T3J*_*J45 5 python collaborative-filtering keras tensorflow
我创建了一个自动编码器,尽管它是针对电影用户的评分矩阵。我正在尝试使用协作过滤(CF)重新创建预测时的输出。
下面的数据集是输入的方式。我在这里将其转换为Pivot矩阵:我们将其称为 A_set
MovieId 1 2 3 4 5 6 7 ...
UserId
0 5.0 0.0 0.0 0.0 2.0 0.0 0.0 ...
1 0.0 0.0 0.0 2.0 2.0 0.0 0.0 ...
2 5.0 0.0 1.0 0.0 0.0 0.0 0.0 ...
3 1.0 0.0 0.0 0.0 3.0 0.0 3.0 ...
Run Code Online (Sandbox Code Playgroud)
还创建了它的转置MovieIds,在行和UserIds列中。我们称这个为B_set。
对此,我有以下查询:
Y = Theta(转置)输入(X)+ C
B_set对CF公正。我尝试提供A_set输入作为输入,然后在对输入进行训练/建模后检查权重。检查代码段:
w1 = model.get_weights()
train_set.shape # (5436, 3706)
w1[0].shape # (3706, 529)
w1[0].T.shape # (529, 3706)
w1[1].T.shape # (529,)
w1[2].T.shape # (264, 529)
w1[3].T.shape # (264,)
w1[4].T.shape # (132, 264)
w1[5].T.shape # (132,)
w1[6].T.shape # (264, 132)
w1[7].T.shape # (264,)
w1[8].T.shape # (529, 264)
w1[9].T.shape # (529,)
w1[10].T.shape # (3706, 529)
w1[11].T.shape # (3706,)
Run Code Online (Sandbox Code Playgroud)
现在某种意义上讲,这可能是在Keras源代码中的某个地方进行转置(请指出我的位置!),否则Matrix乘法将是不可能的。然而,关于哪个(A / B组)可以称为CF的问题仍然存在。
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |