matlab 实现 kernel SVD 高斯核

建议先看HOSVD的实现:http://blog.csdn.net/zd836614437/article/details/51193359
1、计算矩阵的秩
输入一个张量:
A(: , : ,1)=[1,0,0;1,0,0;0,0,0];
A(: , : ,2)=[0,0,0;0,1,0;0,0,0];
A(: , : ,3)=[0,0,0;0,0,0;0,0,1];
A=tensor(A);

2、将张量A沿mode-n展开
A1=tenmat(A,1);
A2=tenmat(A,2);
A3=tenmat(A,3);

3、计算每个展开张量的标准差
rows = reshape(A1.data,3*9,1);
std(rows);
mean(rows);
ans =

0.1481

4、计算高斯核矩阵
K1 = KGaussian(A1, A1, 1/0.1418);
K2 = KGaussian(A2, A2, 1/0.1418);
K3 = KGaussian(A3, A3, 1/0.1418);

5、对k进行svd:
[U1,V1,W1]=svd(K1);
[U2,V2,W2]=svd(K2);
[U3,V3,W3]=svd(K3);

6、计算核心张量
S = ttm(A,{U1’,U2’,U3’})

7、计算近似张量
B=ttm(S,{U1,U2,U3})

结果࿱

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值