gpt4 book ai didi

python - 预测推荐系统中的缺失值

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:09 26 4
gpt4 key购买 nike

我正在尝试实现非负矩阵分解,以便为推荐引擎项目找到矩阵的缺失值。我正在使用 nimfa 库来实现矩阵分解。但似乎无法弄清楚如何预测缺失值。该矩阵中的缺失值用 0 表示。

a=[[ 1.          0.45643546  0.          0.1         0.10327956  0.0225877 ]
[ 0.15214515 1. 0.04811252 0.07607258 0.23570226 0.38271325]
[ 0. 0.14433757 1. 0.07905694 0. 0.42857143]
[ 0.1 0.22821773 0.07905694 1. 0. 0.27105237]
[ 0.06885304 0.47140452 0. 0. 1. 0.13608276]
[ 0.00903508 0.4592559 0.17142857 0.10842095 0.08164966 1. ]]

import nimfa
model = nimfa.Lsnmf(a, max_iter=100000,rank =4)
#fit the model
fit = model()
#get U and V matrices from fit
U = fit.basis()
V = fit.coef()
print numpy.dot(U,V)

但是给出的 ans 几乎与 a 相同,我无法预测零值。请告诉我使用哪种方法或任何其他可能的实现以及任何可能的资源。

我想使用此函数来最小化预测值的误差。

错误=|| a - UV ||_F + c*||U||_F + c*||V||_F

其中 _F 表示弗罗贝尼乌斯范数

最佳答案

我之前没有使用过nimfa,所以我无法准确回答如何做到这一点,但是使用sklearn,您可以执行预处理器来转换缺失值,如下所示:

In [28]: import numpy as np

In [29]: from sklearn.preprocessing import Imputer

# prepare a numpy array
In [30]: a = np.array(a)

In [31]: a
Out[31]:
array([[ 1. , 0.45643546, 0. , 0.1 , 0.10327956,
0.0225877 ],
[ 0.15214515, 1. , 0.04811252, 0.07607258, 0.23570226,
0.38271325],
[ 0. , 0.14433757, 1. , 0.07905694, 0. ,
0.42857143],
[ 0.1 , 0.22821773, 0.07905694, 1. , 0. ,
0.27105237],
[ 0.06885304, 0.47140452, 0. , 0. , 1. ,
0.13608276],
[ 0.00903508, 0.4592559 , 0.17142857, 0.10842095, 0.08164966,
1. ]])
<小时/>
In [32]: pre = Imputer(missing_values=0, strategy='mean')

# transform missing_values as "0" using mean strategy
In [33]: pre.fit_transform(a)
Out[33]:
array([[ 1. , 0.45643546, 0.32464951, 0.1 , 0.10327956,
0.0225877 ],
[ 0.15214515, 1. , 0.04811252, 0.07607258, 0.23570226,
0.38271325],
[ 0.26600665, 0.14433757, 1. , 0.07905694, 0.35515787,
0.42857143],
[ 0.1 , 0.22821773, 0.07905694, 1. , 0.35515787,
0.27105237],
[ 0.06885304, 0.47140452, 0.32464951, 0.27271009, 1. ,
0.13608276],
[ 0.00903508, 0.4592559 , 0.17142857, 0.10842095, 0.08164966,
1. ]])

您可以阅读更多 here

关于python - 预测推荐系统中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33440783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com