我正在尝试在python/pandas/numpy/sklearn中构建一个基于内容的推荐系统。
下面是所涉及的矩阵及其大小:
X: n_customers * n_features (包含每个客户的功能)
Y: n_customers *n_products (包含每个客户对每个产品的评分)
Theta: n_features * n_products
目的是学习Theta,以便能够预测客户对所有产品(X*Theta)的评分。实际上,Y是一个稀疏矩阵,客户得分只占整个产品数量的很小%。这就是为什么Y包含很多NaN值的原因。
这就是我的问题:
这是一个具有多个目标(这里是target=product)的回归问题。但我只想对非空值进行回归。由于不同产品的NaN数量不同,我如何对其进行矢量化?
假设有1000个产品,100000个客户,每个产品都有20个特性。
对于每个产品,我需要对非空值进行回归。所以如果没有矢量化,我将需要1000个不同的回归学习,每个回归学习一个长度为20的Theta向量。
如果可能的话,我想用sklearn来解决这个问题。例如,岭回归考虑了多个目标(Y作为矩阵)
我希望它足够清楚。
谢谢你的帮助。
发布于 2014-11-25 19:52:54
我相信你可以使用中心余弦相似度/pearson相关性来完成这项工作,并利用协同过滤技术来实现这一点
在使用pearson co -relation之前,您需要用零填充Null (没有任何条目的字段),现在pearson相关关系将相似度矩阵集中在零附近,这将给出最佳推荐。
https://stackoverflow.com/questions/23030284
复制相似问题