我创建了一个Autoencoder,尽管它是针对电影用户的评分矩阵。我正在尝试使用协作过滤(CF)在预测时重新创建输出。
下面的数据集是输入的方式。我在这里将其转换为Pivot矩阵:
我们将其称为 for c in df.columns:
df[c] = df[c].fillna(df["sensor3"])
df
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 ...
在行中,MovieIds
在列中。我们将其称为 UserIds
。
在此之上,我有以下查询:
Y = Theta(转置)。输入(X)+ C
B_set
为CF伸张正义。我尝试提供 B_set
作为输入,然后还在对输入进行训练/建模后检查权重。检查代码段:
A_set
现在这很有道理,这可能是在Keras源代码中的某个地方进行转置(请指出我的位置!),否则Matrix乘法将是不可能的。然而,关于哪个(A / B集)可以称为CF的问题仍然悬而未决。