使用tensor-box,在matlab中实现cp分解

1、X = sptenrand([5 4 3], 10)
//随机生成一个稀疏三维张量5*4* 3,其中有10条数据

X is a sparse tensor of size 5 x 4 x 3 with 10 nonzeros
(1,4,1) 0.4966
(2,2,3) 0.8998
(3,2,3) 0.8216
(3,3,1) 0.6449
(3,3,3) 0.8180
(3,4,1) 0.6602
(4,1,2) 0.3420
(4,1,3) 0.2897
(5,2,2) 0.3412
(5,3,2) 0.5341

2、P = parafac_als(X,2)
//用ALS交替最小二乘来分解张量,分解参数R=2,即分解为两个秩一张量;其中分解参数最多可以设置为min(5*4;5* 3;4*3)

CP_ALS:
Iter 1: fit = 3.219563e-001 fitdelta = 3.2e-001
Iter 2: fit = 3.645517e-001 fitdelta = 4.3e-002
Iter 3: fit = 3.732887e-001 fitdelta = 8.7e-003
Iter 4: fit = 3.809608e-001 fitdelta = 7.7e-003
Iter 5: fit = 4.021826e-001 fitdelta = 2.1e-002
Iter 6: fit = 4.427524e-001 fitdelta = 4.1e-002
Iter 7: fit = 4.734919e-001 fitdelta = 3.1e-002
Iter 8: fit = 4.848760e-001 fitdelta = 1.1e-002
Iter 9: fit = 4.890031e-001 fitdelta = 4.1e-003
Iter 10: fit = 4.907726e-001 fitdelta = 1.8e-003
Iter 11: fit = 4.916244e-001 fitdelta = 8.5e-004
Iter 12: fit = 4.920996e-001 fitdelta = 4.8e-004
Iter 13: fit = 4.924246e-001 fitdelta = 3.2e-004
Iter 14: fit = 4.926962e-001 fitdelta = 2.7e-004
Iter 15: fit = 4.929575e-001 fitdelta = 2.6e-004
Iter 16: fit = 4.932285e-001 fitdelta = 2.7e-004
Iter 17: fit = 4.935198e-001 fitdelta = 2.9e-004
Iter 18: fit = 4.938385e-001 fitdelta = 3.2e-004
Iter 19: fit = 4.941904e-001 fitdelta = 3.5e-004
Iter 20: fit = 4.945813e-001 fitdelta = 3.9e-004
Iter 21: fit = 4.950178e-001 fitdelta = 4.4e-004
Iter 22: fit = 4.955072e-001 fitdelta = 4.9e-004
Iter 23: fit = 4.960583e-001 fitdelta = 5.5e-004
Iter 24: fit = 4.966814e-001 fitdelta = 6.2e-004
Iter 25: fit = 4.973882e-001 fitdelta = 7.1e-004
Iter 26: fit = 4.981921e-001 fitdelta = 8.0e-004
Iter 27: fit = 4.991075e-001 fitdelta = 9.2e-004
Iter 28: fit = 5.001490e-001 fitdelta = 1.0e-003
Iter 29: fit = 5.013282e-001 fitdelta = 1.2e-003
Iter 30: fit = 5.026502e-001 fitdelta = 1.3e-003
Iter 31: fit = 5.041052e-001 fitdelta = 1.5e-003
Iter 32: fit = 5.056587e-001 fitdelta = 1.6e-003
Iter 33: fit = 5.072418e-001 fitdelta = 1.6e-003
Iter 34: fit = 5.087490e-001 fitdelta = 1.5e-003
Iter 35: fit = 5.100586e-001 fitdelta = 1.3e-003
Iter 36: fit = 5.110745e-001 fitdelta = 1.0e-003
Iter 37: fit = 5.117692e-001 fitdelta = 6.9e-004
Iter 38: fit = 5.121888e-001 fitdelta = 4.2e-004
Iter 39: fit = 5.124165e-001 fitdelta = 2.3e-004
Iter 40: fit = 5.125308e-001 fitdelta = 1.1e-004
Iter 41: fit = 5.125856e-001 fitdelta = 5.5e-005
Final fit = 5.125856e-001
P is a ktensor of size 5 x 4 x 3
P.lambda = [ 1.3189 1.1109 ]
P.U{1} =
0.0019 0.2743
0.6406 -0.0177
0.7679 0.9615
-0.0000 0.0000
-0.0000 -0.0000
P.U{2} =
-0.0000 0.0000
0.9413 -0.0855
0.2693 0.7083
-0.2036 0.7007
P.U{3} =
0.0402 0.8828
-0.0000 -0.0000
0.9992 0.4698

