基于Python张量分解的缺失数据恢复

2024-07-05 08:56:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试恢复群集跟踪中丢失的数据,如下所示:

enter image description here

我读了一些文章,发现我可以为这个数据集创建一个张量,然后分解张量来恢复丢失的数据。在

现在我使用的是Tensorly,python上的一个张量库,我构建了一个简单的张量,如下所示:

import tensorly as tl
X = tl.tensor(np.arange(24).reshape((4, 6)))
X[0][5]= nan
X[1][5]= nan

我得到了:

^{pr2}$

然后我试着根据官方文件进行分解:

from tensorly.decomposition import parafac
factors = parafac(X, rank=1)
print(tl.kruskal_to_tensor(factors))

当参数秩为1或2或3时,我得到所有nan结果:

[[ nan  nan  nan  nan  nan  nan]
 [ nan  nan  nan  nan  nan  nan]
 [ nan  nan  nan  nan  nan  nan]
 [ nan  nan  nan  nan  nan  nan]]

参数秩大于3时出错:

ValueError: array must not contain infs or NaNs

我该怎么解决这个问题?任何答案都会有帮助。提前谢谢。在


Tags: 数据import参数asnp文章nan群集