基于python tensorly 张量分解的代码实现,主要基于Tucker decomposition, 参考链接:http://tensorly.org/stable/installation.html
库的安装:
pip install -U tensorly
引入库如下:
import tensorly as tl
from tensorly.decomposition import non_negative_tucker
#非负张量分解
省略了数据读取部分。temp为list格式数据
代码如下(示例):
#将数据转换成张量格式
temp=tl.tensor(temp)
core, factors = non_negative_tucker(temp, rank=[6,3,4])
参考链接:http://tensorly.org/stable/modules/generated/tensorly.decomposition.non_negative_tucker.html
根据分解得到的核心张量和因子矩阵,恢复原来的张量。
代码如下(示例):
from tensorly import tucker_to_tensor
p_temp=tucker_to_tensor((core, factors))
根据评价指标判断重构张量的情况的好坏,可以考虑根据此来选择rank的取值。
代码如下(示例):
from tensorly.metrics.regression import MSE
MSE(temp,p_temp)
tensorly的简单使用