matlab cp分解,matlab實現CP分解 代碼

使用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 fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值