matlab实现CP分解 代码相关推荐

  1. cp分解实现_如何用贝叶斯高斯张量分解修复缺失数据?(Jupyter notebook - Python)

    本文来源于BGCP Imputation - transdim,主要讨论如何利用贝叶斯高斯张量分解(Bayesian Gaussian CP decomposition, BGCP) 估计矩阵中的缺失 ...

  2. Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解

    Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解 本来matlab中自带了做正交三角分解的函数,[U,R]=qr(A),U R为分解结果.但是这样使用只会有结果没有中间过程,所以写了一 ...

  3. CP分解和HOSVD分解

    一.CP分解(CANDECAMP/PARAFAC) 这是较为古老的一种张量分解方法.最早的研究历史可以追溯到1927年. 在上一节,学习向量乘积的时候,我们看到两个向量外积产生一个矩阵.我们可以推断出 ...

  4. MATLAB 2017a编译gpb代码

    MATLAB 2017a编译gpb代码 实验环境 fedora 24 matlab 2017a gpb源码地址 gpb源码 编译过程 编译过程-1 cd grouping/source mkdir b ...

  5. 『矩阵论笔记』张量CP分解的详细数学推导以及Python实现

    张量CP分解的详细数学推导以及Python实现! 文章目录 一. 张量的基本概念 1.1 张量定义以及张量空间 1.2 阶和纤维(fiber)及切片 1.3 内积和范数及秩一张量/可合张量 1.4 超 ...

  6. 利用matlab实现POD分解(在一维信号或二维流场矢量中的应用)

    利用matlab实现POD分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 matlab中特征值计算 0.2 matlab中SVD分解计算 0.3 信号的正交性 1 一维信号POD分解 1. ...

  7. java emd,MATLAB实现EMD分解及希尔伯特谱分析

    MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...

  8. MATLAB实现EMD分解及希尔伯特谱分析

    MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...

  9. 浅谈张量分解(五):稀疏张量的CP分解

    在前面的文章中,我们已经讨论了稀疏张量的Tucker分解,并介绍了如何采用梯度下降训练出一个合理的分解结构,与Tucker分解略有不同,这篇文章将介绍在数学表达式上更为简洁的CP分解,同时讨论如何利用 ...

最新文章

  1. 微服务的简介和技术栈
  2. java责任链模式做优惠_Java设计模式菜鸟系列(十八)责任链模式建模与实现
  3. spring-boot 之 使用Admin监控应用
  4. http1.0和http1.1和http2.0有什么区别
  5. Android图片完整性检验,Android安全测试之应用完整性校验检测
  6. Linux下开启关闭查看软件包信息
  7. 即时游戏中用户信息融合的研究
  8. Word Clock数字时钟动态屏保,让你的电脑锁屏瞬间科技感十足!
  9. Linux查看网卡是千兆还是万兆网卡
  10. 批处理跑Axapta多个主计划
  11. JavaScript,凯撒位移密码,算法
  12. Packet Tracer使用说明
  13. PHP友情链接检测代码
  14. 银河麒麟V10 远程桌面
  15. [RF] 安装好Robot Framework之后怎样让启动的界面后面不带命令行窗口,且图片以机器人显示...
  16. 在aws云将本地虚拟机镜像上传
  17. 服务器安装安卓模拟器_雷电模拟器、夜神模拟器、MUMU、逍遥、蓝叠和腾讯手游助手大对比...
  18. 华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索
  19. 自动控制理论(6)——高阶系统的时域分析及线性系统的稳定性分析
  20. 安卓修改软件安装时间_WPS 2016软件安装教程

热门文章

  1. 如何在VUE框架的WEB端实时播放海康威视、大华RTSP视频流 ?
  2. 树莓派学习笔记——Python SQLite插入温度记录
  3. 程序猿修仙之路--数据结构之设计高性能访客记录系统
  4. 用友和中国企业一起成长
  5. C 已知华氏温度F与摄氏温度C的关系是:C=5/9*(F-32),编写程序,计算华氏温度F为-10,0,10,20......290°C时,摄氏温度C的值。
  6. VM虚拟机中鼠标点击失效解决方案 -
  7. 从应用到平台 – 云服务架构的演进过程
  8. w ndows81能安装什么浏览器,在WindowsServer2019上安装edge浏览器
  9. 一个让客户惊呼救急的BLDC电机驱动案例
  10. http 1.php,php利用socket扩展写一个简单的单进程http服务1