我正在使用矩阵分解来使用fastFM填充数据集中的值。
from fastFM.datasets import make_user_item_regression
from sklearn.model_selection import train_test_split
# This sets up a small test dataset.
X, y, _ = make_user_item_regression(label_stdev=.4)
X_train, X_test, y_train, y_test = train_test_split(X, y)
预测
from fastFM import als
fm = als.FMRegression(n_iter=1000, init_stdev=0.1, rank=2, l2_reg_w=0.1, l2_reg_V=0.5)
fm.fit(X_train, y_train)
y_pred = fm.predict(X_test)
尽管我在y_pred
变量中得到了最终值。如何将新预测的值插入原始矩阵(其中这些值缺失/ 0)中。 ?
如果maxtrix像
[1, 5, 0,
2, 3, 0]
并且预测为[1,1]
,这些值在原始矩阵中将为两个0。
如何将y_pred插入原始矩阵的正确位置,以便可以得到具有正确值的最终矩阵。 (这样的事情)
[1, 5, 3,
2, 3, 3]
如果可以使用其他库(例如PyFM或MXnet)完成此操作,那么也会很有帮助。