Я пытаюсь восстановить отсутствующие данные в трассировке кластера следующим образом:
![enter image description here](https://i.stack.imgur.com/xM15x.png)
Я прочитал несколько статей и обнаружил, что могу создатьтензор для этого набора данных, а затем разложить тензор для восстановления отсутствующих данных.
Теперь я использую Tensorly, тензорную библиотеку на python. Я создал простой тензор, подобный этому:
import tensorly as tl
X = tl.tensor(np.arange(24).reshape((4, 6)))
X[0][5]= nan
X[1][5]= nan
и я получил:
array([[ 0., 1., 2., 3., 4., nan],
[ 6., 7., 8., 9., 10., nan],
[ 12., 13., 14., 15., 16., 17.],
[ 18., 19., 20., 21., 22., 23.]])
и затем я пытаюсь разложить его в соответствии с официальным документом:
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]]
и ошибка, когда значение параметра больше 3:
ValueError: array must not contain infs or NaNs
Как это исправить?Любой ответ поможет.Заранее спасибо.