在使用非负矩阵分解生成推荐时,如何为新用户重建数据?
我遵循这个等式data.dot(H.T.dot(np.linalg.pinv(H.dot(H.T))).dot(H))
进行重建,其中H
表示潜在组件,data
由包含缺失条目的新数据组成。
但是似乎在某处出错了,因为我没有得到预期的结果(来自其他方法,例如sklearn NMF,特别是inverse_transform
方法的结果(。
请参阅 https://cambridgespark.com/content/tutorials/implementing-your-own-recommender-systems-in-Python/index.html
对于pyothn scikit-learn,您可以使用:http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.NMF.html
from sklearn.decomposition import NMF
model = NMF(n_components=2, init='random', random_state=0)
W = model.fit_transform(data)
H = model.components_
其中data
是您要解散的矩阵。 W
和H
是非负因素
您可以通过以下方式预测新的推荐或调用的已完成data
矩阵WH'